(57)【要約】【課題】キューを揮発性の記憶領域上に確保して処理速度を上げ、任意の時点で待ち時間なくキューを停止できるメッセージキューイングシステムを提供する。【解決手段】メッセージキューイングシステムは、メッセージの受信に応じて形成するキューを揮発性記憶装置３１、不揮発性記憶装置３３のいずれかを用いて管理するか判定を行い、当該判定によって、キューの管理に用いる記憶装置が揮発性記憶装置３１であると判定された場合は、受信メッセージを揮発性記憶装置３１を用いて管理し、キューの停止指示に応じて、揮発性記憶装置３１のキューイングされたメッセージを不揮発性記憶装置３３に退避させてから停止し、当該判定によって、キューの管理に用いる記憶装置３１が不揮発性記憶装置３３であると判定された場合は、キューの停止指示に応じて、揮発性記憶装置３１のキューイングされたメッセージを不揮発性記憶装置３３に退避させる処理を経ずに停止する。【選択図】図２
2010211826.tif 000002
【特許請求の範囲】
【請求項１】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムを制御するメッセージキュー制御プログラムであって、
メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、
前記判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから、前記メッセージキューイングシステムを停止し、
前記判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに、前記メッセージキューイングシステムを停止する
処理をコンピュータに実行させることを特徴とするメッセージキュー制御プログラム。
【請求項２】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムを制御するメッセージキュー制御プログラムであって、
受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶させる処理をコンピュータに実行させることを特徴とするメッセージキュー制御プログラム。
【請求項３】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムであって、
揮発性の記憶装置及び不揮発性の記憶装置を備え、
メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、
前記判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから、停止し、
前記判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに、停止する
ことを特徴とするメッセージキューイングシステム。
【請求項４】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムであって、
揮発性の記憶装置及び不揮発性の記憶装置を備え、
受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、退避元の情報を該不揮発性記憶装置に記憶させる
ことを特徴とするメッセージキューイングシステム。
【請求項５】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムの制御方法であって、
メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不
揮発性の記憶装置を用いて管理するか判定を行い、
前記判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから停止するように、前記メッセージキューイングシステムを制御し、
前記判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに停止するように、前記メッセージキューイングシステムを制御する
ことを特徴とするメッセージキューイングシステムの制御方法。
【請求項６】
非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムの制御方法であって、
受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶するように、前記メッセージキューイングシステムを制御する
ことを特徴とするメッセージキューイングシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステム、及び、これを制御するメッセージキュー制御プログラム、制御方法に関する。
【背景技術】
【０００２】
非同期通信により複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムでは、通信の信頼性を重視する場合には、キュー(メッセージを格納する
コンテナ)を不揮発性の記憶領域(例えばハードディスク上のファイルやデータベース)上
に確保してメッセージを磁気的に保存し、通信の速度を重視する場合にはキューを揮発性の記憶領域(例えばメモリ)上に確保してメッセージを電気的に保存するのが一般的である。ただし、前者の方式では信頼性は確保される反面、メッセージを送受信する毎にファイルに磁気的に読み書きしなければならず、処理速度が遅くなる。一方、後者の方式では、メモリ上での電気的な読み書きで足りるため処理速度は向上する反面、システムダウンが発生した場合にはメッセージが失われ、また、オペレータの操作でキューを停止する際にはメッセージの消失を避けるためにはキューに保存されているメッセージが全て送信されるまで待たなければならない。
【０００３】
特許文献１には、通信障害やキューイングシステムのシステムダウンが発生した後にログファイルに基づいてメッセージを短時間で回復させるため、通常の運用時にはメッセージ内容のバックアップを取得せずに、メッセージのキューへの書き込み、取り出しをログファイルに記録し、取り出されたメッセージの位置を回復用ログ位置情報としてファイルに記録する方法が開示されている。メッセージの回復時には、回復用ログ位置情報以降のログ情報を、再作成した空のキューファイルに反映することでキューファイルを回復する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２５６２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の方法では、キューを不揮発性の記憶領域上に確保するよりは速度が向上するが、メッセージを送受信するたびにログファイルの記録が必要となり、キューを揮発性の記憶領域上に確保するよりは処理速度が落ちるという問題がある。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、その課題は、システムダウン等による不意の障害によるメッセージの消失については対策せずに、キューを揮発性の記憶領域上に確保することにより運用時の処理速度を上げ、かつ、任意の時点で待ち時間なくメッセージを消失させずにキューを停止させることができるメッセージキューイングシステム、及び、そのようなメッセージキューイングシステムを実現できるメッセージキュー制御プログラム及び制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムを制御するメッセージキュー制御プログ
ラムは、『メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、当該判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから、前記メッセージキューイングシステムを停止し、当該によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに、前記メッセージキューイングシステムを停止する』処理をコンピュータに実行させる。
【０００８】
また、本発明の他の態様の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムを制御するメッセージキュー制御プログラムは、受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶させる処理をコンピュータに実行させる。
【０００９】
また、本発明の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムは、揮発性の記憶装置及び不揮発性の記憶装置を備え、メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、当該判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから、停止し、当該判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに、停止する。
【００１０】
本発明の他の態様の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムは、揮発性の記憶装置及び不揮発性の記憶装置を備え、受信したメッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶させる。
【００１１】
また、本発明の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムの制御方法は、メッセージの受信に応じて形成するキューを揮発性の記憶装置を用いて管理するか、不揮発性の記憶装置を用いて管理するか判定を行い、前記判定によって、キューの管理に用いる記憶装置が揮発性の記憶装置であると判定された場合は、受信したメッセージを該揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させてから停止するように、メッセージキューイングシステムを制御し、前記判定によって、キューの管理に用いる記憶装置が不揮発性の記憶装置であると判定された場合は、前記キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に退避させる処理を経ずに停止するように、メッセージキューイングシステムを制御する。
【００１２】
また、本発明の他の態様の、非同期通信により連携して作動する複数のアプリケーション間でメッセージを転送するメッセージキューイングシステムの制御方法は、受信したメ
ッセージを揮発性の記憶装置を用いて管理し、キューの停止指示に応じて、該揮発性の記憶装置のキューイングされたメッセージを不揮発性の記憶装置に待避させ、該揮発性の記憶装置のメッセージの待避時に、待避元の情報を該不揮発性記憶装置に記憶するように、メッセージキューイングシステムを制御する。
【発明の効果】
【００１３】
以上のような本発明のプログラム、システム、方法によれば、メッセージキューをメモリ等の揮発性の記憶領域上に確保するため、運用時のメッセージ転送の処理速度を向上させることができ、しかも、キューの停止時にはメッセージを不揮発性の記憶領域に退避させるようにしたため、キューイングシステムを停止してもキューに保存されていたメッセージが消失するのを防ぐことができる。したがって、オペレータは、メッセージの内容を損なうことなく、メッセージキューイングシステムを任意のタイミングで即座に停止させることができ、保守作業や環境設定の変更などをタイムリーに行うことができる。これにより、例えばトラブル復旧時間を短縮することができる。
【００１４】
また、オペレータが操作ミスにより不用意にメッセージキューイングシステムを停止した場合にも、メッセージの消失を防ぐことができる。そして、メッセージキューイングシステムが停止した後にキュー再起動の指示が入力された際に、不揮発性の記憶領域に待避させたメッセージを揮発性のキューに復旧させるようにすれば、キュー再起動後に業務を継続することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態にかかるメッセージキューイングシステムを利用したネットワークシステムの一例を示すブロック図である。
【図２】本発明の実施形態にかかるメッセージキュー制御プログラムの起動から停止までの処理内容を示すフローチャートである。
【図３】本発明の実施形態にかかるメッセージキュー制御プログラムの停止後の再起動の処理内容を示すフローチャートである。
【図４】本発明の実施形態にかかるネットワークシステムにおける指示及びメッセージの転送のタイミングを示すタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明にかかるメッセージキューイングシステム及びメッセージキュー制御プログラムの実施形態を図面に基づいて説明する。
【００１７】
最初に、図１に基づいて本実施形態のキューイングシステムが適用されるネットワークシステムの概要を説明する。図１に示されるように、このネットワークシステム１は、メッセージ送信元アプリケーション１１が実行される送信元コンピュータ１０と、メッセージ送信先アプリケーション２１が実行される送信先コンピュータ２０と、これらのアプリケーション間のメッセージの非同期通信を制御するメッセージキューイングシステム３０と、このメッセージキューイングシステム３０に対して指示を与えるオペレータ用コンソール４０とを備えている。
【００１８】
メッセージキューイングシステム３０には、揮発性の記憶領域であるメモリ３１と、このシステムを作動させるメッセージキュー制御プログラム３２と、不揮発性の記憶領域であるハードディスク３３とを備えている。メモリ３１上には、メッセージを格納するためのコンテナであるキュー３１ａが確保され、このキュー３１ａ内にメッセージ送信元アプリケーション１１より受信したメッセージが保存される。この例では、メッセージ１，メッセージ２、…、メッセージｎが保存されている。また、ハードディスク３３には、システムの停止時にキュー内のメッセージを待避させる待避ファイル３３ａが格納されている
。
【００１９】
次に、図２に示すフローチャートにしたがって、メッセージキュー制御プログラム３２の処理内容について説明する。
【００２０】
オペレータ用コンソール４０からキュー起動の指示が入力されると、メッセージキュー制御プログラム３２が起動して非同期通信の処理を開始する。まず、メッセージキュー制御プログラム３２は、所定の定義ファイルを読み込む(S001)。定義ファイルからは、非同期通信のメッセージキューが揮発性の記憶領域上で運用されるか、不揮発性の記憶領域上で運用されるかの種別が読み取られる。
【００２１】
続いて、メッセージキュー制御プログラム３２は、キューが揮発性の記憶領域上で運用されるか否か、定義ファイルの内容から判断する(S002)。キューが揮発性の記憶領域上で運用される場合には(S002: Yes)、揮発性の運用がなされる(S003)。すなわち、メッセー
ジキューイングシステム３０のメモリ３１上にキュー３１ａが確保される。そして、メッセージ送信元アプリケーション１１からメッセージを受信すると、これをキュー３１ａ内に保存し、メッセージ送信先アプリケーション２１から要求があると、これを転送する(S004)。揮発性の運用では、メッセージをメモリ３１に電気的に保存するため、処理速度を高めることができる。
【００２２】
上記の送受信の処理をキューの停止の指示が入力されるまで繰り返し実行する(S005: No)。オペレータ用コンソール４０からキュー停止の指示が入力されると(S005: Yes)、メ
ッセージキュー制御プログラム３２は、キュー３１ａの情報をメッセージ退避元としてメッセージ内容に追加し(S006)、キュー内に保存されている未転送のメッセージと共に待避ファイル３３ａに待避させる(S007)。待避が完了すると、キュー内のメッセージを消去し(S008)、メッセージキューイングシステム３０を停止させ(S009)、処理を終了する。このように、揮発性の運用の場合には、オペレータがキューの停止を指示すると、キューに保存されているメッセージは待避ファイルに待避されるため、これらのメッセージが送信先アプリケーション２１に転送されるのを待たずに、即座にメッセージキューイングシステム３０を停止させることができる。したがって、運用時の高速での処理と、停止時の待ち時間の短縮とを両立させることが可能となる。
【００２３】
一方、キューが不揮発性の記憶領域上で運用される場合には(S002: No)、不揮発性の運用がなされる(S010)。すなわち、例えば、図１の構成ではメッセージキューイングシステム３０のハードディスク３３上にキューを確保する。そして、メッセージ送信元アプリケーション１１からメッセージを受信すると、これをキュー内に保存し、メッセージ送信先アプリケーション２１から要求があると、これを転送する(S011)。不揮発性の運用では、メッセージをハードディスクに対して読み書きするため、処理速度が遅くなるが、不意のシステムダウンの際にもメッセージの消失を防ぐことができる。
【００２４】
上記の送受信の処理をキューの停止の指示が入力されるまで繰り返し実行する(S012: No)。オペレータ用コンソール４０からキュー停止の指示が入力されると(S012: Yes)、メ
ッセージキュー制御プログラム３２は、メッセージキューイングシステム３０を停止させ(S009)、処理を終了する。このように、不揮発性の運用の場合には、メッセージは不揮発の記憶領域に記憶されているため、キューを停止する場合にも待避は不必要であり、そのままシステムを停止させることができる。
【００２５】
オペレータ用コンソール４０からキューの再起動の指示が入力されると、図３に示す復旧処理を実行してから図２の処理に戻る。図３の復旧処理では、メッセージキュー制御プログラム３２は、待避ファイル３３ａから待避されたメッセージを取得し(S101)、メッセ
ージの内容から待避元のキューの情報を取得し(S102)、待避元のキューに対して取得したメッセージを送信し(S103)、処理を終了する。これにより、メッセージキュー制御プログラム３２は、停止前と同一の状態で処理を続行することが可能となる。
【００２６】
なお、上記の図２及び図３に示すフローチャートのうち、S002はメッセージキュー制御プログラム３２がメッセージが保存されるキューが揮発性か不揮発性かを判定するステップに該当し、S004は送信元アプリケーションより受信したメッセージを順次揮発性のキューに保存するステップと揮発性のキューに保存されたメッセージを要求のあった送信先アプリケーションへ転送するステップとに該当し、S007はキュー停止の指示が入力された際に揮発性のキューに保存されているメッセージを不揮発性の記憶領域に待避させるステップに該当し、S009はメッセージの待避終了後にメッセージキューイングシステムを停止させるステップに該当し、S101〜S103は不揮発性の記憶領域に待避させたメッセージを揮発性のキューに復旧させるステップに該当する。
【００２７】
次に、上記のメッセージキュー制御プログラム３２の処理に沿って揮発性の運用時におけるメッセージと指示の流れを図４のタイミングチャートに基づいて説明する。ここでは、オペレータ用コンソール４０、メッセージ送信元アプリケーション１１、メッセージキュー３１ａ、メッセージ送信先アプリケーション２１、待避ファイル３３ａの間の指示、メッセージのやりとりについて説明する。なお、図４では、説明を簡単にするため、メッセージキュー制御プログラム３２の作用もメッセージキュー３１ａの欄に記載している。オペレータ用コンソール４０からの指令は実際にはメッセージキュー制御プログラム３２に渡されるが、図４ではメッセージキュー３１ａに渡されるものとして記載している。
【００２８】
オペレータ用コンソール４０から揮発性の運用でのキュー起動の指示が入力されると(T01)、メッセージキュー制御プログラム３２を介してメッセージキューに対する送受信が
可能となる。メッセージ送信先アプリケーション２１は、メッセージキューにメッセージが入力されているか否かを確認し(T02)、入力されるまで待機している。メッセージ送信
元アプリケーション１１からメッセージが送信されると(T03)、このメッセージはメッセ
ージキューに保存され(T04)、メッセージ送信先アプリケーション２１の処理の度合いに
応じて転送される(T05)。メッセージ送信先アプリケーション２１は、メッセージを受信
し(T06)、このメッセージに基づいて事務処理を実行する(T07)。
【００２９】
T02〜T07の処理は、キューの停止の指示が入力されるまで繰り返し実行される。メッセージ送信元アプリケーション１１は、メッセージを順次送信し、これがメッセージキュー３１ａに保存される。メッセージ送信先アプリケーション２１は、自己の処理速度に応じて、１つのメッセージに基づく事務処理が終了すると、次のメッセージを受信する。このように、メッセージキューを介在させることにより、両アプリケーションを非同期通信により連携して作動させることができる。
【００３０】
オペレータ用コンソール４０からキュー停止の指示が入力されると(T08)、メッセージ
キュー３１ａに未処理のメッセージが残っている場合には、これらのメッセージを待避ファイル３３ａに待避させ(T09)、その後に未処理のメッセージを消去し(T10)、システムは停止する(T11)。待避ファイル３３ａには、メッセージが保存される(T12)。
【００３１】
オペレータ用コンソール４０からキューの再起動の指示が入力されると(T13)、待避フ
ァイル３３ａから待避されたメッセージを読み出してキューに取得し(T14, T15)、これをメッセージ送信先アプリケーション２１に転送する(T16)。メッセージ送信先アプリケー
ション２１は、メッセージを受信し(T17)、このメッセージに基づいて事務処理を実行す
る(T18)。メッセージ送信元アプリケーション１１からメッセージが送信されると(T19)、このメッセージはメッセージキューに保存され(T20)、上記と同様順次メッセージ送信先
アプリケーション２１に転送されて処理される。
【００３２】
以上説明したように、実施形態のメッセージキューイングシステム３０及びメッセージキュー制御プログラム３２によれば、揮発性の運用時には、メモリ３１上にキュー３１ａを確保しているため、処理速度を向上させることができ、しかも、キューの停止時にはメッセージを待避ファイル３３ａに待避させるため、未処理のメッセージを失わずに、システムを任意のタイミングで即座に停止させることができ、保守作業や環境設定の変更などをタイムリーに行うことができる。
【００３３】
なお、実施形態では、キュー停止時に未処理のメッセージをメッセージキューイングシステム３０内のハードディスク３３に待避させているが、外部に接続されたコンピュータのディスクやメモリ上に確保されたキューに待避させてもよい。
【符号の説明】
【００３４】
１０ 送信元コンピュータ
１１ メッセージ送信元アプリケーション
２０ 送信先コンピュータ
２１ メッセージ送信先アプリケーション
３０ メッセージキューイングシステム
３１ メモリ
３１ａ キュー
３２ メッセージキュー制御プログラム
３３ ハードディスク
３３ａ 待避ファイル
４０ オペレータ用コンソール
【図１】
2010211826.tif 000003
【図２】
2010211826.tif 000004
【図３】
2010211826.tif 000005
【図４】
2010211826.tif 000006