説明

メッセージキュー制御プログラム、メッセージキューイングシステム及びメッセージキューイングシステムの制御方法

【課題】キューを揮発性の記憶領域上に確保して処理速度を上げ、任意の時点で待ち時間なくキューを停止できるメッセージキューイングシステムを提供する。
【解決手段】メッセージキューイングシステムは、メッセージの受信に応じて形成するキューを揮発性記憶装置31、不揮発性記憶装置33のいずれかを用いて管理するか判定を行い、当該判定によって、キューの管理に用いる記憶装置が揮発性記憶装置31であると判定された場合は、受信メッセージを揮発性記憶装置31を用いて管理し、キューの停止指示に応じて、揮発性記憶装置31のキューイングされたメッセージを不揮発性記憶装置33に退避させてから停止し、当該判定によって、キューの管理に用いる記憶装置31が不揮発性記憶装置33であると判定された場合は、キューの停止指示に応じて、揮発性記憶装置31のキューイングされたメッセージを不揮発性記憶装置33に退避させる処理を経ずに停止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステム、及び、これを制御するメッセージキュー制御プログラム、制御方法に関する。
【背景技術】
【0002】
非同期通信により複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムでは、通信の信頼性を重視する場合には、キュー(メッセージを格納する
コンテナ)を不揮発性の記憶領域(例えばハードディスク上のファイルやデータベース)上
に確保してメッセージを磁気的に保存し、通信の速度を重視する場合にはキューを揮発性の記憶領域(例えばメモリ)上に確保してメッセージを電気的に保存するのが一般的である。ただし、前者の方式では信頼性は確保される反面、メッセージを送受信する毎にファイルに磁気的に読み書きしなければならず、処理速度が遅くなる。一方、後者の方式では、メモリ上での電気的な読み書きで足りるため処理速度は向上する反面、システムダウンが発生した場合にはメッセージが失われ、また、オペレータの操作でキューを停止する際にはメッセージの消失を避けるためにはキューに保存されているメッセージが全て送信されるまで待たなければならない。
【0003】
特許文献1には、通信障害やキューイングシステムのシステムダウンが発生した後にログファイルに基づいてメッセージを短時間で回復させるため、通常の運用時にはメッセージ内容のバックアップを取得せずに、メッセージのキューへの書き込み、取り出しをログファイルに記録し、取り出されたメッセージの位置を回復用ログ位置情報としてファイルに記録する方法が開示されている。メッセージの回復時には、回復用ログ位置情報以降のログ情報を、再作成した空のキューファイルに反映することでキューファイルを回復する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−256255号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の方法では、キューを不揮発性の記憶領域上に確保するよりは速度が向上するが、メッセージを送受信するたびにログファイルの記録が必要となり、キューを揮発性の記憶領域上に確保するよりは処理速度が落ちるという問題がある。
【0006】
本発明は、上記の問題点に鑑みてなされたものであり、その課題は、システムダウン等による不意の障害によるメッセージの消失については対策せずに、キューを揮発性の記憶領域上に確保することにより運用時の処理速度を上げ、かつ、任意の時点で待ち時間なくメッセージを消失させずにキューを停止させることができるメッセージキューイングシステム、及び、そのようなメッセージキューイングシステムを実現できるメッセージキュー制御プログラム及び制御方法を提供することにある。
【課題を解決するための手段】
【0007】
本発明に係る、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムを制御するメッセージキュー制御プログ
ラムは、『メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、当該判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから、前記メッセージキューイングシステムを停止し、当該によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに、前記メッセージキューイングシステムを停止する』処理をコンピュータに実行させる。
【0008】
また、本発明の他の態様の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムを制御するメッセージキュー制御プログラムは、受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶させる処理をコンピュータに実行させる。
【0009】
また、本発明の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムは、揮発性の記憶装置及び不揮発性の記憶装置を備え、メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、当該判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから、停止し、当該判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに、停止する。
【0010】
本発明の他の態様の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムは、揮発性の記憶装置及び不揮発性の記憶装置を備え、受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶させる。
【0011】
また、本発明の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムの制御方法は、メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、前記判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから停止するように、メッセージキューイングシステムを制御し、前記判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに停止するように、メッセージキューイングシステムを制御する。
【0012】
また、本発明の他の態様の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムの制御方法は、受信したメ
ッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶するように、メッセージキューイングシステムを制御する。
【発明の効果】
【0013】
以上のような本発明のプログラム、システム、方法によれば、メッセージキューをメモリ等の揮発性の記憶領域上に確保するため、運用時のメッセージ転送の処理速度を向上させることができ、しかも、キューの停止時にはメッセージを不揮発性の記憶領域に退避させるようにしたため、キューイングシステムを停止してもキューに保存されていたメッセージが消失するのを防ぐことができる。したがって、オペレータは、メッセージの内容を損なうことなく、メッセージキューイングシステムを任意のタイミングで即座に停止させることができ、保守作業や環境設定の変更などをタイムリーに行うことができる。これにより、例えばトラブル復旧時間を短縮することができる。
【0014】
また、オペレータが操作ミスにより不用意にメッセージキューイングシステムを停止した場合にも、メッセージの消失を防ぐことができる。そして、メッセージキューイングシステムが停止した後にキュー再起動の指示が入力された際に、不揮発性の記憶領域に待避させたメッセージを揮発性のキューに復旧させるようにすれば、キュー再起動後に業務を継続することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態にかかるメッセージキューイングシステムを利用したネットワークシステムの一例を示すブロック図である。
【図2】本発明の実施形態にかかるメッセージキュー制御プログラムの起動から停止までの処理内容を示すフローチャートである。
【図3】本発明の実施形態にかかるメッセージキュー制御プログラムの停止後の再起動の処理内容を示すフローチャートである。
【図4】本発明の実施形態にかかるネットワークシステムにおける指示及びメッセージの転送のタイミングを示すタイミングチャートである。
【発明を実施するための形態】
【0016】
以下、本発明にかかるメッセージキューイングシステム及びメッセージキュー制御プログラムの実施形態を図面に基づいて説明する。
【0017】
最初に、図1に基づいて本実施形態のキューイングシステムが適用されるネットワークシステムの概要を説明する。図1に示されるように、このネットワークシステム1は、メッセージ送信元アプリケーション11が実行される送信元コンピュータ10と、メッセージ送信先アプリケーション21が実行される送信先コンピュータ20と、これらのアプリケーション間のメッセージの非同期通信を制御するメッセージキューイングシステム30と、このメッセージキューイングシステム30に対して指示を与えるオペレータ用コンソール40とを備えている。
【0018】
メッセージキューイングシステム30には、揮発性の記憶領域であるメモリ31と、このシステムを作動させるメッセージキュー制御プログラム32と、不揮発性の記憶領域であるハードディスク33とを備えている。メモリ31上には、メッセージを格納するためのコンテナであるキュー31aが確保され、このキュー31a内にメッセージ送信元アプリケーション11より受信したメッセージが保存される。この例では、メッセージ1,メッセージ2、…、メッセージnが保存されている。また、ハードディスク33には、システムの停止時にキュー内のメッセージを待避させる待避ファイル33aが格納されている

