JP2006031238A - メッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置 - Google Patents
メッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置 Download PDFInfo
- Publication number
- JP2006031238A JP2006031238A JP2004207041A JP2004207041A JP2006031238A JP 2006031238 A JP2006031238 A JP 2006031238A JP 2004207041 A JP2004207041 A JP 2004207041A JP 2004207041 A JP2004207041 A JP 2004207041A JP 2006031238 A JP2006031238 A JP 2006031238A
- Authority
- JP
- Japan
- Prior art keywords
- message
- queue
- messages
- staying
- transfer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】 メッセージの転送効率低下を防止し、ネットワークの回線負荷および回線コストを軽減する。
【解決手段】 メッセージに付されている宛先および優先度を判定し、そのメッセージを宛先および優先度ごとに分別してキューに登録する。そして、キューに滞留しているメッセージの数を宛先および優先度ごとに分別してカウントし、そのカウント数が、所定の数を超えたとき、宛先が同じで優先度が同等以上の優先度が付されたメッセージをまとめて転送するようにした。また、キューに最初に登録されたメッセージの滞留時間が、遅くとも所定の最大滞留時間が経過したときには、同じ宛先が付されたメッセージをまとめて転送するようにした。以上のように、まとめてメッセージを転送することによって、転送効率を向上させた。
【選択図】 図7
【解決手段】 メッセージに付されている宛先および優先度を判定し、そのメッセージを宛先および優先度ごとに分別してキューに登録する。そして、キューに滞留しているメッセージの数を宛先および優先度ごとに分別してカウントし、そのカウント数が、所定の数を超えたとき、宛先が同じで優先度が同等以上の優先度が付されたメッセージをまとめて転送するようにした。また、キューに最初に登録されたメッセージの滞留時間が、遅くとも所定の最大滞留時間が経過したときには、同じ宛先が付されたメッセージをまとめて転送するようにした。以上のように、まとめてメッセージを転送することによって、転送効率を向上させた。
【選択図】 図7
Description
本発明は、キューを用いて複数コンピュータ間のメッセージの転送を行うメッセージキューイングシステムにおけるメッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置に関する。
近年、ネットワークを介して複数のコンピュータが一つの関連する処理を連携して実行する分散処理が広く普及してきた。このような分散処理を行うシステムにおいては、連携し合う複数のコンピュータは、ネットワークを介して相互に連携するデータの送受信を行いながら、相互独立に異なる処理を実行する。メッセージキューイングシステムは、このような分散処理システムにおいて頻繁に活用されている。
メッセージキューイングシステムにおいては、分散処理を行うコンピュータの各々の記録媒体上にメッセージキュー(以下、キューという)が設けられ、コンピュータ間のデータの転送(以下、コンピュータ間で転送されるデータをメッセージという)は、このキューを介して相手側のコンピュータの処理と非同期に行われる。すなわち、送信側のコンピュータも、受信側のコンピュータも、互いにキューを相手にメッセージの送受信をすればよいわけであり、相手側のコンピュータの処理状況に影響を受けずに済む。
メッセージキューイングシステムにおいて、キューとは、待ち行列を形成したメッセージを保存するための論理的な器であり、通常はハードディスク記憶装置上のファイルとして構成される。キューは、送信側のコンピュータにも受信側のコンピュータにも構成されるが、アプリケーションプログラム側からは、自コンピュータ側のキューに対するメッセージの登録または読み出しを行えばよい。すなわち、アプリケーションプログラムにおいては、メッセージキューイングシステムが提供するAPI(Application Program Interface)を使用して、キューに対するメッセージの登録や読み出しを行うことによって、メッセージを送受信する。例えば、アプリケーションプログラムにおいてメッセージを送信するには、宛先キューを指定してメッセージを登録するAPIを発行するだけでよい。こうすれば、転送されるメッセージは、いったん、送信側コンピュータの転送用キューに格納さる。そして、メッセージキューイングシステムの管理の下に、受信側コンピュータの宛先キューへ送信され、格納される。
以上のように、メッセージキューイングシステムによれば、アプリケーションプログラムレベルでの送信側処理と受信側処理は、双方が同時に実行されていなくても構わない。少なくとも一方の処理が実行されていれば、キューを介することによって、相手側の処理の実行状態に依存せずに送信処理または受信処理を行うことができる。そのため、メッセージキューイングシステムが提供するメッセージ転送制御方式は、拡張性および柔軟性を兼ね備えたものとなっている。また、メッセージキューイングシステムによって転送されるメッセージは、通信障害やシステムダウンが発生しても、ハードディスク記憶装置等の実体を有するキューに格納されているため、消失することはない。しかも、送信側および受信側の各々のメッセージ転送処理においては、互いにメッセージ送達の確認をとっているので、転送されるメッセージに欠落や重複が生じることはない。このように、メッセージキューイングシステムが提供するメッセージ転送制御方式は、信頼性の高いものにもなっている。
以上に説明したメッセージキューイングシステムの特徴や得失については、例えば、非特許文献1に詳しく解説されている。
「社内システム、次の一手Part2:技術編"4つの技術を適材適所で使い分ける即時性とエラー処理がポイント"」、日経BP社、日経オープンシステム2001年5月号、p.120−125
「社内システム、次の一手Part2:技術編"4つの技術を適材適所で使い分ける即時性とエラー処理がポイント"」、日経BP社、日経オープンシステム2001年5月号、p.120−125
ところで、メッセージキューイングシステムにおけるメッセージの転送処理は、即時性が高く、個々のメッセージが転送用キューに格納されると、直ちに、メッセージ単位で転送処理が行われる。すなわち、メッセージの転送は、次の手順によって行われている。
(1)送信側のアプリケーションプログラムは、転送用キューにメッセージを登録する。
(2)送信側のメッセージキューイングシステムプログラムは、受信側のメッセージキューイングシステムプログラムとの間に通信路を確立し、転送用キューに登録されたメッセージを送信する。このとき、受信側のメッセージキューイングシステムプログラムが停止または通信障害が発生していた場合には、送信側のメッセージキューイングシステムプログラムは、受信側メッセージキューイングシステムプログラムの稼動開始または通信障害回復後に再度メッセージを送信する。
(3)受信側のメッセージキューイングシステムプログラムは、メッセージを受信すると宛先キューにメッセージを登録する。
(4)受信側のアプリケーションプログラムは、宛先キューからメッセージを取り出す。
(1)送信側のアプリケーションプログラムは、転送用キューにメッセージを登録する。
(2)送信側のメッセージキューイングシステムプログラムは、受信側のメッセージキューイングシステムプログラムとの間に通信路を確立し、転送用キューに登録されたメッセージを送信する。このとき、受信側のメッセージキューイングシステムプログラムが停止または通信障害が発生していた場合には、送信側のメッセージキューイングシステムプログラムは、受信側メッセージキューイングシステムプログラムの稼動開始または通信障害回復後に再度メッセージを送信する。
(3)受信側のメッセージキューイングシステムプログラムは、メッセージを受信すると宛先キューにメッセージを登録する。
(4)受信側のアプリケーションプログラムは、宛先キューからメッセージを取り出す。
このように個々のメッセージをメッセージ単位で即時に転送する転送方式は、工場や事業所等のLAN(Local Area Network)のようなローカルで独立性の高いネットワーク環境において実施されても、特に、問題が生じることはない。メッセージを転送するコンピュータ間で通信路を確立し、その確立した通信路を確保し続けることは、可能であり、容易だからである。
しかしながら、公衆回線であるインターネットを介して、多数のコンピュータを連携させるような分散処理システムにおいては、メッセージを転送するコンピュータ間で通信路を確立し、それを確保し続けておくことは難しい。そのため、個々のメッセージ単位で転送処理を行おうとすると、その度ごとに通信路の確立を行う必要がある。そうすると、その通信路確立の処理を行う分、メッセージ転送の効率が低下してしまう。
本発明が解決しようとする課題は、キューを用いて複数コンピュータ間のメッセージの転送を行うメッセージキューイングシステムにおいて、個々のメッセージ単位で通信路の確立を行うために生じるメッセージの転送効率低下を防止し、ネットワークの回線負荷および回線コストを軽減することが可能なメッセージ転送方法、メッセージ転送プログラムおよびメッセージキューイング装置を提供することにある。
本発明においては、他のコンピュータに転送するメッセージのキューが構成される記憶装置とそのキューに対しメッセージの登録および読み出しを行う演算処理装置とを備えたコンピュータが、まず、転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、そのメッセージを前記の判定結果に基づいて分別してキューに登録する。そして、そのキューに登録されて滞留しているメッセージの数を、前記の判定結果に基づいて分別してカウントする。その後、前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送するようにした。
すなわち、本発明においては、通信路を確立させる処理を、個々のメッセージ送信のたびに行う必要がなく、複数のメッセージの送信に対してまとめて行うことができる。そのため、通信路を確立させる処理の実行回数を減ずることができ、連携するコンピュータとの間で行われるメッセージ転送の実質的な効率を向上させることができる。
また、本発明においては、優先度ごとに分別して滞留メッセージ数をカウントすることができる。そのため、優先度が高いメッセージについては、即時に転送するようにし、優先度が低いメッセージについては、最大滞留メッセージ数を大きくして、メッセージ転送の効率向上を図るというような融通性のあるメッセージの転送制御を実現することができる。
さらに、本発明においては、キューに登録されて滞留しているメッセージのうち最初に登録されたメッセージが、長くても所定の時間を超えて滞留したときには、キューに滞留しているメッセージをまとめて転送するようにした。
従って、キューに滞留したメッセージは、所定の時間以内にはまとめて転送される。従って、メッセージが長時間に渡ってキューに滞留することを防止することができる。
本発明によれば、メッセージキューイングシステムにおける複数のコンピュータ間のメッセージ転送処理において、通信路を確立させる処理量を削減することができ、実質的なメッセージの転送効率を向上させることができる。また、本発明によれば、例えば、優先度の高いメッセージは、即時に転送し、優先度の低いメッセージは、所定の滞留メッセージ数を超えるまで転送処理を行わないようにした、現実的でフレキシブルなメッセージ転送制御を実現することができる。
以下、本発明の実施形態について、適宜、図1〜図9を参照しながら詳細に説明する。ここで、図1は、本発明の実施形態に係るメッセージキューイングシステムを適用した分散処理システムの構成を示した図である。
図1において、分散処理システムは、サーバ10と、サーバ10と連携する複数の連携先サーバ30と、これらのサーバを接続するネットワーク20とを含んで構成される。サーバ10および連携先サーバ30は、それぞれが、図示しない演算処理装置と記憶装置とを含んで構成されたコンピュータであり、その記憶装置には、少なくとも、アプリケーションプログラム11およびメッセージキューイングシステムプログラム12が格納されるとともに、キュー13およびキュー定義情報14に係るデータ格納領域が確保される。通常、キュー13は、ハードディスク記憶装置上に確保される。
なお、一般には、メッセージキューイングシステムとは、メッセージキューイングシステムプログラム12を指すことも多いが、ここでは、キューを用いて複数のコンピュータ間のメッセージ転送を実現するためのハードウエアおよびプログラムの総体を指すものとする。そして、メッセージキューイング装置とは、メッセージキューイングシステムプログラム12およびキュー13を含み、メッセージキューイングシステムプログラム12を実行することによって他のコンピュータとの間のメッセージ転送を行うことができるようにされたコンピュータを指すものとする。
図1において、サーバ10および連携先サーバ30は、それぞれ、図示しない演算装置が、図示しない記憶装置に格納されているメッセージキューイングシステムプログラム12を実行する。その実行によって、キュー13が構成され、キュー13を用いたメッセージの転送制御を行う、いわゆるメッセージキューイングシステムの機能が実現される。従って、図1の場合、サーバ10および連携先サーバ30は、それぞれがメッセージキューイング装置に当たる。そこで、以下の説明においては、メッセージキューイング装置を、単に「システム」と略称する。すなわち、単に「システム」という場合には、メッセージキューイングシステムプログラム12を実行するコンピュータを指し、単に「システムが、…する」という場合には、「メッセージキューイング装置、すなわち、メッセージキューイングシステムプログラム12を実行するコンピュータ(の演算処理装置)が、…する」ことを意味するものとする。
図2は、本発明の実施形態に係るメッセージキューイングシステムプログラムの構成を示した図である。図2において、メッセージキューイングシステムプログラム12は、API処理部121とキュー制御部122とメッセージ転送制御部123とキュー定義解析部124とを含んで構成される。
図2において、API処理部121は、アプリケーションプログラム11(図1参照)から送られるキュー操作命令を解読し、そのキュー操作命令に応じた機能の実行をキュー制御部122に要求する。キュー制御部122は、例えば、メッセージのキュー13への登録の要求を受けると、そのメッセージに付された宛先と優先度を判定し、その宛先と優先度ごとに分別してそのメッセージをキュー13に登録する。
キュー制御部122は、キュー13に滞留しているメッセージの数を、メッセージに付された宛先と優先度ごとに分別してカウントし、そのカウントしたメッセージ数が、あらかじめ定められた最大数を超えたか否かを判定する。なお、この最大数は、宛先と優先度ごとに定められている。また、キュー制御部122は、キュー13に滞留しているメッセージの滞留時間が、あらかじめ定められた最大時間を超えたか否かを判定する。
メッセージ転送制御部123は、キュー制御部122を用いてキュー13から、所定のメッセージを取り出し、取り出したメッセージを、そのメッセージの宛先が指定する連携先サーバ30のメッセージキューイングシステム12へ転送する。また、キュー定義解析部124は、メッセージキューイングシステムプログラム12実行開始時に、キュー定義情報14を読み込み、転送用キュー管理テーブル400(後記図4参照)およびキュー定義情報管理テーブル500(後記図5参照)を生成する。
次に、図3、図4および図5を用いて、本実施形態に係るメッセージキューイングシステム12におけるキュー13を管理するためのデータのデータ構造について説明する。ここで、図3は、キュー定義情報におけるキュー定義の例を示した図であり、図4は、転送用キュー管理テーブルのデータ構造の例を示した図であり、図5は、キュー定義情報のデータ構造の例を示した図である。
図3において、キュー定義情報14は、複数の転送用キュー定義141と、システム共通定義142とを含んで構成される。
転送用キュー定義141は、キュー13に個々の転送用キューを定義するための情報であり、転送用キューを識別するための転送用キュー名称と宛先情報とにより構成される。通常、転送用キューは、宛先1つに対して1つの転送用キューが定義される。
転送用キュー定義141は、キュー13に個々の転送用キューを定義するための情報であり、転送用キューを識別するための転送用キュー名称と宛先情報とにより構成される。通常、転送用キューは、宛先1つに対して1つの転送用キューが定義される。
システム共通定義142は、メッセージキューイングシステム12全体、すなわち、複数個作成される転送用キュー定義141に共通に定義される情報である。図3の例では、メッセージに付す優先度の最大値を5とし、優先度としては、1,2,…,5の5種の値を取り得るものとしている。また、最大許容遅延時間は、キューに滞留するメッセージの最長の滞留時間を定義するものであり、この場合には、最大許容遅延時間=60であるので、滞留メッセージは、最大でも60秒以内には転送されるものとしている。また、優先度iの最大滞留メッセージ数は、転送用キューに滞留するメッセージのうち優先度iのメッセージが滞留し得る最大数を示す。
次に、図4を用いてキュー13における転送用キュー管理テーブル400のデータ構造の例について説明する。図4において、転送用キュー管理テーブル400は、複数の転送用キュー管理エントリ401により構成される。
転送用キュー管理エントリ401は、1つの転送用キューの情報を示し、転送用キュー名称402と宛先情報403とメッセージ管理部404とにより構成される。転送用キュー名称402は、転送用キューを識別するためのユニークな名称により表現される。宛先情報403は、メッセージ転送先のキューを示す情報であり、そのキューが所在する連携先サーバ30との間に通信路を確立するために必要な情報を含んでいる。
転送用キュー管理エントリ401は、1つの転送用キューの情報を示し、転送用キュー名称402と宛先情報403とメッセージ管理部404とにより構成される。転送用キュー名称402は、転送用キューを識別するためのユニークな名称により表現される。宛先情報403は、メッセージ転送先のキューを示す情報であり、そのキューが所在する連携先サーバ30との間に通信路を確立するために必要な情報を含んでいる。
メッセージ管理部404は、複数の優先度管理エントリ405により構成され、キュー定義情報14で定義する優先度の最大値と同じ数だけ作成される。優先度管理エントリ405は、優先度406と滞留メッセージ数407とメッセージ管理情報チェーン先頭ポインタ408とにより構成される。優先度406は、メッセージの優先度を表現する値で、1以上で優先度の最大値以下の整数により表現する。優先度406は、値が大きいほど優先度が高いものとする。滞留メッセージ数407は、転送用キューに登録されているメッセージのうち、優先度406で示される優先度が付されたメッセージの数を示している。
メッセージ管理情報チェーン先頭ポインタ408は、メッセージ管理情報チェーン410の先頭をポイントするためのポインタである。メッセージ管理情報チェーン410は、該当する転送用キューに登録されているメッセージに対応するメッセージ管理エントリ409をチェーン構造で表現する。メッセージ管理エントリ409は、次ポインタ411とメッセージ管理情報412により構成される。次ポインタ411は、メッセージ管理情報チェーン410の次のメッセージ管理エントリ409をポイントするためのポインタである。メッセージ管理情報412は、転送用キューに登録したメッセージに関する情報であり、キュー13からメッセージを取り出す際に必要な情報を有する。
次に、図5を用いてキュー定義情報に関するデータ構造について説明する。図5において、キュー定義情報管理テーブル500は、最大滞留メッセージ数管理部501と優先度の最大値502と最大許容遅延時間503により構成される。最大滞留メッセージ数管理部501は、キュー定義情報14において定義される優先度の最大値と同数の優先度の最大滞留メッセージ数504により構成される。優先度の最大値502は、キュー定義情報14において定義され、1以上の整数として表現される。
最大許容遅延時間503は、キュー定義情報14において定義され、メッセージ転送の遅延が許される時間の最大値を表現する。転送メッセージが最大許容遅延時間503を超えて転送用キューに滞留すると、メッセージ数が最大滞留メッセージ数に達していなくても自動的にメッセージの転送処理が実行される。各優先度の最大滞留メッセージ数504は、優先度ごとに転送用キューに滞留させるメッセージ数の最大値を0以上の整数値で表現する。この場合も、転送用キューにおいて優先度ごとに滞留メッセージ数が管理され、その滞留メッセージ数が最大滞留メッセージ数504を超えると、メッセージの転送処理が実行される。
以下、図6〜図9を用いて、本実施形態に係るメッセージキューイングシステム12において実行される処理の流れについて説明する。ここで、図6は、システム開始時に実行される初期化処理の流れの例を示した図であり、図7は、メッセージをキューへ登録するメッセージ登録処理の流れを示した図であり、図8は、メッセージの転送処理の流れを示した図であり、図9は、タイマー処理の流れを示した図である。
図6に示した初期化処理のプログラムは、システムの電源が投入されたときなどにメッセージキューイングシステムプログラム12(図2参照)が実行開始されると、最初に実行されるプログラムである。このプログラムが実行されると、メッセージキューイングシステムプログラム12におけるキュー定義解析部124の機能が実現される。
図6において、初期化処理が開始されると、システムは、キュー定義情報14をもとに、キュー定義情報管理テーブル500を作成する(ステップS601)。次に、キュー定義情報管理テーブル500をもとに、転送用キュー管理テーブル400を作成する(ステップS602)。ステップS601とステップS602により、キュー13に係るデータ構造が形成され、メッセージが登録される準備が完了したことになる。また、本初期化処理では、スレッドを生成して、そのスレッドで後記するタイマー処理を実行(ステップS603)するように設定して、初期化処理を終了する。
図7に示したメッセージ登録処理は、アプリケーションプログラム11がキュー13にメッセージの登録を行うキュー操作命令を実行することにより起動されるプログラムである。そして、このプログラムが実行されると、メッセージキューイングシステム12(図2参照)のキュー制御部122の機能の一部が実現される。
図7において、メッセージ登録処理が起動されると、システムは、まず、アプリケーションプログラム11からキューに登録するメッセージと転送用キュー名称と優先度とを受け取る(ステップS701)。そして、受け取ったメッセージをキュー13に登録する(ステップS702)。
次に、システムは、メッセージ管理エントリ409(図4参照)を作成して、キュー格納情報をメッセージ管理情報412に設定する(ステップS703)。次に、アプリケーションプログラム11から渡された転送用キュー名称と優先度が一致するメッセージ管理情報チェーン410の最後に、メッセージ管理エントリ409を登録する(ステップS704)。次に、アプリケーションプログラム11から渡された転送用キュー名称と優先度が一致する滞留メッセージ数407の値を1増やす(ステップS705)。次に、ステップS705で更新した滞留メッセージ数407の値がその優先度の最大滞留メッセージ数504を超えているか否かを判定し(ステップS706)、超えていた場合には(ステップS706でYes)、メッセージ転送処理(後記図8参照)を実行し(ステップS707)、超えていなかった場合には(ステップS706でNo)、メッセージ登録処理を終了する。
図8に示したメッセージ転送処理は、メッセージ登録処理のステップS707(図7参照)やタイマー処理(後記図9参照)のステップS904において、メッセージの転送処理が要求されたときに起動される。そして、このプログラムが実行されると、メッセージキューイングシステム12(図2参照)のメッセージ転送制御部123の機能の一部が実現される。
図8において、メッセージ転送処理が起動されると、システムは、処理の要求元から転送用キュー名称と優先度を受け取る(ステップS801)。次に、要求元から受け取った転送用キュー名称をもとに転送用キュー管理テーブル400を参照し、宛先情報403を取得し、転送先の連携先サーバ30との間に通信路を確立する(ステップS802)。そして、通信路の確立に成功できたか否かを判定し(ステップS803)、通信路の確立に失敗した場合には(ステップS803でNo)、メッセージ転送処理を終了する。通信路の確立に成功した場合には(ステップS803でYes)、要求元から受け取った転送用キュー名称をもとに、転送用キュー管理テーブル400からメッセージ管理部404を取得し、要求元によって指定された優先度以上の優先度が付された滞留メッセージをすべて送信する(ステップS804)。そして、その送信が終了すると、通信路を切断し(ステップS805)、メッセージ転送処理を終了する。
図9に示したタイマー処理は、初期化処理のステップS603(図6参照)において起動されるプログラムであり、このプログラムが実行されると、メッセージキューイングシステム12(図2参照)のキュー制御部122の機能の一部が実現される。
図9に示したタイマー処理は、図9において、はじめに、システムが終了するのか否かを判定し(ステップS901)、システムが終了する場合には(ステップS901でYes)、タイマー処理を終了する。また、システムが終了しない場合には(ステップS901でNo)、転送用キュー管理テーブル400のすべての転送用キュー管理エントリ401に対してステップS902からステップS905までの処理を繰り返す。ここで、ステップS902からステップS905までの処理とは、まず、転送用キューに滞留メッセージが存在するか否かを判定し(ステップS903)、滞留メッセージが存在する場合には(ステップS903でYes)、該当する転送用キューの滞留メッセージをすべて転送するために、転送用キュー名称402と優先度として1を指定してメッセージ転送処理(図8参照)を実行する(ステップS904)ことである。ステップS902からステップS905までの繰り返し処理が完了したら、最大許容遅延時間503で指示した時間が経過するのを待ち(ステップS906)、ステップS901に戻る。
なお、図9において、システムが終了するとは、サーバ10がメッセージキューイング装置としての機能を停止することであり、従って、サーバ10において、メッセージキューイングシステムプログラム12の実行を終了することを意味する。
以上に説明した実施形態によれば、転送されるメッセージは、宛先ごとに転送用キュー定義141(図3参照)によって定義される転送用キューに登録され、その転送用キューに滞留するメッセージは、優先度別に、転送用キュー管理テーブル400(図4参照)の中の滞留メッセージ数407に記憶される。そして、優先度iの滞留メッセージ数407に記憶されている数が、キュー定義情報管理テーブル500(図5参照)の中の優先度iの最大滞留メッセージ数504に記憶されている数に達したときに、その転送用キューに滞留しているメッセージのうち、優先度i以上の優先度が付されたメッセージをまとめて転送する。そのときの転送先は、転送用キュー管理テーブル400の宛先情報403により定められる。
このように、本実施形態においては、同じ宛先へのメッセージは、所定数以上のメッセージがまとめて転送される。そのため、宛先キューが所在する連携先サーバ30への通信路をメッセージごとに確立する必要がなくなり、その分、サーバ10やネットワーク20に対する負荷が軽減されるとともに、実質的なメッセージの転送効率が向上する。
また、本実施形態によれば、図9に示したように、転送用キューに滞留しているメッセージは、キュー定義情報管理テーブル500の中の最大許容遅延時間503に記憶されている時間ごとに、その転送処理が実行される。そのため、転送されるメッセージがキュー13に滞留する時間は、最大でも最大許容遅延時間503に記憶されている時間になる。よって、メッセージが長時間に渡ってキューに滞留することを防止することができ、連携して動作する分散システムに不都合が生じないようにすることができる。
なお、本実施形態においては、転送用キューは、メッセージの転送宛先ごとに作成され、優先度ごとに滞留メッセージ数をカウントするようにしているが、転送用キューを宛先と優先度ごとに区別して作成してもよい。また、本実施形態においては、優先度は複数個あるとしているが、優先度を付けないようにしてもよい。この場合は、本実施形態においては、図3のシステム共通定義142において、優先度の最大値=1とすればよい。
10 サーバ
11 アプリケーションプログラム
12 メッセージキューイングシステムプログラム
13 キュー
14 キュー定義情報
20 ネットワーク
30 連携先サーバ
121 API処理部
122 キュー制御部
123 メッセージ転送制御部
124 キュー定義解析部
141 転送用キュー定義
142 システム共通定義
400 転送用キュー管理テーブル
401 転送用キュー管理エントリ
402 転送用キュー名称
403 宛先情報
404 メッセージ管理部
405 優先度管理エントリ
406 優先度
407 滞留メッセージ数
408 メッセージ管理情報チェーン先頭ポインタ
409 メッセージ管理エントリ
410 メッセージ管理情報チェーン
411 次ポインタ
412 メッセージ管理情報
500 キュー定義情報管理テーブル
501 最大滞留メッセージ数管理部
502 優先度の最大値
503 最大許容遅延時間
504 最大滞留メッセージ数
11 アプリケーションプログラム
12 メッセージキューイングシステムプログラム
13 キュー
14 キュー定義情報
20 ネットワーク
30 連携先サーバ
121 API処理部
122 キュー制御部
123 メッセージ転送制御部
124 キュー定義解析部
141 転送用キュー定義
142 システム共通定義
400 転送用キュー管理テーブル
401 転送用キュー管理エントリ
402 転送用キュー名称
403 宛先情報
404 メッセージ管理部
405 優先度管理エントリ
406 優先度
407 滞留メッセージ数
408 メッセージ管理情報チェーン先頭ポインタ
409 メッセージ管理エントリ
410 メッセージ管理情報チェーン
411 次ポインタ
412 メッセージ管理情報
500 キュー定義情報管理テーブル
501 最大滞留メッセージ数管理部
502 優先度の最大値
503 最大許容遅延時間
504 最大滞留メッセージ数
Claims (5)
- 他のコンピュータに転送するメッセージのキューが構成される記憶装置とそのキューに対し前記メッセージの登録および読み出しを行う演算処理装置とを備えたコンピュータが前記他のコンピュータとの間で行うメッセージ転送におけるメッセージ転送制御方法であって、
前記コンピュータが、
転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、前記メッセージをその判定結果に基づいて分別して前記キューに登録するステップと、
前記キューに登録されて滞留しているメッセージの数を、前記判定結果に基づいて分別してカウントするステップと、
前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送するステップと
を実行することを特徴とするメッセージ転送制御方法。 - 請求項1に記載のメッセージ転送制御方法において、
前記コンピュータが、さらに、
前記キューに登録されて滞留しているメッセージのうち、最初に登録されたメッセージが長くても所定の時間を超えて滞留したときには、前記滞留しているメッセージをまとめて転送するステップ
を実行することを特徴とするメッセージ転送制御方法。 - 請求項1または請求項2に記載のメッセージ転送方法を、コンピュータに実行させるためのプログラムであることを特徴とするメッセージ転送制御プログラム。
- 他のコンピュータに転送するメッセージのキューが構成される記憶装置とそのキューに対し前記メッセージの登録および読み出しを行う演算処理装置とを備えたコンピュータが前記他のコンピュータとの間のメッセージ転送の制御を行うメッセージキューイング装置であって、
転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、前記メッセージをその判定結果に基づいて分別して前記キューに登録するメッセージ登録手段と、
前記キューに登録されて滞留しているメッセージの数を、前記判定結果に基づいて分別してカウントする滞留メッセージカウント手段と、
前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送する滞留メッセージ転送手段と
を備えたことを特徴とするメッセージキューイング装置。 - 請求項4に記載のメッセージキューイング装置が、さらに、
前記キューに登録されて滞留しているメッセージのうち、最初に登録されたメッセージが長くても所定の時間を超えて滞留したときには、前記滞留しているメッセージをまとめて転送する第2の滞留メッセージ転送手段
を備えたことを特徴とするメッセージキューイング装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004207041A JP2006031238A (ja) | 2004-07-14 | 2004-07-14 | メッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004207041A JP2006031238A (ja) | 2004-07-14 | 2004-07-14 | メッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006031238A true JP2006031238A (ja) | 2006-02-02 |
Family
ID=35897532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004207041A Pending JP2006031238A (ja) | 2004-07-14 | 2004-07-14 | メッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006031238A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008047098A (ja) * | 2006-07-19 | 2008-02-28 | Matsushita Electric Ind Co Ltd | メッセージ通信装置 |
JP2008181404A (ja) * | 2007-01-25 | 2008-08-07 | Matsushita Electric Works Ltd | 分散情報システム及び通信方法 |
US10148585B2 (en) | 2014-07-07 | 2018-12-04 | Fujitsu Limited | Communication control method, information processing apparatus, and storage medium |
US11277716B2 (en) | 2019-04-11 | 2022-03-15 | Fujitsu Limited | Effective communication of messages based on integration of message flows among multiple services |
-
2004
- 2004-07-14 JP JP2004207041A patent/JP2006031238A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008047098A (ja) * | 2006-07-19 | 2008-02-28 | Matsushita Electric Ind Co Ltd | メッセージ通信装置 |
JP2008181404A (ja) * | 2007-01-25 | 2008-08-07 | Matsushita Electric Works Ltd | 分散情報システム及び通信方法 |
JP4725525B2 (ja) * | 2007-01-25 | 2011-07-13 | パナソニック電工株式会社 | 分散情報システム及び通信方法 |
US10148585B2 (en) | 2014-07-07 | 2018-12-04 | Fujitsu Limited | Communication control method, information processing apparatus, and storage medium |
US11277716B2 (en) | 2019-04-11 | 2022-03-15 | Fujitsu Limited | Effective communication of messages based on integration of message flows among multiple services |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7793140B2 (en) | Method and system for handling failover in a distributed environment that uses session affinity | |
US10491560B2 (en) | Message delivery in messaging networks | |
JP4144897B2 (ja) | 共通作業キュー環境における最適格サーバ | |
US8843580B2 (en) | Criteria-based message publication control and feedback in a publish/subscribe messaging environment | |
US7085954B2 (en) | Storage system performing remote copying bypassing controller | |
US8589537B2 (en) | Methods and computer program products for aggregating network application performance metrics by process pool | |
JPH11328132A (ja) | サ―バのグル―プに関する作業負荷管理を行うデ―タ処理装置、方法、およびコンピュ―タ・プログラム製品 | |
US8793322B2 (en) | Failure-controlled message publication and feedback in a publish/subscribe messaging environment | |
US20150024794A1 (en) | Push notification via file sharing service synchronization | |
US20090013141A1 (en) | Information leakage detection for storage systems | |
US8856400B1 (en) | I/O performance quotas | |
KR20100031513A (ko) | 고가용성 전송 | |
US10362131B1 (en) | Fault tolerant message delivery | |
US9282151B2 (en) | Flow control in a distributed environment | |
CN116301568A (zh) | 一种数据访问方法、装置以及设备 | |
CN1829231B (zh) | 直接接收入站数据的方法和装置 | |
JP2006031238A (ja) | メッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置 | |
US7954112B2 (en) | Automatic recovery from failures of messages within a data interchange | |
JP5491972B2 (ja) | 2重化サーバシステム、ファイル操作方法、およびファイル操作プログラム | |
JP2008124977A (ja) | メッセージ配送方法、装置及びプログラム | |
US20120215908A1 (en) | Method and system for detecting improper operation and computer-readable non-transitory storage medium | |
US20110208930A1 (en) | Providing Shared Access to Data Storage Resources Across Cluster Computing Environment Boundaries | |
JP2004146931A (ja) | パケット転送装置およびパケット転送装置の不正アクセス検知時に於ける情報通知方法 | |
JP4109624B2 (ja) | 処理スケジュールの管理方法、サーバ、処理スケジュールの管理プログラム | |
US20090319593A1 (en) | Optimized Message Format for Synchronization Flows Between Transaction Processing Systems |