JP2006031238A - Message transfer control method, message transfer control program and message queuing device - Google Patents
Message transfer control method, message transfer control program and message queuing device 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
Description
本発明は、キューを用いて複数コンピュータ間のメッセージの転送を行うメッセージキューイングシステムにおけるメッセージ転送制御方法、メッセージ転送制御プログラムおよびメッセージキューイング装置に関する。 The present invention relates to a message transfer control method, a message transfer control program, and a message queuing device in a message queuing system that transfers messages between a plurality of computers using a queue.
近年、ネットワークを介して複数のコンピュータが一つの関連する処理を連携して実行する分散処理が広く普及してきた。このような分散処理を行うシステムにおいては、連携し合う複数のコンピュータは、ネットワークを介して相互に連携するデータの送受信を行いながら、相互独立に異なる処理を実行する。メッセージキューイングシステムは、このような分散処理システムにおいて頻繁に活用されている。 In recent years, distributed processing in which a plurality of computers execute one related process in cooperation via a network has become widespread. In a system that performs such distributed processing, a plurality of computers that cooperate with each other perform different processing independently while transmitting and receiving data that cooperate with each other via a network. Message queuing systems are frequently used in such distributed processing systems.
メッセージキューイングシステムにおいては、分散処理を行うコンピュータの各々の記録媒体上にメッセージキュー(以下、キューという)が設けられ、コンピュータ間のデータの転送(以下、コンピュータ間で転送されるデータをメッセージという)は、このキューを介して相手側のコンピュータの処理と非同期に行われる。すなわち、送信側のコンピュータも、受信側のコンピュータも、互いにキューを相手にメッセージの送受信をすればよいわけであり、相手側のコンピュータの処理状況に影響を受けずに済む。 In a message queuing system, a message queue (hereinafter referred to as a queue) is provided on each recording medium of a computer that performs distributed processing, and data transfer between computers (hereinafter, data transferred between computers is referred to as a message). ) Is performed asynchronously with the processing of the other computer via this queue. That is, both the sending computer and the receiving computer need only send and receive messages to and from the other party, and are not affected by the processing status of the other computer.
メッセージキューイングシステムにおいて、キューとは、待ち行列を形成したメッセージを保存するための論理的な器であり、通常はハードディスク記憶装置上のファイルとして構成される。キューは、送信側のコンピュータにも受信側のコンピュータにも構成されるが、アプリケーションプログラム側からは、自コンピュータ側のキューに対するメッセージの登録または読み出しを行えばよい。すなわち、アプリケーションプログラムにおいては、メッセージキューイングシステムが提供するAPI(Application Program Interface)を使用して、キューに対するメッセージの登録や読み出しを行うことによって、メッセージを送受信する。例えば、アプリケーションプログラムにおいてメッセージを送信するには、宛先キューを指定してメッセージを登録するAPIを発行するだけでよい。こうすれば、転送されるメッセージは、いったん、送信側コンピュータの転送用キューに格納さる。そして、メッセージキューイングシステムの管理の下に、受信側コンピュータの宛先キューへ送信され、格納される。 In the message queuing system, a queue is a logical device for storing queued messages, and is usually configured as a file on a hard disk storage device. The queue is configured on both the sending computer and the receiving computer. From the application program side, the message may be registered or read out from the queue on the own computer side. That is, in an application program, messages are transmitted and received by registering and reading messages to and from the queue using an API (Application Program Interface) provided by the message queuing system. For example, in order to transmit a message in an application program, it is only necessary to issue an API for registering the message by designating a destination queue. In this way, the transferred message is temporarily stored in the transfer queue of the transmitting computer. Then, under the management of the message queuing system, it is transmitted to the destination queue of the receiving computer and stored.
以上のように、メッセージキューイングシステムによれば、アプリケーションプログラムレベルでの送信側処理と受信側処理は、双方が同時に実行されていなくても構わない。少なくとも一方の処理が実行されていれば、キューを介することによって、相手側の処理の実行状態に依存せずに送信処理または受信処理を行うことができる。そのため、メッセージキューイングシステムが提供するメッセージ転送制御方式は、拡張性および柔軟性を兼ね備えたものとなっている。また、メッセージキューイングシステムによって転送されるメッセージは、通信障害やシステムダウンが発生しても、ハードディスク記憶装置等の実体を有するキューに格納されているため、消失することはない。しかも、送信側および受信側の各々のメッセージ転送処理においては、互いにメッセージ送達の確認をとっているので、転送されるメッセージに欠落や重複が生じることはない。このように、メッセージキューイングシステムが提供するメッセージ転送制御方式は、信頼性の高いものにもなっている。 As described above, according to the message queuing system, both the transmission-side processing and the reception-side processing at the application program level may not be executed simultaneously. If at least one of the processes is executed, the transmission process or the reception process can be performed via the queue without depending on the execution state of the other party's process. Therefore, the message transfer control method provided by the message queuing system has both expandability and flexibility. In addition, even if a communication failure or system failure occurs, a message transferred by the message queuing system is stored in a queue having an entity such as a hard disk storage device, and thus does not disappear. Moreover, in the message transfer processes on the transmitting side and on the receiving side, since message delivery confirmation is mutually performed, there is no omission or duplication in the transferred messages. Thus, the message transfer control method provided by the message queuing system is also highly reliable.
以上に説明したメッセージキューイングシステムの特徴や得失については、例えば、非特許文献1に詳しく解説されている。
ところで、メッセージキューイングシステムにおけるメッセージの転送処理は、即時性が高く、個々のメッセージが転送用キューに格納されると、直ちに、メッセージ単位で転送処理が行われる。すなわち、メッセージの転送は、次の手順によって行われている。
(1)送信側のアプリケーションプログラムは、転送用キューにメッセージを登録する。
(2)送信側のメッセージキューイングシステムプログラムは、受信側のメッセージキューイングシステムプログラムとの間に通信路を確立し、転送用キューに登録されたメッセージを送信する。このとき、受信側のメッセージキューイングシステムプログラムが停止または通信障害が発生していた場合には、送信側のメッセージキューイングシステムプログラムは、受信側メッセージキューイングシステムプログラムの稼動開始または通信障害回復後に再度メッセージを送信する。
(3)受信側のメッセージキューイングシステムプログラムは、メッセージを受信すると宛先キューにメッセージを登録する。
(4)受信側のアプリケーションプログラムは、宛先キューからメッセージを取り出す。
By the way, the message transfer process in the message queuing system has high immediacy, and when each message is stored in the transfer queue, the transfer process is immediately performed in units of messages. That is, message transfer is performed according to the following procedure.
(1) The application program on the transmission side registers a message in the transfer queue.
(2) The message queuing system program on the transmission side establishes a communication path with the message queuing system program on the reception side, and transmits the message registered in the transfer queue. At this time, if the message queuing system program on the receiving side has stopped or a communication failure has occurred, the message queuing system program on the sending side will start after the operation of the receiving side message queuing system program or recovery from the communication failure Send the message again.
(3) When the message queuing system program on the receiving side receives the message, it registers the message in the destination queue.
(4) The application program on the receiving side takes out the message from the destination queue.
このように個々のメッセージをメッセージ単位で即時に転送する転送方式は、工場や事業所等のLAN(Local Area Network)のようなローカルで独立性の高いネットワーク環境において実施されても、特に、問題が生じることはない。メッセージを転送するコンピュータ間で通信路を確立し、その確立した通信路を確保し続けることは、可能であり、容易だからである。 Such a transfer method for transferring individual messages immediately in units of messages is particularly problematic even when implemented in a local and highly independent network environment such as a LAN (Local Area Network) in factories or offices. Will not occur. This is because it is possible and easy to establish a communication path between computers that transfer messages and to keep the established communication path.
しかしながら、公衆回線であるインターネットを介して、多数のコンピュータを連携させるような分散処理システムにおいては、メッセージを転送するコンピュータ間で通信路を確立し、それを確保し続けておくことは難しい。そのため、個々のメッセージ単位で転送処理を行おうとすると、その度ごとに通信路の確立を行う必要がある。そうすると、その通信路確立の処理を行う分、メッセージ転送の効率が低下してしまう。 However, in a distributed processing system in which a large number of computers are linked via the Internet, which is a public line, it is difficult to establish a communication path between computers that transfer messages and to keep it secure. For this reason, if transfer processing is performed in units of individual messages, it is necessary to establish a communication path every time. Then, the efficiency of message transfer is reduced by the amount of processing for establishing the communication path.
本発明が解決しようとする課題は、キューを用いて複数コンピュータ間のメッセージの転送を行うメッセージキューイングシステムにおいて、個々のメッセージ単位で通信路の確立を行うために生じるメッセージの転送効率低下を防止し、ネットワークの回線負荷および回線コストを軽減することが可能なメッセージ転送方法、メッセージ転送プログラムおよびメッセージキューイング装置を提供することにある。 The problem to be solved by the present invention is to prevent a decrease in message transfer efficiency caused by establishing a communication path in units of individual messages in a message queuing system that transfers messages between multiple computers using queues. It is another object of the present invention to provide a message transfer method, a message transfer program, and a message queuing device that can reduce the line load and line cost of a network.
本発明においては、他のコンピュータに転送するメッセージのキューが構成される記憶装置とそのキューに対しメッセージの登録および読み出しを行う演算処理装置とを備えたコンピュータが、まず、転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、そのメッセージを前記の判定結果に基づいて分別してキューに登録する。そして、そのキューに登録されて滞留しているメッセージの数を、前記の判定結果に基づいて分別してカウントする。その後、前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送するようにした。 In the present invention, a computer including a storage device configured to queue a message to be transferred to another computer and an arithmetic processing unit for registering and reading a message to the queue is first attached to the message to be transferred. At least one of the destination and priority is determined, and the message is classified based on the determination result and registered in the queue. Then, the number of messages registered and staying in the queue is classified and counted based on the determination result. After that, when the number of staying messages counted separately exceeds a predetermined number, the messages sorted based on at least one of the destination and priority attached to the staying messages counted separately are collected. And forwarded.
すなわち、本発明においては、通信路を確立させる処理を、個々のメッセージ送信のたびに行う必要がなく、複数のメッセージの送信に対してまとめて行うことができる。そのため、通信路を確立させる処理の実行回数を減ずることができ、連携するコンピュータとの間で行われるメッセージ転送の実質的な効率を向上させることができる。 That is, in the present invention, it is not necessary to perform the process of establishing a communication path for each message transmission, and it can be performed collectively for the transmission of a plurality of messages. Therefore, it is possible to reduce the number of executions of processing for establishing a communication path, and it is possible to improve the substantial efficiency of message transfer performed between linked computers.
また、本発明においては、優先度ごとに分別して滞留メッセージ数をカウントすることができる。そのため、優先度が高いメッセージについては、即時に転送するようにし、優先度が低いメッセージについては、最大滞留メッセージ数を大きくして、メッセージ転送の効率向上を図るというような融通性のあるメッセージの転送制御を実現することができる。 Further, in the present invention, the number of staying messages can be counted separately for each priority. For this reason, messages with high priority such as high-priority messages are transferred immediately, and for messages with low priority, the maximum number of staying messages is increased to improve the efficiency of message transfer. Transfer control can be realized.
さらに、本発明においては、キューに登録されて滞留しているメッセージのうち最初に登録されたメッセージが、長くても所定の時間を超えて滞留したときには、キューに滞留しているメッセージをまとめて転送するようにした。 Furthermore, in the present invention, when the first registered message that has been registered and staying in the queue stays longer than a predetermined time, the messages that have stayed in the queue are collected together. I forwarded it.
従って、キューに滞留したメッセージは、所定の時間以内にはまとめて転送される。従って、メッセージが長時間に渡ってキューに滞留することを防止することができる。 Therefore, the messages staying in the queue are transferred together within a predetermined time. Therefore, the message can be prevented from staying in the queue for a long time.
本発明によれば、メッセージキューイングシステムにおける複数のコンピュータ間のメッセージ転送処理において、通信路を確立させる処理量を削減することができ、実質的なメッセージの転送効率を向上させることができる。また、本発明によれば、例えば、優先度の高いメッセージは、即時に転送し、優先度の低いメッセージは、所定の滞留メッセージ数を超えるまで転送処理を行わないようにした、現実的でフレキシブルなメッセージ転送制御を実現することができる。 According to the present invention, in message transfer processing between a plurality of computers in a message queuing system, it is possible to reduce the amount of processing for establishing a communication path, and it is possible to improve substantial message transfer efficiency. Further, according to the present invention, for example, a high priority message is transferred immediately, and a low priority message is not transferred until a predetermined number of staying messages is exceeded. Message transfer control can be realized.
以下、本発明の実施形態について、適宜、図1〜図9を参照しながら詳細に説明する。ここで、図1は、本発明の実施形態に係るメッセージキューイングシステムを適用した分散処理システムの構成を示した図である。 Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 1 to 9 as appropriate. Here, FIG. 1 is a diagram showing a configuration of a distributed processing system to which the message queuing system according to the embodiment of the present invention is applied.
図1において、分散処理システムは、サーバ10と、サーバ10と連携する複数の連携先サーバ30と、これらのサーバを接続するネットワーク20とを含んで構成される。サーバ10および連携先サーバ30は、それぞれが、図示しない演算処理装置と記憶装置とを含んで構成されたコンピュータであり、その記憶装置には、少なくとも、アプリケーションプログラム11およびメッセージキューイングシステムプログラム12が格納されるとともに、キュー13およびキュー定義情報14に係るデータ格納領域が確保される。通常、キュー13は、ハードディスク記憶装置上に確保される。
In FIG. 1, the distributed processing system includes a server 10, a plurality of cooperation destination servers 30 that cooperate with the server 10, and a
なお、一般には、メッセージキューイングシステムとは、メッセージキューイングシステムプログラム12を指すことも多いが、ここでは、キューを用いて複数のコンピュータ間のメッセージ転送を実現するためのハードウエアおよびプログラムの総体を指すものとする。そして、メッセージキューイング装置とは、メッセージキューイングシステムプログラム12およびキュー13を含み、メッセージキューイングシステムプログラム12を実行することによって他のコンピュータとの間のメッセージ転送を行うことができるようにされたコンピュータを指すものとする。
In general, the message queuing system often refers to the message queuing
図1において、サーバ10および連携先サーバ30は、それぞれ、図示しない演算装置が、図示しない記憶装置に格納されているメッセージキューイングシステムプログラム12を実行する。その実行によって、キュー13が構成され、キュー13を用いたメッセージの転送制御を行う、いわゆるメッセージキューイングシステムの機能が実現される。従って、図1の場合、サーバ10および連携先サーバ30は、それぞれがメッセージキューイング装置に当たる。そこで、以下の説明においては、メッセージキューイング装置を、単に「システム」と略称する。すなわち、単に「システム」という場合には、メッセージキューイングシステムプログラム12を実行するコンピュータを指し、単に「システムが、…する」という場合には、「メッセージキューイング装置、すなわち、メッセージキューイングシステムプログラム12を実行するコンピュータ(の演算処理装置)が、…する」ことを意味するものとする。
In FIG. 1, in each of the server 10 and the cooperation destination server 30, an arithmetic device (not shown) executes the message
図2は、本発明の実施形態に係るメッセージキューイングシステムプログラムの構成を示した図である。図2において、メッセージキューイングシステムプログラム12は、API処理部121とキュー制御部122とメッセージ転送制御部123とキュー定義解析部124とを含んで構成される。
FIG. 2 is a diagram showing a configuration of the message queuing system program according to the embodiment of the present invention. In FIG. 2, the message
図2において、API処理部121は、アプリケーションプログラム11(図1参照)から送られるキュー操作命令を解読し、そのキュー操作命令に応じた機能の実行をキュー制御部122に要求する。キュー制御部122は、例えば、メッセージのキュー13への登録の要求を受けると、そのメッセージに付された宛先と優先度を判定し、その宛先と優先度ごとに分別してそのメッセージをキュー13に登録する。
In FIG. 2, the
キュー制御部122は、キュー13に滞留しているメッセージの数を、メッセージに付された宛先と優先度ごとに分別してカウントし、そのカウントしたメッセージ数が、あらかじめ定められた最大数を超えたか否かを判定する。なお、この最大数は、宛先と優先度ごとに定められている。また、キュー制御部122は、キュー13に滞留しているメッセージの滞留時間が、あらかじめ定められた最大時間を超えたか否かを判定する。
The
メッセージ転送制御部123は、キュー制御部122を用いてキュー13から、所定のメッセージを取り出し、取り出したメッセージを、そのメッセージの宛先が指定する連携先サーバ30のメッセージキューイングシステム12へ転送する。また、キュー定義解析部124は、メッセージキューイングシステムプログラム12実行開始時に、キュー定義情報14を読み込み、転送用キュー管理テーブル400(後記図4参照)およびキュー定義情報管理テーブル500(後記図5参照)を生成する。
The message
次に、図3、図4および図5を用いて、本実施形態に係るメッセージキューイングシステム12におけるキュー13を管理するためのデータのデータ構造について説明する。ここで、図3は、キュー定義情報におけるキュー定義の例を示した図であり、図4は、転送用キュー管理テーブルのデータ構造の例を示した図であり、図5は、キュー定義情報のデータ構造の例を示した図である。
Next, the data structure of data for managing the
図3において、キュー定義情報14は、複数の転送用キュー定義141と、システム共通定義142とを含んで構成される。
転送用キュー定義141は、キュー13に個々の転送用キューを定義するための情報であり、転送用キューを識別するための転送用キュー名称と宛先情報とにより構成される。通常、転送用キューは、宛先1つに対して1つの転送用キューが定義される。
In FIG. 3, the
The
システム共通定義142は、メッセージキューイングシステム12全体、すなわち、複数個作成される転送用キュー定義141に共通に定義される情報である。図3の例では、メッセージに付す優先度の最大値を5とし、優先度としては、1,2,…,5の5種の値を取り得るものとしている。また、最大許容遅延時間は、キューに滞留するメッセージの最長の滞留時間を定義するものであり、この場合には、最大許容遅延時間=60であるので、滞留メッセージは、最大でも60秒以内には転送されるものとしている。また、優先度iの最大滞留メッセージ数は、転送用キューに滞留するメッセージのうち優先度iのメッセージが滞留し得る最大数を示す。
The system
次に、図4を用いてキュー13における転送用キュー管理テーブル400のデータ構造の例について説明する。図4において、転送用キュー管理テーブル400は、複数の転送用キュー管理エントリ401により構成される。
転送用キュー管理エントリ401は、1つの転送用キューの情報を示し、転送用キュー名称402と宛先情報403とメッセージ管理部404とにより構成される。転送用キュー名称402は、転送用キューを識別するためのユニークな名称により表現される。宛先情報403は、メッセージ転送先のキューを示す情報であり、そのキューが所在する連携先サーバ30との間に通信路を確立するために必要な情報を含んでいる。
Next, an example of the data structure of the transfer queue management table 400 in the
A transfer
メッセージ管理部404は、複数の優先度管理エントリ405により構成され、キュー定義情報14で定義する優先度の最大値と同じ数だけ作成される。優先度管理エントリ405は、優先度406と滞留メッセージ数407とメッセージ管理情報チェーン先頭ポインタ408とにより構成される。優先度406は、メッセージの優先度を表現する値で、1以上で優先度の最大値以下の整数により表現する。優先度406は、値が大きいほど優先度が高いものとする。滞留メッセージ数407は、転送用キューに登録されているメッセージのうち、優先度406で示される優先度が付されたメッセージの数を示している。
The
メッセージ管理情報チェーン先頭ポインタ408は、メッセージ管理情報チェーン410の先頭をポイントするためのポインタである。メッセージ管理情報チェーン410は、該当する転送用キューに登録されているメッセージに対応するメッセージ管理エントリ409をチェーン構造で表現する。メッセージ管理エントリ409は、次ポインタ411とメッセージ管理情報412により構成される。次ポインタ411は、メッセージ管理情報チェーン410の次のメッセージ管理エントリ409をポイントするためのポインタである。メッセージ管理情報412は、転送用キューに登録したメッセージに関する情報であり、キュー13からメッセージを取り出す際に必要な情報を有する。
The message management information
次に、図5を用いてキュー定義情報に関するデータ構造について説明する。図5において、キュー定義情報管理テーブル500は、最大滞留メッセージ数管理部501と優先度の最大値502と最大許容遅延時間503により構成される。最大滞留メッセージ数管理部501は、キュー定義情報14において定義される優先度の最大値と同数の優先度の最大滞留メッセージ数504により構成される。優先度の最大値502は、キュー定義情報14において定義され、1以上の整数として表現される。
Next, a data structure related to queue definition information will be described with reference to FIG. In FIG. 5, the queue definition information management table 500 includes a maximum stay message
最大許容遅延時間503は、キュー定義情報14において定義され、メッセージ転送の遅延が許される時間の最大値を表現する。転送メッセージが最大許容遅延時間503を超えて転送用キューに滞留すると、メッセージ数が最大滞留メッセージ数に達していなくても自動的にメッセージの転送処理が実行される。各優先度の最大滞留メッセージ数504は、優先度ごとに転送用キューに滞留させるメッセージ数の最大値を0以上の整数値で表現する。この場合も、転送用キューにおいて優先度ごとに滞留メッセージ数が管理され、その滞留メッセージ数が最大滞留メッセージ数504を超えると、メッセージの転送処理が実行される。
The maximum
以下、図6〜図9を用いて、本実施形態に係るメッセージキューイングシステム12において実行される処理の流れについて説明する。ここで、図6は、システム開始時に実行される初期化処理の流れの例を示した図であり、図7は、メッセージをキューへ登録するメッセージ登録処理の流れを示した図であり、図8は、メッセージの転送処理の流れを示した図であり、図9は、タイマー処理の流れを示した図である。
Hereinafter, the flow of processing executed in the
図6に示した初期化処理のプログラムは、システムの電源が投入されたときなどにメッセージキューイングシステムプログラム12(図2参照)が実行開始されると、最初に実行されるプログラムである。このプログラムが実行されると、メッセージキューイングシステムプログラム12におけるキュー定義解析部124の機能が実現される。
The initialization processing program shown in FIG. 6 is a program that is executed first when the message queuing system program 12 (see FIG. 2) is started, for example, when the system is powered on. When this program is executed, the function of the queue
図6において、初期化処理が開始されると、システムは、キュー定義情報14をもとに、キュー定義情報管理テーブル500を作成する(ステップS601)。次に、キュー定義情報管理テーブル500をもとに、転送用キュー管理テーブル400を作成する(ステップS602)。ステップS601とステップS602により、キュー13に係るデータ構造が形成され、メッセージが登録される準備が完了したことになる。また、本初期化処理では、スレッドを生成して、そのスレッドで後記するタイマー処理を実行(ステップS603)するように設定して、初期化処理を終了する。
In FIG. 6, when the initialization process is started, the system creates the queue definition information management table 500 based on the queue definition information 14 (step S601). Next, the transfer queue management table 400 is created based on the queue definition information management table 500 (step S602). By steps S601 and S602, the data structure related to the
図7に示したメッセージ登録処理は、アプリケーションプログラム11がキュー13にメッセージの登録を行うキュー操作命令を実行することにより起動されるプログラムである。そして、このプログラムが実行されると、メッセージキューイングシステム12(図2参照)のキュー制御部122の機能の一部が実現される。
The message registration process shown in FIG. 7 is a program started when the
図7において、メッセージ登録処理が起動されると、システムは、まず、アプリケーションプログラム11からキューに登録するメッセージと転送用キュー名称と優先度とを受け取る(ステップS701)。そして、受け取ったメッセージをキュー13に登録する(ステップS702)。 In FIG. 7, when the message registration process is activated, the system first receives a message to be registered in the queue, the transfer queue name, and the priority from the application program 11 (step S701). The received message is registered in the queue 13 (step S702).
次に、システムは、メッセージ管理エントリ409(図4参照)を作成して、キュー格納情報をメッセージ管理情報412に設定する(ステップS703)。次に、アプリケーションプログラム11から渡された転送用キュー名称と優先度が一致するメッセージ管理情報チェーン410の最後に、メッセージ管理エントリ409を登録する(ステップS704)。次に、アプリケーションプログラム11から渡された転送用キュー名称と優先度が一致する滞留メッセージ数407の値を1増やす(ステップS705)。次に、ステップS705で更新した滞留メッセージ数407の値がその優先度の最大滞留メッセージ数504を超えているか否かを判定し(ステップS706)、超えていた場合には(ステップS706でYes)、メッセージ転送処理(後記図8参照)を実行し(ステップS707)、超えていなかった場合には(ステップS706でNo)、メッセージ登録処理を終了する。
Next, the system creates a message management entry 409 (see FIG. 4) and sets the queue storage information in the message management information 412 (step S703). Next, the
図8に示したメッセージ転送処理は、メッセージ登録処理のステップS707(図7参照)やタイマー処理(後記図9参照)のステップS904において、メッセージの転送処理が要求されたときに起動される。そして、このプログラムが実行されると、メッセージキューイングシステム12(図2参照)のメッセージ転送制御部123の機能の一部が実現される。
The message transfer process shown in FIG. 8 is started when a message transfer process is requested in step S707 (see FIG. 7) of the message registration process or in step S904 of the timer process (see FIG. 9 described later). When this program is executed, part of the function of the message
図8において、メッセージ転送処理が起動されると、システムは、処理の要求元から転送用キュー名称と優先度を受け取る(ステップS801)。次に、要求元から受け取った転送用キュー名称をもとに転送用キュー管理テーブル400を参照し、宛先情報403を取得し、転送先の連携先サーバ30との間に通信路を確立する(ステップS802)。そして、通信路の確立に成功できたか否かを判定し(ステップS803)、通信路の確立に失敗した場合には(ステップS803でNo)、メッセージ転送処理を終了する。通信路の確立に成功した場合には(ステップS803でYes)、要求元から受け取った転送用キュー名称をもとに、転送用キュー管理テーブル400からメッセージ管理部404を取得し、要求元によって指定された優先度以上の優先度が付された滞留メッセージをすべて送信する(ステップS804)。そして、その送信が終了すると、通信路を切断し(ステップS805)、メッセージ転送処理を終了する。
In FIG. 8, when the message transfer process is activated, the system receives the transfer queue name and priority from the request source of the process (step S801). Next, referring to the transfer queue management table 400 based on the transfer queue name received from the request source, the
図9に示したタイマー処理は、初期化処理のステップS603(図6参照)において起動されるプログラムであり、このプログラムが実行されると、メッセージキューイングシステム12(図2参照)のキュー制御部122の機能の一部が実現される。
The timer process shown in FIG. 9 is a program activated in step S603 (see FIG. 6) of the initialization process, and when this program is executed, the queue control unit of the message queuing system 12 (see FIG. 2). A part of the
図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に戻る。
The timer process shown in FIG. 9 first determines whether or not the system is terminated in FIG. 9 (step S901). If the system is terminated (Yes in step S901), the timer process is terminated. If the system is not terminated (No in step S901), the processing from step S902 to step S905 is repeated for all the transfer
なお、図9において、システムが終了するとは、サーバ10がメッセージキューイング装置としての機能を停止することであり、従って、サーバ10において、メッセージキューイングシステムプログラム12の実行を終了することを意味する。
In FIG. 9, the termination of the system means that the server 10 stops functioning as a message queuing device, and therefore the server 10 terminates the execution of the message
以上に説明した実施形態によれば、転送されるメッセージは、宛先ごとに転送用キュー定義141(図3参照)によって定義される転送用キューに登録され、その転送用キューに滞留するメッセージは、優先度別に、転送用キュー管理テーブル400(図4参照)の中の滞留メッセージ数407に記憶される。そして、優先度iの滞留メッセージ数407に記憶されている数が、キュー定義情報管理テーブル500(図5参照)の中の優先度iの最大滞留メッセージ数504に記憶されている数に達したときに、その転送用キューに滞留しているメッセージのうち、優先度i以上の優先度が付されたメッセージをまとめて転送する。そのときの転送先は、転送用キュー管理テーブル400の宛先情報403により定められる。
According to the embodiment described above, the message to be transferred is registered in the transfer queue defined by the transfer queue definition 141 (see FIG. 3) for each destination, and the message staying in the transfer queue is: For each priority, the message is stored in the stay message count 407 in the transfer queue management table 400 (see FIG. 4). Then, the number stored in the number of staying
このように、本実施形態においては、同じ宛先へのメッセージは、所定数以上のメッセージがまとめて転送される。そのため、宛先キューが所在する連携先サーバ30への通信路をメッセージごとに確立する必要がなくなり、その分、サーバ10やネットワーク20に対する負荷が軽減されるとともに、実質的なメッセージの転送効率が向上する。
Thus, in the present embodiment, a predetermined number or more of messages to the same destination are transferred together. Therefore, it is not necessary to establish a communication path to the cooperation destination server 30 where the destination queue is located for each message, and the load on the server 10 and the
また、本実施形態によれば、図9に示したように、転送用キューに滞留しているメッセージは、キュー定義情報管理テーブル500の中の最大許容遅延時間503に記憶されている時間ごとに、その転送処理が実行される。そのため、転送されるメッセージがキュー13に滞留する時間は、最大でも最大許容遅延時間503に記憶されている時間になる。よって、メッセージが長時間に渡ってキューに滞留することを防止することができ、連携して動作する分散システムに不都合が生じないようにすることができる。
Further, according to the present embodiment, as shown in FIG. 9, messages staying in the transfer queue are displayed for each time stored in the maximum
なお、本実施形態においては、転送用キューは、メッセージの転送宛先ごとに作成され、優先度ごとに滞留メッセージ数をカウントするようにしているが、転送用キューを宛先と優先度ごとに区別して作成してもよい。また、本実施形態においては、優先度は複数個あるとしているが、優先度を付けないようにしてもよい。この場合は、本実施形態においては、図3のシステム共通定義142において、優先度の最大値=1とすればよい。
In this embodiment, a transfer queue is created for each message transfer destination, and the number of staying messages is counted for each priority. However, the transfer queue is distinguished for each destination and priority. You may create it. In this embodiment, there are a plurality of priorities. However, priorities may not be assigned. In this case, in the present embodiment, the maximum priority value may be set to 1 in the system
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 最大滞留メッセージ数
10
Claims (5)
前記コンピュータが、
転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、前記メッセージをその判定結果に基づいて分別して前記キューに登録するステップと、
前記キューに登録されて滞留しているメッセージの数を、前記判定結果に基づいて分別してカウントするステップと、
前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送するステップと
を実行することを特徴とするメッセージ転送制御方法。 Messages in message transfer performed by a computer having a storage device configured with a queue of messages to be transferred to another computer and an arithmetic processing unit for registering and reading the messages with respect to the queue. A transfer control method,
The computer is
Determining at least one of a destination and priority attached to a message to be transferred, separating the message based on the determination result, and registering the message in the queue;
Counting the number of messages registered and staying in the queue separately based on the determination result; and
When the number of staying messages counted separately exceeds a predetermined number, the messages sorted based on at least one of the destination and priority attached to the staying messages counted separately are transferred together. A message transfer control method comprising:
前記コンピュータが、さらに、
前記キューに登録されて滞留しているメッセージのうち、最初に登録されたメッセージが長くても所定の時間を超えて滞留したときには、前記滞留しているメッセージをまとめて転送するステップ
を実行することを特徴とするメッセージ転送制御方法。 The message transfer control method according to claim 1,
The computer further comprises:
Executing the step of transferring the staying messages together when the first registered message stays for a predetermined period of time even if it is long, among the staying messages registered in the queue A message transfer control method.
転送するメッセージに付されている宛先および優先度のうち少なくとも一方を判定し、前記メッセージをその判定結果に基づいて分別して前記キューに登録するメッセージ登録手段と、
前記キューに登録されて滞留しているメッセージの数を、前記判定結果に基づいて分別してカウントする滞留メッセージカウント手段と、
前記分別してカウントされた滞留メッセージの数が所定の数を超えたとき、その分別してカウントされた滞留メッセージに付されている宛先および優先度のうち少なくとも一方に基づき分別されたメッセージをまとめて転送する滞留メッセージ転送手段と
を備えたことを特徴とするメッセージキューイング装置。 A computer having a storage device in which a queue of messages to be transferred to another computer and an arithmetic processing unit for registering and reading the messages to the queue controls message transfer with the other computer. A message queuing device to perform,
Message registration means for determining at least one of a destination and a priority attached to a message to be transferred, sorting the message based on the determination result, and registering the message in the queue;
A staying message counting means for sorting and counting the number of staying messages registered in the queue based on the determination result;
When the number of staying messages counted separately exceeds a predetermined number, the messages sorted based on at least one of the destination and priority attached to the staying messages counted separately are transferred together. A message queuing device comprising:
前記キューに登録されて滞留しているメッセージのうち、最初に登録されたメッセージが長くても所定の時間を超えて滞留したときには、前記滞留しているメッセージをまとめて転送する第2の滞留メッセージ転送手段
を備えたことを特徴とするメッセージキューイング装置。 The message queuing device according to claim 4, further comprising:
Of the messages that are registered and staying in the queue, the second staying message that collectively transfers the staying messages when the first registered message stays longer than a predetermined time even if it is long A message queuing device comprising a transfer means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004207041A JP2006031238A (en) | 2004-07-14 | 2004-07-14 | Message transfer control method, message transfer control program and message queuing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004207041A JP2006031238A (en) | 2004-07-14 | 2004-07-14 | Message transfer control method, message transfer control program and message queuing device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006031238A true JP2006031238A (en) | 2006-02-02 |
Family
ID=35897532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004207041A Pending JP2006031238A (en) | 2004-07-14 | 2004-07-14 | Message transfer control method, message transfer control program and message queuing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006031238A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008047098A (en) * | 2006-07-19 | 2008-02-28 | Matsushita Electric Ind Co Ltd | Message communication device |
JP2008181404A (en) * | 2007-01-25 | 2008-08-07 | Matsushita Electric Works Ltd | Distributed information system and communication method |
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/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008047098A (en) * | 2006-07-19 | 2008-02-28 | Matsushita Electric Ind Co Ltd | Message communication device |
JP2008181404A (en) * | 2007-01-25 | 2008-08-07 | Matsushita Electric Works Ltd | Distributed information system and communication method |
JP4725525B2 (en) * | 2007-01-25 | 2011-07-13 | パナソニック電工株式会社 | Distributed information system and communication method |
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 (en) | Optimal server in common work queue environment | |
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 (en) | Data processor for performing operation load management regarding group of servers data processing method tefrefor and computer program product | |
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 (en) | High availability transport | |
US10362131B1 (en) | Fault tolerant message delivery | |
US9282151B2 (en) | Flow control in a distributed environment | |
CN116301568A (en) | Data access method, device and equipment | |
CN1829231B (en) | Method and apparatus for direct reception of inbound data | |
JP2006031238A (en) | Message transfer control method, message transfer control program and message queuing device | |
US7954112B2 (en) | Automatic recovery from failures of messages within a data interchange | |
JP5491972B2 (en) | Duplex server system, file operation method, and file operation program | |
JP2008124977A (en) | Method, apparatus, and program of message delivery | |
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 (en) | Packet transfer apparatus and information notice method at illegitimate access detection by the packet transfer apparatus | |
JP4109624B2 (en) | Processing schedule management method, server, processing schedule management program | |
US20090319593A1 (en) | Optimized Message Format for Synchronization Flows Between Transaction Processing Systems |