【0019】
次に、図2に示すフローチャートにしたがって、メッセージキュー制御プログラム32の処理内容について説明する。
【0020】
オペレータ用コンソール40からキュー起動の指示が入力されると、メッセージキュー制御プログラム32が起動して非同期通信の処理を開始する。まず、メッセージキュー制御プログラム32は、所定の定義ファイルを読み込む(S001)。定義ファイルからは、非同期通信のメッセージキューが揮発性の記憶領域上で運用されるか、不揮発性の記憶領域上で運用されるかの種別が読み取られる。
【0021】
続いて、メッセージキュー制御プログラム32は、キューが揮発性の記憶領域上で運用されるか否か、定義ファイルの内容から判断する(S002)。キューが揮発性の記憶領域上で運用される場合には(S002: Yes)、揮発性の運用がなされる(S003)。すなわち、メッセー
ジキューイングシステム30のメモリ31上にキュー31aが確保される。そして、メッセージ送信元アプリケーション11からメッセージを受信すると、これをキュー31a内に保存し、メッセージ送信先アプリケーション21から要求があると、これを転送する(S004)。揮発性の運用では、メッセージをメモリ31に電気的に保存するため、処理速度を高めることができる。
【0022】
上記の送受信の処理をキューの停止の指示が入力されるまで繰り返し実行する(S005: No)。オペレータ用コンソール40からキュー停止の指示が入力されると(S005: Yes)、メ
ッセージキュー制御プログラム32は、キュー31aの情報をメッセージ退避元としてメッセージ内容に追加し(S006)、キュー内に保存されている未転送のメッセージと共に待避ファイル33aに待避させる(S007)。待避が完了すると、キュー内のメッセージを消去し(S008)、メッセージキューイングシステム30を停止させ(S009)、処理を終了する。このように、揮発性の運用の場合には、オペレータがキューの停止を指示すると、キューに保存されているメッセージは待避ファイルに待避されるため、これらのメッセージが送信先アプリケーション21に転送されるのを待たずに、即座にメッセージキューイングシステム30を停止させることができる。したがって、運用時の高速での処理と、停止時の待ち時間の短縮とを両立させることが可能となる。
【0023】
一方、キューが不揮発性の記憶領域上で運用される場合には(S002: No)、不揮発性の運用がなされる(S010)。すなわち、例えば、図1の構成ではメッセージキューイングシステム30のハードディスク33上にキューを確保する。そして、メッセージ送信元アプリケーション11からメッセージを受信すると、これをキュー内に保存し、メッセージ送信先アプリケーション21から要求があると、これを転送する(S011)。不揮発性の運用では、メッセージをハードディスクに対して読み書きするため、処理速度が遅くなるが、不意のシステムダウンの際にもメッセージの消失を防ぐことができる。
【0024】
上記の送受信の処理をキューの停止の指示が入力されるまで繰り返し実行する(S012: No)。オペレータ用コンソール40からキュー停止の指示が入力されると(S012: Yes)、メ
ッセージキュー制御プログラム32は、メッセージキューイングシステム30を停止させ(S009)、処理を終了する。このように、不揮発性の運用の場合には、メッセージは不揮発の記憶領域に記憶されているため、キューを停止する場合にも待避は不必要であり、そのままシステムを停止させることができる。
【0025】
オペレータ用コンソール40からキューの再起動の指示が入力されると、図3に示す復旧処理を実行してから図2の処理に戻る。図3の復旧処理では、メッセージキュー制御プログラム32は、待避ファイル33aから待避されたメッセージを取得し(S101)、メッセ
ージの内容から待避元のキューの情報を取得し(S102)、待避元のキューに対して取得したメッセージを送信し(S103)、処理を終了する。これにより、メッセージキュー制御プログラム32は、停止前と同一の状態で処理を続行することが可能となる。
【0026】
なお、上記の図2及び図3に示すフローチャートのうち、S002はメッセージキュー制御プログラム32がメッセージが保存されるキューが揮発性か不揮発性かを判定するステップに該当し、S004は送信元アプリケーションより受信したメッセージを順次揮発性のキューに保存するステップと揮発性のキューに保存されたメッセージを要求のあった送信先アプリケーションへ転送するステップとに該当し、S007はキュー停止の指示が入力された際に揮発性のキューに保存されているメッセージを不揮発性の記憶領域に待避させるステップに該当し、S009はメッセージの待避終了後にメッセージキューイングシステムを停止させるステップに該当し、S101〜S103は不揮発性の記憶領域に待避させたメッセージを揮発性のキューに復旧させるステップに該当する。
【0027】
次に、上記のメッセージキュー制御プログラム32の処理に沿って揮発性の運用時におけるメッセージと指示の流れを図4のタイミングチャートに基づいて説明する。ここでは、オペレータ用コンソール40、メッセージ送信元アプリケーション11、メッセージキュー31a、メッセージ送信先アプリケーション21、待避ファイル33aの間の指示、メッセージのやりとりについて説明する。なお、図4では、説明を簡単にするため、メッセージキュー制御プログラム32の作用もメッセージキュー31aの欄に記載している。オペレータ用コンソール40からの指令は実際にはメッセージキュー制御プログラム32に渡されるが、図4ではメッセージキュー31aに渡されるものとして記載している。
【0028】
オペレータ用コンソール40から揮発性の運用でのキュー起動の指示が入力されると(T01)、メッセージキュー制御プログラム32を介してメッセージキューに対する送受信が
可能となる。メッセージ送信先アプリケーション21は、メッセージキューにメッセージが入力されているか否かを確認し(T02)、入力されるまで待機している。メッセージ送信
元アプリケーション11からメッセージが送信されると(T03)、このメッセージはメッセ
ージキューに保存され(T04)、メッセージ送信先アプリケーション21の処理の度合いに
応じて転送される(T05)。メッセージ送信先アプリケーション21は、メッセージを受信
し(T06)、このメッセージに基づいて事務処理を実行する(T07)。
【0029】
T02〜T07の処理は、キューの停止の指示が入力されるまで繰り返し実行される。メッセージ送信元アプリケーション11は、メッセージを順次送信し、これがメッセージキュー31aに保存される。メッセージ送信先アプリケーション21は、自己の処理速度に応じて、1つのメッセージに基づく事務処理が終了すると、次のメッセージを受信する。このように、メッセージキューを介在させることにより、両アプリケーションを非同期通信により連携して作動させることができる。
【0030】
オペレータ用コンソール40からキュー停止の指示が入力されると(T08)、メッセージ
キュー31aに未処理のメッセージが残っている場合には、これらのメッセージを待避ファイル33aに待避させ(T09)、その後に未処理のメッセージを消去し(T10)、システムは停止する(T11)。待避ファイル33aには、メッセージが保存される(T12)。
【0031】
オペレータ用コンソール40からキューの再起動の指示が入力されると(T13)、待避フ
ァイル33aから待避されたメッセージを読み出してキューに取得し(T14, T15)、これをメッセージ送信先アプリケーション21に転送する(T16)。メッセージ送信先アプリケー
ション21は、メッセージを受信し(T17)、このメッセージに基づいて事務処理を実行す
る(T18)。メッセージ送信元アプリケーション11からメッセージが送信されると(T19)、このメッセージはメッセージキューに保存され(T20)、上記と同様順次メッセージ送信先
アプリケーション21に転送されて処理される。
【0032】
以上説明したように、実施形態のメッセージキューイングシステム30及びメッセージキュー制御プログラム32によれば、揮発性の運用時には、メモリ31上にキュー31aを確保しているため、処理速度を向上させることができ、しかも、キューの停止時にはメッセージを待避ファイル33aに待避させるため、未処理のメッセージを失わずに、システムを任意のタイミングで即座に停止させることができ、保守作業や環境設定の変更などをタイムリーに行うことができる。
【0033】
なお、実施形態では、キュー停止時に未処理のメッセージをメッセージキューイングシステム30内のハードディスク33に待避させているが、外部に接続されたコンピュータのディスクやメモリ上に確保されたキューに待避させてもよい。
【符号の説明】
【0034】
10 送信元コンピュータ
11 メッセージ送信元アプリケーション
20 送信先コンピュータ
21 メッセージ送信先アプリケーション
30 メッセージキューイングシステム
31 メモリ
31a キュー
32 メッセージキュー制御プログラム
33 ハードディスク
33a 待避ファイル
40 オペレータ用コンソール

