(57)【要約】【課題】  メッセージの転送効率低下を防止し、ネットワークの回線負荷および回線コストを軽減する。【解決手段】  メッセージに付されている宛先および優先度を判定し、そのメッセージを宛先および優先度ごとに分別してキューに登録する。そして、キューに滞留しているメッセージの数を宛先および優先度ごとに分別してカウントし、そのカウント数が、所定の数を超えたとき、宛先が同じで優先度が同等以上の優先度が付されたメッセージをまとめて転送するようにした。また、キューに最初に登録されたメッセージの滞留時間が、遅くとも所定の最大滞留時間が経過したときには、同じ宛先が付されたメッセージをまとめて転送するようにした。以上のように、まとめてメッセージを転送することによって、転送効率を向上させた。【選択図】      図７
2006031238.tif 000002
【特許請求の範囲】
【請求項１】
他のコンピュータに転送するメッセージのキューが構成される記憶装置とそのキューに対し前記メッセージの登録および読み出しを行う演算処理装置とを備えたコンピュータが前記他のコンピュータとの間で行うメッセージ転送におけるメッセージ転送制御方法であって、
前記コンピュータが、
転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、前記メッセージをその判定結果に基づいて分別して前記キューに登録するステップと、
前記キューに登録されて滞留しているメッセージの数を、前記判定結果に基づいて分別してカウントするステップと、
前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送するステップと
を実行することを特徴とするメッセージ転送制御方法。
【請求項２】
請求項１に記載のメッセージ転送制御方法において、
前記コンピュータが、さらに、
前記キューに登録されて滞留しているメッセージのうち、最初に登録されたメッセージが長くても所定の時間を超えて滞留したときには、前記滞留しているメッセージをまとめて転送するステップ
を実行することを特徴とするメッセージ転送制御方法。
【請求項３】
請求項１または請求項２に記載のメッセージ転送方法を、コンピュータに実行させるためのプログラムであることを特徴とするメッセージ転送制御プログラム。
【請求項４】
他のコンピュータに転送するメッセージのキューが構成される記憶装置とそのキューに対し前記メッセージの登録および読み出しを行う演算処理装置とを備えたコンピュータが前記他のコンピュータとの間のメッセージ転送の制御を行うメッセージキューイング装置であって、
転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、前記メッセージをその判定結果に基づいて分別して前記キューに登録するメッセージ登録手段と、
前記キューに登録されて滞留しているメッセージの数を、前記判定結果に基づいて分別してカウントする滞留メッセージカウント手段と、
前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送する滞留メッセージ転送手段と
を備えたことを特徴とするメッセージキューイング装置。
【請求項５】
請求項４に記載のメッセージキューイング装置が、さらに、
前記キューに登録されて滞留しているメッセージのうち、最初に登録されたメッセージが長くても所定の時間を超えて滞留したときには、前記滞留しているメッセージをまとめて転送する第２の滞留メッセージ転送手段
を備えたことを特徴とするメッセージキューイング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キューを用いて複数コンピュータ間のメッセージの転送を行うメッセージキューイングシステムにおけるメッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置に関する。
【背景技術】
【０００２】
近年、ネットワークを介して複数のコンピュータが一つの関連する処理を連携して実行する分散処理が広く普及してきた。このような分散処理を行うシステムにおいては、連携し合う複数のコンピュータは、ネットワークを介して相互に連携するデータの送受信を行いながら、相互独立に異なる処理を実行する。メッセージキューイングシステムは、このような分散処理システムにおいて頻繁に活用されている。
【０００３】
メッセージキューイングシステムにおいては、分散処理を行うコンピュータの各々の記録媒体上にメッセージキュー（以下、キューという）が設けられ、コンピュータ間のデータの転送（以下、コンピュータ間で転送されるデータをメッセージという）は、このキューを介して相手側のコンピュータの処理と非同期に行われる。すなわち、送信側のコンピュータも、受信側のコンピュータも、互いにキューを相手にメッセージの送受信をすればよいわけであり、相手側のコンピュータの処理状況に影響を受けずに済む。
【０００４】
メッセージキューイングシステムにおいて、キューとは、待ち行列を形成したメッセージを保存するための論理的な器であり、通常はハードディスク記憶装置上のファイルとして構成される。キューは、送信側のコンピュータにも受信側のコンピュータにも構成されるが、アプリケーションプログラム側からは、自コンピュータ側のキューに対するメッセージの登録または読み出しを行えばよい。すなわち、アプリケーションプログラムにおいては、メッセージキューイングシステムが提供するＡＰＩ（Application Program Interface）を使用して、キューに対するメッセージの登録や読み出しを行うことによって、メッセージを送受信する。例えば、アプリケーションプログラムにおいてメッセージを送信するには、宛先キューを指定してメッセージを登録するＡＰＩを発行するだけでよい。こうすれば、転送されるメッセージは、いったん、送信側コンピュータの転送用キューに格納さる。そして、メッセージキューイングシステムの管理の下に、受信側コンピュータの宛先キューへ送信され、格納される。
【０００５】
以上のように、メッセージキューイングシステムによれば、アプリケーションプログラムレベルでの送信側処理と受信側処理は、双方が同時に実行されていなくても構わない。少なくとも一方の処理が実行されていれば、キューを介することによって、相手側の処理の実行状態に依存せずに送信処理または受信処理を行うことができる。そのため、メッセージキューイングシステムが提供するメッセージ転送制御方式は、拡張性および柔軟性を兼ね備えたものとなっている。また、メッセージキューイングシステムによって転送されるメッセージは、通信障害やシステムダウンが発生しても、ハードディスク記憶装置等の実体を有するキューに格納されているため、消失することはない。しかも、送信側および受信側の各々のメッセージ転送処理においては、互いにメッセージ送達の確認をとっているので、転送されるメッセージに欠落や重複が生じることはない。このように、メッセージキューイングシステムが提供するメッセージ転送制御方式は、信頼性の高いものにもなっている。
【０００６】
以上に説明したメッセージキューイングシステムの特徴や得失については、例えば、非特許文献１に詳しく解説されている。
【非特許文献１】「社内システム、次の一手Part２：技術編“４つの技術を適材適所で使い分ける即時性とエラー処理がポイント”」、日経ＢＰ社、日経オープンシステム２００１年５月号、ｐ．１２０−１２５
【０００７】
ところで、メッセージキューイングシステムにおけるメッセージの転送処理は、即時性が高く、個々のメッセージが転送用キューに格納されると、直ちに、メッセージ単位で転送処理が行われる。すなわち、メッセージの転送は、次の手順によって行われている。
（１）送信側のアプリケーションプログラムは、転送用キューにメッセージを登録する。
（２）送信側のメッセージキューイングシステムプログラムは、受信側のメッセージキューイングシステムプログラムとの間に通信路を確立し、転送用キューに登録されたメッセージを送信する。このとき、受信側のメッセージキューイングシステムプログラムが停止または通信障害が発生していた場合には、送信側のメッセージキューイングシステムプログラムは、受信側メッセージキューイングシステムプログラムの稼動開始または通信障害回復後に再度メッセージを送信する。
（３）受信側のメッセージキューイングシステムプログラムは、メッセージを受信すると宛先キューにメッセージを登録する。
（４）受信側のアプリケーションプログラムは、宛先キューからメッセージを取り出す。
【０００８】
このように個々のメッセージをメッセージ単位で即時に転送する転送方式は、工場や事業所等のＬＡＮ（Local Area Network）のようなローカルで独立性の高いネットワーク環境において実施されても、特に、問題が生じることはない。メッセージを転送するコンピュータ間で通信路を確立し、その確立した通信路を確保し続けることは、可能であり、容易だからである。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、公衆回線であるインターネットを介して、多数のコンピュータを連携させるような分散処理システムにおいては、メッセージを転送するコンピュータ間で通信路を確立し、それを確保し続けておくことは難しい。そのため、個々のメッセージ単位で転送処理を行おうとすると、その度ごとに通信路の確立を行う必要がある。そうすると、その通信路確立の処理を行う分、メッセージ転送の効率が低下してしまう。
【００１０】
本発明が解決しようとする課題は、キューを用いて複数コンピュータ間のメッセージの転送を行うメッセージキューイングシステムにおいて、個々のメッセージ単位で通信路の確立を行うために生じるメッセージの転送効率低下を防止し、ネットワークの回線負荷および回線コストを軽減することが可能なメッセージ転送方法、メッセージ転送プログラムおよびメッセージキューイング装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明においては、他のコンピュータに転送するメッセージのキューが構成される記憶装置とそのキューに対しメッセージの登録および読み出しを行う演算処理装置とを備えたコンピュータが、まず、転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、そのメッセージを前記の判定結果に基づいて分別してキューに登録する。そして、そのキューに登録されて滞留しているメッセージの数を、前記の判定結果に基づいて分別してカウントする。その後、前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送するようにした。
【００１２】
すなわち、本発明においては、通信路を確立させる処理を、個々のメッセージ送信のたびに行う必要がなく、複数のメッセージの送信に対してまとめて行うことができる。そのため、通信路を確立させる処理の実行回数を減ずることができ、連携するコンピュータとの間で行われるメッセージ転送の実質的な効率を向上させることができる。
【００１３】
また、本発明においては、優先度ごとに分別して滞留メッセージ数をカウントすることができる。そのため、優先度が高いメッセージについては、即時に転送するようにし、優先度が低いメッセージについては、最大滞留メッセージ数を大きくして、メッセージ転送の効率向上を図るというような融通性のあるメッセージの転送制御を実現することができる。
【００１４】
さらに、本発明においては、キューに登録されて滞留しているメッセージのうち最初に登録されたメッセージが、長くても所定の時間を超えて滞留したときには、キューに滞留しているメッセージをまとめて転送するようにした。
【００１５】
従って、キューに滞留したメッセージは、所定の時間以内にはまとめて転送される。従って、メッセージが長時間に渡ってキューに滞留することを防止することができる。
【発明の効果】
【００１６】
本発明によれば、メッセージキューイングシステムにおける複数のコンピュータ間のメッセージ転送処理において、通信路を確立させる処理量を削減することができ、実質的なメッセージの転送効率を向上させることができる。また、本発明によれば、例えば、優先度の高いメッセージは、即時に転送し、優先度の低いメッセージは、所定の滞留メッセージ数を超えるまで転送処理を行わないようにした、現実的でフレキシブルなメッセージ転送制御を実現することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態について、適宜、図１〜図９を参照しながら詳細に説明する。ここで、図１は、本発明の実施形態に係るメッセージキューイングシステムを適用した分散処理システムの構成を示した図である。
【００１８】
図１において、分散処理システムは、サーバ１０と、サーバ１０と連携する複数の連携先サーバ３０と、これらのサーバを接続するネットワーク２０とを含んで構成される。サーバ１０および連携先サーバ３０は、それぞれが、図示しない演算処理装置と記憶装置とを含んで構成されたコンピュータであり、その記憶装置には、少なくとも、アプリケーションプログラム１１およびメッセージキューイングシステムプログラム１２が格納されるとともに、キュー１３およびキュー定義情報１４に係るデータ格納領域が確保される。通常、キュー１３は、ハードディスク記憶装置上に確保される。
【００１９】
なお、一般には、メッセージキューイングシステムとは、メッセージキューイングシステムプログラム１２を指すことも多いが、ここでは、キューを用いて複数のコンピュータ間のメッセージ転送を実現するためのハードウエアおよびプログラムの総体を指すものとする。そして、メッセージキューイング装置とは、メッセージキューイングシステムプログラム１２およびキュー１３を含み、メッセージキューイングシステムプログラム１２を実行することによって他のコンピュータとの間のメッセージ転送を行うことができるようにされたコンピュータを指すものとする。
【００２０】
図１において、サーバ１０および連携先サーバ３０は、それぞれ、図示しない演算装置が、図示しない記憶装置に格納されているメッセージキューイングシステムプログラム１２を実行する。その実行によって、キュー１３が構成され、キュー１３を用いたメッセージの転送制御を行う、いわゆるメッセージキューイングシステムの機能が実現される。従って、図１の場合、サーバ１０および連携先サーバ３０は、それぞれがメッセージキューイング装置に当たる。そこで、以下の説明においては、メッセージキューイング装置を、単に「システム」と略称する。すなわち、単に「システム」という場合には、メッセージキューイングシステムプログラム１２を実行するコンピュータを指し、単に「システムが、…する」という場合には、「メッセージキューイング装置、すなわち、メッセージキューイングシステムプログラム１２を実行するコンピュータ（の演算処理装置）が、…する」ことを意味するものとする。
【００２１】
図２は、本発明の実施形態に係るメッセージキューイングシステムプログラムの構成を示した図である。図２において、メッセージキューイングシステムプログラム１２は、ＡＰＩ処理部１２１とキュー制御部１２２とメッセージ転送制御部１２３とキュー定義解析部１２４とを含んで構成される。
【００２２】
図２において、ＡＰＩ処理部１２１は、アプリケーションプログラム１１（図１参照）から送られるキュー操作命令を解読し、そのキュー操作命令に応じた機能の実行をキュー制御部１２２に要求する。キュー制御部１２２は、例えば、メッセージのキュー１３への登録の要求を受けると、そのメッセージに付された宛先と優先度を判定し、その宛先と優先度ごとに分別してそのメッセージをキュー１３に登録する。
【００２３】
キュー制御部１２２は、キュー１３に滞留しているメッセージの数を、メッセージに付された宛先と優先度ごとに分別してカウントし、そのカウントしたメッセージ数が、あらかじめ定められた最大数を超えたか否かを判定する。なお、この最大数は、宛先と優先度ごとに定められている。また、キュー制御部１２２は、キュー１３に滞留しているメッセージの滞留時間が、あらかじめ定められた最大時間を超えたか否かを判定する。
【００２４】
メッセージ転送制御部１２３は、キュー制御部１２２を用いてキュー１３から、所定のメッセージを取り出し、取り出したメッセージを、そのメッセージの宛先が指定する連携先サーバ３０のメッセージキューイングシステム１２へ転送する。また、キュー定義解析部１２４は、メッセージキューイングシステムプログラム１２実行開始時に、キュー定義情報１４を読み込み、転送用キュー管理テーブル４００（後記図４参照）およびキュー定義情報管理テーブル５００（後記図５参照）を生成する。
【００２５】
次に、図３、図４および図５を用いて、本実施形態に係るメッセージキューイングシステム１２におけるキュー１３を管理するためのデータのデータ構造について説明する。ここで、図３は、キュー定義情報におけるキュー定義の例を示した図であり、図４は、転送用キュー管理テーブルのデータ構造の例を示した図であり、図５は、キュー定義情報のデータ構造の例を示した図である。
【００２６】
図３において、キュー定義情報１４は、複数の転送用キュー定義１４１と、システム共通定義１４２とを含んで構成される。
転送用キュー定義１４１は、キュー１３に個々の転送用キューを定義するための情報であり、転送用キューを識別するための転送用キュー名称と宛先情報とにより構成される。通常、転送用キューは、宛先１つに対して１つの転送用キューが定義される。
【００２７】
システム共通定義１４２は、メッセージキューイングシステム１２全体、すなわち、複数個作成される転送用キュー定義１４１に共通に定義される情報である。図３の例では、メッセージに付す優先度の最大値を５とし、優先度としては、１，２，…，５の５種の値を取り得るものとしている。また、最大許容遅延時間は、キューに滞留するメッセージの最長の滞留時間を定義するものであり、この場合には、最大許容遅延時間＝６０であるので、滞留メッセージは、最大でも６０秒以内には転送されるものとしている。また、優先度ｉの最大滞留メッセージ数は、転送用キューに滞留するメッセージのうち優先度ｉのメッセージが滞留し得る最大数を示す。
【００２８】
次に、図４を用いてキュー１３における転送用キュー管理テーブル４００のデータ構造の例について説明する。図４において、転送用キュー管理テーブル４００は、複数の転送用キュー管理エントリ４０１により構成される。
転送用キュー管理エントリ４０１は、１つの転送用キューの情報を示し、転送用キュー名称４０２と宛先情報４０３とメッセージ管理部４０４とにより構成される。転送用キュー名称４０２は、転送用キューを識別するためのユニークな名称により表現される。宛先情報４０３は、メッセージ転送先のキューを示す情報であり、そのキューが所在する連携先サーバ３０との間に通信路を確立するために必要な情報を含んでいる。
【００２９】
メッセージ管理部４０４は、複数の優先度管理エントリ４０５により構成され、キュー定義情報１４で定義する優先度の最大値と同じ数だけ作成される。優先度管理エントリ４０５は、優先度４０６と滞留メッセージ数４０７とメッセージ管理情報チェーン先頭ポインタ４０８とにより構成される。優先度４０６は、メッセージの優先度を表現する値で、１以上で優先度の最大値以下の整数により表現する。優先度４０６は、値が大きいほど優先度が高いものとする。滞留メッセージ数４０７は、転送用キューに登録されているメッセージのうち、優先度４０６で示される優先度が付されたメッセージの数を示している。
【００３０】
メッセージ管理情報チェーン先頭ポインタ４０８は、メッセージ管理情報チェーン４１０の先頭をポイントするためのポインタである。メッセージ管理情報チェーン４１０は、該当する転送用キューに登録されているメッセージに対応するメッセージ管理エントリ４０９をチェーン構造で表現する。メッセージ管理エントリ４０９は、次ポインタ４１１とメッセージ管理情報４１２により構成される。次ポインタ４１１は、メッセージ管理情報チェーン４１０の次のメッセージ管理エントリ４０９をポイントするためのポインタである。メッセージ管理情報４１２は、転送用キューに登録したメッセージに関する情報であり、キュー１３からメッセージを取り出す際に必要な情報を有する。
【００３１】
次に、図５を用いてキュー定義情報に関するデータ構造について説明する。図５において、キュー定義情報管理テーブル５００は、最大滞留メッセージ数管理部５０１と優先度の最大値５０２と最大許容遅延時間５０３により構成される。最大滞留メッセージ数管理部５０１は、キュー定義情報１４において定義される優先度の最大値と同数の優先度の最大滞留メッセージ数５０４により構成される。優先度の最大値５０２は、キュー定義情報１４において定義され、１以上の整数として表現される。
【００３２】
最大許容遅延時間５０３は、キュー定義情報１４において定義され、メッセージ転送の遅延が許される時間の最大値を表現する。転送メッセージが最大許容遅延時間５０３を超えて転送用キューに滞留すると、メッセージ数が最大滞留メッセージ数に達していなくても自動的にメッセージの転送処理が実行される。各優先度の最大滞留メッセージ数５０４は、優先度ごとに転送用キューに滞留させるメッセージ数の最大値を０以上の整数値で表現する。この場合も、転送用キューにおいて優先度ごとに滞留メッセージ数が管理され、その滞留メッセージ数が最大滞留メッセージ数５０４を超えると、メッセージの転送処理が実行される。
【００３３】
以下、図６〜図９を用いて、本実施形態に係るメッセージキューイングシステム１２において実行される処理の流れについて説明する。ここで、図６は、システム開始時に実行される初期化処理の流れの例を示した図であり、図７は、メッセージをキューへ登録するメッセージ登録処理の流れを示した図であり、図８は、メッセージの転送処理の流れを示した図であり、図９は、タイマー処理の流れを示した図である。
【００３４】
図６に示した初期化処理のプログラムは、システムの電源が投入されたときなどにメッセージキューイングシステムプログラム１２（図２参照）が実行開始されると、最初に実行されるプログラムである。このプログラムが実行されると、メッセージキューイングシステムプログラム１２におけるキュー定義解析部１２４の機能が実現される。
【００３５】
図６において、初期化処理が開始されると、システムは、キュー定義情報１４をもとに、キュー定義情報管理テーブル５００を作成する（ステップＳ６０１）。次に、キュー定義情報管理テーブル５００をもとに、転送用キュー管理テーブル４００を作成する（ステップＳ６０２）。ステップＳ６０１とステップＳ６０２により、キュー１３に係るデータ構造が形成され、メッセージが登録される準備が完了したことになる。また、本初期化処理では、スレッドを生成して、そのスレッドで後記するタイマー処理を実行（ステップＳ６０３）するように設定して、初期化処理を終了する。
【００３６】
図７に示したメッセージ登録処理は、アプリケーションプログラム１１がキュー１３にメッセージの登録を行うキュー操作命令を実行することにより起動されるプログラムである。そして、このプログラムが実行されると、メッセージキューイングシステム１２（図２参照）のキュー制御部１２２の機能の一部が実現される。
【００３７】
図７において、メッセージ登録処理が起動されると、システムは、まず、アプリケーションプログラム１１からキューに登録するメッセージと転送用キュー名称と優先度とを受け取る（ステップＳ７０１）。そして、受け取ったメッセージをキュー１３に登録する（ステップＳ７０２）。
【００３８】
次に、システムは、メッセージ管理エントリ４０９（図４参照）を作成して、キュー格納情報をメッセージ管理情報４１２に設定する（ステップＳ７０３）。次に、アプリケーションプログラム１１から渡された転送用キュー名称と優先度が一致するメッセージ管理情報チェーン４１０の最後に、メッセージ管理エントリ４０９を登録する（ステップＳ７０４）。次に、アプリケーションプログラム１１から渡された転送用キュー名称と優先度が一致する滞留メッセージ数４０７の値を１増やす（ステップＳ７０５）。次に、ステップＳ７０５で更新した滞留メッセージ数４０７の値がその優先度の最大滞留メッセージ数５０４を超えているか否かを判定し（ステップＳ７０６）、超えていた場合には（ステップＳ７０６でＹｅｓ）、メッセージ転送処理（後記図８参照）を実行し（ステップＳ７０７）、超えていなかった場合には（ステップＳ７０６でＮｏ）、メッセージ登録処理を終了する。
【００３９】
図８に示したメッセージ転送処理は、メッセージ登録処理のステップＳ７０７（図７参照）やタイマー処理（後記図９参照）のステップＳ９０４において、メッセージの転送処理が要求されたときに起動される。そして、このプログラムが実行されると、メッセージキューイングシステム１２（図２参照）のメッセージ転送制御部１２３の機能の一部が実現される。
【００４０】
図８において、メッセージ転送処理が起動されると、システムは、処理の要求元から転送用キュー名称と優先度を受け取る（ステップＳ８０１）。次に、要求元から受け取った転送用キュー名称をもとに転送用キュー管理テーブル４００を参照し、宛先情報４０３を取得し、転送先の連携先サーバ３０との間に通信路を確立する（ステップＳ８０２）。そして、通信路の確立に成功できたか否かを判定し（ステップＳ８０３）、通信路の確立に失敗した場合には（ステップＳ８０３でＮｏ）、メッセージ転送処理を終了する。通信路の確立に成功した場合には（ステップＳ８０３でＹｅｓ）、要求元から受け取った転送用キュー名称をもとに、転送用キュー管理テーブル４００からメッセージ管理部４０４を取得し、要求元によって指定された優先度以上の優先度が付された滞留メッセージをすべて送信する（ステップＳ８０４）。そして、その送信が終了すると、通信路を切断し（ステップＳ８０５）、メッセージ転送処理を終了する。
【００４１】
図９に示したタイマー処理は、初期化処理のステップＳ６０３（図６参照）において起動されるプログラムであり、このプログラムが実行されると、メッセージキューイングシステム１２（図２参照）のキュー制御部１２２の機能の一部が実現される。
【００４２】
図９に示したタイマー処理は、図９において、はじめに、システムが終了するのか否かを判定し（ステップＳ９０１）、システムが終了する場合には（ステップＳ９０１でＹｅｓ）、タイマー処理を終了する。また、システムが終了しない場合には（ステップＳ９０１でＮｏ）、転送用キュー管理テーブル４００のすべての転送用キュー管理エントリ４０１に対してステップＳ９０２からステップＳ９０５までの処理を繰り返す。ここで、ステップＳ９０２からステップＳ９０５までの処理とは、まず、転送用キューに滞留メッセージが存在するか否かを判定し（ステップＳ９０３）、滞留メッセージが存在する場合には（ステップＳ９０３でＹｅｓ）、該当する転送用キューの滞留メッセージをすべて転送するために、転送用キュー名称４０２と優先度として１を指定してメッセージ転送処理（図８参照）を実行する（ステップＳ９０４）ことである。ステップＳ９０２からステップＳ９０５までの繰り返し処理が完了したら、最大許容遅延時間５０３で指示した時間が経過するのを待ち（ステップＳ９０６）、ステップＳ９０１に戻る。
【００４３】
なお、図９において、システムが終了するとは、サーバ１０がメッセージキューイング装置としての機能を停止することであり、従って、サーバ１０において、メッセージキューイングシステムプログラム１２の実行を終了することを意味する。
【００４４】
以上に説明した実施形態によれば、転送されるメッセージは、宛先ごとに転送用キュー定義１４１（図３参照）によって定義される転送用キューに登録され、その転送用キューに滞留するメッセージは、優先度別に、転送用キュー管理テーブル４００（図４参照）の中の滞留メッセージ数４０７に記憶される。そして、優先度ｉの滞留メッセージ数４０７に記憶されている数が、キュー定義情報管理テーブル５００（図５参照）の中の優先度ｉの最大滞留メッセージ数５０４に記憶されている数に達したときに、その転送用キューに滞留しているメッセージのうち、優先度ｉ以上の優先度が付されたメッセージをまとめて転送する。そのときの転送先は、転送用キュー管理テーブル４００の宛先情報４０３により定められる。
【００４５】
このように、本実施形態においては、同じ宛先へのメッセージは、所定数以上のメッセージがまとめて転送される。そのため、宛先キューが所在する連携先サーバ３０への通信路をメッセージごとに確立する必要がなくなり、その分、サーバ１０やネットワーク２０に対する負荷が軽減されるとともに、実質的なメッセージの転送効率が向上する。
【００４６】
また、本実施形態によれば、図９に示したように、転送用キューに滞留しているメッセージは、キュー定義情報管理テーブル５００の中の最大許容遅延時間５０３に記憶されている時間ごとに、その転送処理が実行される。そのため、転送されるメッセージがキュー１３に滞留する時間は、最大でも最大許容遅延時間５０３に記憶されている時間になる。よって、メッセージが長時間に渡ってキューに滞留することを防止することができ、連携して動作する分散システムに不都合が生じないようにすることができる。
【００４７】
なお、本実施形態においては、転送用キューは、メッセージの転送宛先ごとに作成され、優先度ごとに滞留メッセージ数をカウントするようにしているが、転送用キューを宛先と優先度ごとに区別して作成してもよい。また、本実施形態においては、優先度は複数個あるとしているが、優先度を付けないようにしてもよい。この場合は、本実施形態においては、図３のシステム共通定義１４２において、優先度の最大値＝１とすればよい。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態に係るメッセージキューイングシステムを適用した分散処理システムの構成を示した図である。
【図２】本発明の実施形態に係るメッセージキューイングシステムの構成を示した図である。
【図３】本発明の実施形態に係るキュー定義情報におけるキュー定義の例を示した図である。
【図４】本発明の実施形態に係る転送用キュー管理テーブルのデータ構造の例を示した図である。
【図５】本発明の実施形態に係るキュー定義情報のデータ構造の例を示した図である。
【図６】本発明の実施形態に係る初期化処理の流れの例を示した図である。
【図７】本発明の実施形態に係るメッセージ登録処理の流れの例を示した図である。
【図８】本発明の実施形態に係るメッセージ転送処理の流れの例を示した図である。
【図９】本発明の実施形態に係るタイマー処理の流れの例を示した図である。
【符号の説明】
【００４９】
１０    サーバ
１１    アプリケーションプログラム
１２    メッセージキューイングシステムプログラム
１３    キュー
１４    キュー定義情報
２０    ネットワーク
３０    連携先サーバ
１２１  ＡＰＩ処理部
１２２  キュー制御部
１２３  メッセージ転送制御部
１２４  キュー定義解析部
１４１  転送用キュー定義
１４２  システム共通定義
４００  転送用キュー管理テーブル
４０１  転送用キュー管理エントリ
４０２  転送用キュー名称
４０３  宛先情報
４０４  メッセージ管理部
４０５  優先度管理エントリ
４０６  優先度
４０７  滞留メッセージ数
４０８  メッセージ管理情報チェーン先頭ポインタ
４０９  メッセージ管理エントリ
４１０  メッセージ管理情報チェーン
４１１  次ポインタ
４１２  メッセージ管理情報
５００  キュー定義情報管理テーブル
５０１  最大滞留メッセージ数管理部
５０２  優先度の最大値
５０３  最大許容遅延時間
５０４  最大滞留メッセージ数
【図１】
2006031238.tif 000003
【図２】
2006031238.tif 000004
【図３】
2006031238.tif 000005
【図４】
2006031238.tif 000006
【図５】
2006031238.tif 000007
【図６】
2006031238.tif 000008
【図７】
2006031238.tif 000009
【図８】
2006031238.tif 000010
【図９】
2006031238.tif 000011