(57)【要約】      （修正有）【課題】  応答側プログラム異常時の障害を早期に検知し、応答が返却されない要求の発生を抑制することが可能な技術を提供する。【解決手段】  要求メッセージとその応答メッセージを複数の情報処理装置間で送受信してメッセージ通信を行う通信方法において、要求メッセージに対して応答待ちとなっているメッセージ数を示す応答待ちメッセージ数と最後に要求メッセージを送信した時刻を示す最終送信時刻を記憶装置の応答管理テーブルに格納するステップと、前記記憶装置内の応答管理テーブルの内容を読み出して監視し、その応答管理テーブルの内容が、最終送信時刻から所定の応答監視時間を経過しても応答メッセージを受信していないことを示している場合に、メッセージ登録要求を禁止することを示す情報を記憶装置内に設定することにより、該当する送信側通信路への要求メッセージの送信を抑止するステップとを有するものである。【選択図】図２
2007316719.tif 000002
【特許請求の範囲】
【請求項１】
要求メッセージとその要求メッセージに対する応答メッセージを複数の情報処理装置間で送受信してメッセージ通信を行うメッセージ通信装置におけるメッセージ通信方法において、
要求メッセージを送信する送信側通信路と応答メッセージを受信する受信側通信路を対応づけ、要求メッセージに対して応答待ちとなっているメッセージ数を示す応答待ちメッセージ数と最後に要求メッセージを送信した時刻を示す最終送信時刻を記憶装置の応答管理テーブルに格納し、
前記記憶装置内の応答管理テーブルの内容を読み出して監視し、その応答管理テーブルの内容が、最終送信時刻から所定の応答監視時間を経過しても応答メッセージを受信していないことを示している場合に、メッセージ登録要求を禁止することを示す情報を記憶装置内に設定することにより、該当する送信側通信路への要求メッセージの送信を抑止することを特徴とするメッセージ通信方法。
【請求項２】
要求メッセージを送信する非同期型通信の送信側通信路と応答メッセージを受信する非同期型通信の受信側通信路を対応づけて前記応答待ちメッセージ数と最終送信時刻を前記記憶装置の応答管理テーブルに格納し、その応答管理テーブルの内容が、最終送信時刻から所定の応答監視時間を経過しても応答メッセージを受信していないことを示している場合に、メッセージ登録要求を禁止することを示す情報を記憶装置内に設定することにより、該当する非同期型通信の送信側通信路への要求メッセージの送信を抑止することを特徴とする請求項１に記載されたメッセージ通信方法。
【請求項３】
前記応答メッセージの受信時に前記記憶装置の応答管理テーブルの応答カウンタの値に１を加算して格納し、前記最終送信時刻から所定の応答監視時間経過後に前記応答管理テーブルの応答カウンタの値が０である場合に、メッセージ登録要求を禁止することを示す情報を記憶装置内に設定し、前記応答管理テーブルの応答カウンタの値が０でない場合にその応答カウンタの値を０にクリアすることを特徴とする請求項１または請求項２のいずれかに記載されたメッセージ通信方法。
【請求項４】
要求メッセージとその要求メッセージに対する応答メッセージを複数の情報処理装置間で送受信してメッセージ通信を行うメッセージ通信装置において、
要求メッセージを送信する送信側通信路と応答メッセージを受信する受信側通信路を対応づけ、要求メッセージに対して応答待ちとなっているメッセージ数を示す応答待ちメッセージ数と最後に要求メッセージを送信した時刻を示す最終送信時刻を記憶装置の応答管理テーブルに格納する応答状態設定部と、
前記記憶装置内の応答管理テーブルの内容を読み出して監視し、その応答管理テーブルの内容が、最終送信時刻から所定の応答監視時間を経過しても応答メッセージを受信していないことを示している場合に、メッセージ登録要求を禁止することを示す情報を記憶装置内に設定することにより、該当する送信側通信路への要求メッセージの送信を抑止する応答監視制御部とを備えることを特徴とするメッセージ通信装置。
【請求項５】
要求メッセージとその要求メッセージに対する応答メッセージを複数の情報処理装置間で送受信してメッセージ通信を行うメッセージ通信方法をコンピュータに実行させる為のプログラムにおいて、
要求メッセージを送信する送信側通信路と応答メッセージを受信する受信側通信路を対応づけ、要求メッセージに対して応答待ちとなっているメッセージ数を示す応答待ちメッセージ数と最後に要求メッセージを送信した時刻を示す最終送信時刻を記憶装置の応答管理テーブルに格納するステップと、
前記記憶装置内の応答管理テーブルの内容を読み出して監視し、その応答管理テーブルの内容が、最終送信時刻から所定の応答監視時間を経過しても応答メッセージを受信していないことを示している場合に、メッセージ登録要求を禁止することを示す情報を記憶装置内に設定することにより、該当する送信側通信路への要求メッセージの送信を抑止するステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクライアント／サーバ型の分散処理システムで非同期型通信を含む通信処理によりクライアントからの同期型呼出しを実現するメッセージ通信技術に関するものである。
【背景技術】
【０００２】
プログラム間の通信形態は、同期型通信と非同期型通信の２種類に分類できる。
【０００３】
メッセージキューイングの様な非同期型通信を使用すると、送信側と受信側の双方のノードが稼働していなくても、自ノードが稼働していれば、キューを介することによって相手側の稼働状態に依存することなく送信処理または受信処理を行うことができる。送信側プログラムは宛先キューを指定してメッセージ登録命令を発行することで、メッセージが送信ノードの転送用キューに格納される。メッセージキューイングの転送機能は、転送用キューにつながれたメッセージを先入れ先出し方式（ＦＩＦＯ）で取出し、所定の宛先ノードに転送し宛先のキューへ格納する。受信側プログラムはメッセージ取出し命令を発行することで宛先キューに格納されたメッセージを順番に取り出す。送信側プログラムはメッセージを転送用キューに登録した後は、メッセージが宛先キューに転送されるのを待つ必要はなく、他の処理を実行することができる。転送用キューに格納されたメッセージを宛先キューに転送するのはメッセージキューイングの役割であり、この転送は送信側プログラムのメッセージ登録とは非同期に行なわれる。メッセージキューイングは、通信障害等が発生し転送に失敗してもメッセージの再送信を自動的に行う。そのため、送信側プログラムは通信失敗時の処理を考慮する必要がない。メッセージキューイングは拡張性と柔軟性に優れた通信方式であると言える。
【０００４】
一方、リモートプロシージャコールの様な同期型通信では、送信側プログラムは要求メッセージを送信すると、受信側プログラムがその要求メッセージを受信して応答メッセージを送信側に返信するまで待ち続ける。キューを介さないため、通信の遅延が少なく応答性能の良い通信方式であると言える。通信障害を検知すると、即座に送信側プログラムは異常を検知することができる。また、同期型通信では要求メッセージを送信してから応答メッセージを受信するまで時間監視を行うことで、受信側プログラムでの異常発生等の通信障害以外の異常を検知することができる。
【０００５】
同期型通信、非同期型通信のどちらの通信方式を使用するかは、システムの要件に応じて選択される。一般に、要求を受付け、その処理結果を即座に要求元へ返却する必要がある場合は、同期型通信を使用する。また、データを一方向に送信し、プログラムの処理結果を次のプログラムに順次転送して処理していく場合は、非同期型通信を使用する。
【０００６】
近年、様々な業務を柔軟に連携する必要性が高まり、非同期型通信が広く使用される様になってきている。従来、同期型通信が使用されていたクライアント／サーバ型のシステムでも非同期型通信を組み合わせて同期型通信を実現するケースがでてきている。クライアント側プログラムからの要求送信と、サーバ側プログラムからクライアント側プログラムへの結果送信をそれぞれ非同期型通信で行い、クライアント側プログラムはメッセージ登録命令を発行して要求を送信した後、処理結果をメッセージ取出し命令で待つ方式であり、上位のプログラムにより同期処理を行う。
【０００７】
非同期型通信を組み合わせてクライアント側とサーバ側が同期をとるメリットとして、要求を送信するプログラムと処理結果を受信するプログラムを別プログラムとする構成が可能になることがあげられる。同期型通信では、クライアント側プログラムは結果が返ってくるまで待つ必要があり、その間、メモリ等のコンピュータ資源を占有することとなり、同時に多量の要求を送信する場合はその数分のプログラムがコンピュータ資源を占有することとなる。非同期型通信を組み合わせて、クライアント側プログラムを要求送信プログラムと応答受信プログラムに分ければ、複数の要求を同一プログラムが送信しその複数の結果を別のプログラムが処理する構成をとることができ、コンピュータ資源を効率的に利用することができる。また、システム連携の手段として非同期型通信が広まり、異なるベンダの製品をつなげる手段として非同期型通信を使用する場合もある。この時、同期型通信を実現したい場合は、非同期型通信を組み合わせて送信側と受信側が同期をとる方式を使用することとなる。従来の技術としては、特許文献１で記されている様なクライアント／サーバ型での方式がある。
【０００８】
非同期型通信を組み合わせてクライアント側とサーバ側が同期をとる方式では、クライアント側の送信プログラムはサーバ側プログラムの異常を検知できないという問題がある。クライアント側送信プログラムが、障害を検知せずにメッセージを転送用キューに登録し続けると処理されることのない電文が多量に発生することになり、多量の異常ケースが連続発生する問題がある。この異常ケースの例としては、銀行業務の入出金処理が完了せず、多くの端末で操作が不能となる等の例が挙げられる。
【０００９】
【特許文献１】特開平９−１７９８０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来技術では、サーバ側プログラム異常時の障害をクライアント側送信プログラムは検知することができない。そのため、クライアント側送信プログラムは要求メッセージを登録し続けることになり、処理されない要求メッセージが多量に発生する可能性がある。
【００１１】
本発明の目的は上記問題を解決し、応答側プログラム異常時の障害を早期に検知し、応答が返却されない要求の発生を抑制することが可能な技術を提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、要求メッセージとその要求メッセージに対する応答メッセージを複数の情報処理装置間で送受信してメッセージ通信を行うメッセージ通信装置において、要求メッセージの送信から所定時間経過後に応答メッセージを受信しない場合に要求メッセージの送信を抑止するものである。
【００１３】
前記課題を解決するため、本発明では、クライアントからサーバに要求メッセージを送信する非同期型通信の送信側通信路とクライアントがサーバから応答メッセージを受信する非同期型通信の受信側通信路を対応づけ、要求メッセージを送信しその応答メッセージを待っている応答待ちメッセージ数と最後に要求メッセージを送信した最終送信時刻を記録する応答管理テーブルを有し、応答管理テーブルの状態を更新する応答状態設定部と、応答管理テーブルの状態を監視し設定された応答監視時間を経過しても応答メッセージを受信しなかった場合に該当するあて先への要求メッセージ送信を抑止する応答監視制御部を設けることを特徴とする。
【００１４】
応答状態設定部は、転送キューに登録された要求メッセージを送信する際に応答管理テーブルの応答待ちメッセージ数を加算し、応答メッセージ受信時に応答待ちメッセージ数を減算する。応答監視制御部は、応答待ちメッセージ数が０から１に加算された時点から応答メッセージの監視を開始し、指定時間内に応答メッセージを受信しない場合には転送キューのメッセージ登録属性を禁止に変更することで要求メッセージの送信を抑止する。
【００１５】
応答監視制御部は、応答メッセージの監視を開始し指定時間内に応答メッセージを受信した場合には、応答カウンタをクリアした後、応答管理テーブルの最終送信時刻から指定時間内に応答メッセージを受信するかを再び監視する。一定時間内に応答メッセージを受信するか監視することでサーバ側プログラムの異常を検知することができる。
【００１６】
前記の様に本発明では、クライアント／サーバ型の形態において、非同期型通信を組み合わせて同期型通信を実現する際に、サーバ側プログラム異常時の障害を早期に検知することで、応答の返却されない要求メッセージの発生を抑制することができる。ここで、前記同期型通信の実現は上位プログラムにより行われるものとするが、本発明では必ずしも同期型通信を実現していなくても良いものとする。
【発明の効果】
【００１７】
本発明によれば、応答側プログラム異常時の障害を早期に検知し、応答が返却されない要求の発生を抑制することが可能である。
【発明を実施するための最良の形態】
【００１８】
以下に要求メッセージの送信から所定時間経過後に応答メッセージを受信しない場合に要求メッセージの送信を抑止する一実施形態のメッセージ通信装置について説明する。
【００１９】
図１は本実施形態の分散処理システムの構成例を示す図である。図１に示す様に本実施形態の分散処理システムは、業務要求を発行する複数のクライアント（業務要求元）１０、クライアント（業務要求元）１０からの要求を受付け中央処理装置ＣＰＵ１８とメモリ１９から構成されるオンライントランザクション処理システム（制御ノード）１１、実際の業務処理を行なうオンライントランザクション処理システム（業務ノード）１７で構成され、全ての構成要素はネットワーク或いはＬＡＮを経由して接続される。
【００２０】
オンライントランザクション処理システム（制御ノード）１１は、クライアント（業務要求元）１０からの要求を受け付け、複数のオンライントランザクション処理システム（業務ノード）１７に要求を振り分けるノードであり、オンライントランザクション処理システム（業務ノード）１７と非同期に通信する通信プログラムであるメッセージキューイング１２、オンライントランザクション処理システム（業務ノード）１７にクライアント（業務要求元）１０からの要求メッセージを送信する送信プログラム１１１とオンライントランザクション処理システム（業務ノード）１７からの応答メッセージを受信する受信プログラム１１２から構成される。
【００２１】
メッセージキューイング１２は、送信メッセージを一時的に格納する転送キュー１５と受信メッセージを一時的に格納する受信キュー１６を制御するキュー制御部１３と他ノードとのメッセージ送受信を制御する通信制御部１４から構成される。
【００２２】
オンライントランザクション処理システム（業務ノード）１７は、実際の業務処理を行なうノードであり、オンライントランザクション処理システム（制御ノード）１１と非同期に通信する通信プログラムであるメッセージキューイング１７１及び業務処理１７２で構成される。
【００２３】
図２は本実施形態のサーバ側プログラムの異常を検知し、それ以降の要求メッセージ発生を抑制する為の構成要素を示す図である。図２では、オンライントランザクション処理システム（制御ノード）１１がクライアント側であり、オンライントランザクション処理システム（業務ノード）１７を複数まとめた業務ノード群１７０がサーバ側である。
【００２４】
オンライントランザクション処理システム（制御ノード）１１は、クライアント（業務要求元）１０からの要求メッセージを複数のオンライントランザクション処理システム（業務ノード）１７に振り分ける。
【００２５】
キュー制御部１３は、宛先となるオンライントランザクション処理システム（業務ノード）１７毎に転送キュー１５１、転送キュー１５２を制御している。通信制御部１４は、通信相手となる各オンライントランザクション処理システム（業務ノード）１７毎の送信制御部１４１、送信制御部１４２、受信制御部１４３、受信制御部１４４から構成される。
【００２６】
送信プログラム１１１から送信された要求メッセージは転送キュー１５１に格納され、送信制御部１４１がその要求メッセージを取り出し業務ノード群１７０に属するオンライントランザクション処理システム（業務ノード）１７に送信する。業務処理の応答メッセージが折り返され（１７２１）、受信制御部１４３が受信した応答メッセージを受信キュー１６に格納し、受信プログラム１１２は受信キュー１６から応答メッセージを取り出す。
【００２７】
別のオンライントランザクション処理システム（業務ノード）１７に送信する場合は、送信プログラム１１１から送信された要求メッセージは転送キュー１５２に格納され、送信制御部１４２がその要求メッセージを取り出し業務ノード群１７０に属するオンライントランザクション処理システム（業務ノード）１７に送信する。業務処理の応答メッセージが折り返され（１７２２）、受信制御部１４４が受信した応答メッセージを受信キュー１６に格納し、受信プログラム１１２は受信キュー１６から応答メッセージを取り出す。
【００２８】
応答管理テーブル２２は、送信側通信路と受信側通信路を対応づける通信路定義部２２１と応答待ちメッセージ数３５と最後に要求メッセージを送信した最終送信時刻３６を記録する応答状態部２２２から構成される。応答状態設定部２０は応答管理テーブル２２の状態を更新する。応答監視制御部２１は、応答管理テーブルの状態を監視し、設定された応答監視時間３４を経過しても応答メッセージを受信しなかった場合に該当するあて先への要求メッセージ送信を抑止する。
【００２９】
本実施形態において、前記制御部や設定部としてコンピュータを機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００３０】
図３は本実施形態の応答管理テーブル２２の構成を示す図である。図３に示す様に応答管理テーブル２２は通信路定義部２２１と応答状態部２２２から構成される。
【００３１】
通信路定義部２２１は、要求メッセージの送信通信路と応答メッセージ受信通信路を対応づけるものであり、要求メッセージを一時的に格納する転送キュー３１、要求メッセージを送信する送信側通信路３２、応答メッセージを受信する受信側通信路３３、要求メッセージを送信してから応答メッセージを受信するまでの応答監視時間３４を表すエリアから構成され、サーバ側ノード数分のレコードが存在する。
【００３２】
応答状態部２２２は、応答メッセージの受信状態を示すものであり、要求メッセージを送信しその応答メッセージを待っているメッセージ数を表す応答待ちメッセージ数３５、最後に要求メッセージを送信した時刻である最終送信時刻３６、応答監視を開始してから受信した応答メッセージ数を表す応答カウンタ３７から構成される。
【００３３】
通信路定義部２２１の各レコード３０１、３０２、３０３は応答状態部２２２で示される各レコード３０４、３０５、３０６と同じＮｏ３０を有するレコード同士が対応つくものとする。
【００３４】
図４は本実施形態の応答状態設定処理４１の処理手順を示すフローチャートである。図４を参照して応答状態設定部２０の応答状態設定処理４１の流れを説明する。
【００３５】
応答状態設定部２０は通信制御部１４が転送キュー１５から要求メッセージを取り出す際に送信メッセージ検知（ステップ４２）として以下の処理を行なう。
【００３６】
まず応答状態設定部２０は、通信制御部１４が送信路として使用する送信側通信路３２の名称に一致する通信路定義部２２１のレコードを検索する。そして、その検索したレコードのＮｏ３０に対応する応答状態部２２２のレコードの応答待ちメッセージ数３５が「０」で、かつ、応答カウンタ３７が「０」であるかどうか判定する（ステップ４３）。判定が真であれば、応答監視制御部２１へ応答監視指示を通知する（ステップ４４）。その後、応答待ちメッセージ数３５に「１」を加算し（ステップ４５）、最終送信時刻３６に現在時刻を設定する（ステップ４６）。ここで、応答待ちメッセージ数３５が「０」である場合は送信メッセージを検知していないということである。
【００３７】
また応答状態設定部２０は、通信制御部１４が応答メッセージを受信して受信キュー１６に格納する際に受信メッセージ検知（ステップ４７）として以下の処理を行なう。
【００３８】
すなわち応答状態設定部２０は、通信制御部１４が受信路として使用する受信側通信路３３の名称に一致する通信路定義部２２１のレコードを検索し、その検索したレコードのＮｏ３０に対応する応答状態部２２２のレコードの応答待ちメッセージ数３５から「１」を減算し（ステップ４８）、応答カウンタ３７に「１」を加算する（ステップ４９）。ここで、応答カウンタ３７が「０」である場合は受信メッセージを検知していないということである。
【００３９】
図５は本実施形態の応答監視制御処理５０の処理手順を示すフローチャートである。図５を参照して応答監視制御部２１の応答監視制御処理５０の流れを説明する。
【００４０】
図４のステップ４４で応答状態設定部２０から応答監視制御部２１へ応答監視指示５１１を通知すると、これを受け、応答監視制御部２１が応答監視処理を開始する（ステップ５１）。
【００４１】
まず応答監視制御部２１は、応答監視指示５１１で通知された送信側通信路３２の名称に一致する通信路定義部２２１のレコードを検索する。そして、その検索したレコードのＮｏ３０に対応する応答状態部２２２の最終送信時刻３６に通信路定義部２２１の応答監視時間３４を加えた時刻をチェック時刻として設定しておき（ステップ５２）、チェック時刻になるまで待つ（ステップ５３）。
【００４２】
チェック時刻になった後に、前記検索した応答状態部２２２のレコードを参照し、応答カウンタ３７が「０」であるかどうかをチェックする（ステップ５４）。応答カウンタ３７が「０」である場合は受信メッセージを検知していないということであり、応答監視制御部２１は転送キューのメッセージ登録属性を禁止に変更することでキュー制御部１３に対して転送キューへのメッセージ登録を禁止し（ステップ５７）、転送キューに滞留しているメッセージを別の転送キューに移替える操作を行なう（ステップ５８）。以降、この送信通信路には要求メッセージが送信されることはなくなり、応答監視処理を終了する（ステップ５９）。
【００４３】
また、チェック時刻になった後に応答カウンタ３７が「０」であるかどうかをチェックし（ステップ５４）、応答カウンタ３７が「０」でない場合は応答カウンタ３７を「０」にクリアする（ステップ５５）。その後、応答待ちメッセージ数３５が「０」であるかどうか判定し（ステップ５６）、応答待ちメッセージ数３５が「０」である場合は送信メッセージを検知していないということであり、応答監視処理を終了する（ステップ５９）。応答待ちメッセージ数３５が「０」でない場合は、応答監視処理を再び開始する（ステップ５１）。
【００４４】
以上説明した様に本実施形態のメッセージ通信装置によれば、要求メッセージの送信から所定時間経過後に応答メッセージを受信しない場合に要求メッセージの送信を抑止するので、応答側プログラム異常時の障害を早期に検知し、応答が返却されない要求の発生を抑制することが可能である。
【図面の簡単な説明】
【００４５】
【図１】本実施形態の分散処理システムの構成例を示す図である。
【図２】本実施形態のサーバ側プログラムの異常を検知し、それ以降の要求メッセージ発生を抑制する為の構成要素を示す図である。
【図３】本実施形態の応答管理テーブル２２の構成を示す図である。
【図４】本実施形態の応答状態設定処理４１の処理手順を示すフローチャートである。
【図５】本実施形態の応答監視制御処理５０の処理手順を示すフローチャートである。
【符号の説明】
【００４６】
１０…クライアント（業務要求元）、１１…オンライントランザクション処理システム（制御ノード）、１２…メッセージキューイング、１３…キュー制御部、１４…通信制御部、１５…転送キュー、１６…受信キュー、１７…オンライントランザクション処理システム（業務ノード）、１８…中央処理装置ＣＰＵ、１９…メモリ、１１１…送信プログラム、１１２…受信プログラム、１７１…メッセージキューイング、１７２…業務処理、１４１…送信制御部、１４２…送信制御部、１４３…受信制御部、１４４…受信制御部、１５１…転送キュー、１５２…転送キュー、２０…応答状態設定部、２１…応答監視制御部、２２…応答管理テーブル、２２１…通信路定義部、２２２…応答状態部、１７０…業務ノード群、３０…Ｎｏ、３１…転送キュー、３２…送信側通信路、３３…受信側通信路、３４…応答監視時間、３５…応答待ちメッセージ数、３６…最終送信時刻、３７…応答カウンタ、３０１〜３０６…レコード、４１…応答状態設定処理、５０…応答監視制御処理、５１１…応答監視指示。
【図１】
2007316719.tif 000003
【図２】
2007316719.tif 000004
【図３】
2007316719.tif 000005
【図４】
2007316719.tif 000006
【図５】
2007316719.tif 000007