【特許請求の範囲】
【請求項1】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムを制御するメッセージキュー制御プログラムであって、
メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、
前記判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから、前記メッセージキューイングシステムを停止し、
前記判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに、前記メッセージキューイングシステムを停止する
処理をコンピュータに実行させることを特徴とするメッセージキュー制御プログラム。
【請求項2】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムを制御するメッセージキュー制御プログラムであって、
受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶させる処理をコンピュータに実行させることを特徴とするメッセージキュー制御プログラム。
【請求項3】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムであって、
揮発性の記憶装置及び不揮発性の記憶装置を備え、
メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、
前記判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから、停止し、
前記判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに、停止する
ことを特徴とするメッセージキューイングシステム。
【請求項4】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムであって、
揮発性の記憶装置及び不揮発性の記憶装置を備え、
受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、退避元の情報を該不揮発性記憶装置に記憶させる
ことを特徴とするメッセージキューイングシステム。
【請求項5】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムの制御方法であって、
メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不
揮発性の記憶装置を用いて管理するか判定を行い、
前記判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから停止するように、前記メッセージキューイングシステムを制御し、
前記判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに停止するように、前記メッセージキューイングシステムを制御する
ことを特徴とするメッセージキューイングシステムの制御方法。
【請求項6】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムの制御方法であって、
受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶するように、前記メッセージキューイングシステムを制御する
ことを特徴とするメッセージキューイングシステムの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2010−211826(P2010−211826A)
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願番号】特願2010−121797(P2010−121797)
【出願日】平成22年5月27日(2010.5.27)
【分割の表示】特願2006−44980(P2006−44980)の分割
【原出願日】平成18年2月22日(2006.2.22)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】