(57)【要約】【課題】キューを揮発性の記憶領域上に確保して処理速度を上げ、任意の時点で待ち時間なくキューを停止できるメッセージキューイングシステムを提供すること。【解決手段】キュー起動の指示が入力されると、メッセージキュー制御プログラム３２が起動して非同期通信の処理を開始し、メモリ３１上にキュー３１ａを確保する。メッセージ送信元アプリケーション１１からメッセージを受信すると、これをキュー内に保存し、メッセージ送信先アプリケーション２１から要求があると、これを転送する。キュー停止の指示が入力されると、メッセージキュー制御プログラムは、キュー内に保存されている未転送のメッセージを待避ファイル３３ａに待避させる。キューの再起動の指示が入力されると、メッセージキュー制御プログラムは、待避ファイルから待避されたメッセージを取得し、待避元のキューに対して送信する。【選択図】図２
2007226385.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)、上記と同様順次メッセージ送信先アプリケーション２１に転送されて処理される。
【００３０】
以上説明したように、実施形態のメッセージキューイングシステム３０及びメッセージキュー制御プログラム３２によれば、揮発性の運用時には、メモリ３１上にキュー３１ａを確保しているため、処理速度を向上させることができ、しかも、キューの停止時にはメッセージを待避ファイル３３ａに待避させるため、未処理のメッセージを失わずに、システムを任意のタイミングで即座に停止させることができ、保守作業や環境設定の変更などをタイムリーに行うことができる。
【００３１】
なお、実施形態では、キュー停止時に未処理のメッセージをメッセージキューイングシステム３０内のハードディスク３３に待避させているが、外部に接続されたコンピュータのディスクやメモリ上に確保されたキューに待避させてもよい。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態にかかるメッセージキューイングシステムを利用したネットワークシステムの一例を示すブロック図である。
【図２】本発明の実施形態にかかるメッセージキュー制御プログラムの起動から停止までの処理内容を示すフローチャートである。
【図３】本発明の実施形態にかかるメッセージキュー制御プログラムの停止後の再起動の処理内容を示すフローチャートである。
【図４】本発明の実施形態にかかるネットワークシステムにおける指示及びメッセージの転送のタイミングを示すタイミングチャートである。
【符号の説明】
【００３３】
１０  送信元コンピュータ
１１  メッセージ送信元アプリケーション
２０  送信先コンピュータ
２１  メッセージ送信先アプリケーション
３０  メッセージキューイングシステム
３１  メモリ
３１ａ  キュー
３２  メッセージキュー制御プログラム
３３  ハードディスク
３３ａ  待避ファイル
４０  オペレータ用コンソール
【図１】
2007226385.tif 000003
【図２】
2007226385.tif 000004
【図３】
2007226385.tif 000005
【図４】
2007226385.tif 000006