(57)【要約】【課題】  複数のノードを用いてトランザクション処理を実行している際に、或るノードがトランザクション受信時において故障した場合でも、他のノードにも同一のトランザクションを事前に発信しておくことで、処理を手戻りさせることなくシステムダウンを回避し、システムの可用性を向上させる。【解決手段】  ノード１−１は、データ発信先として複数のノードを規定したルール表を参照することより、データ発信先となる複数のノード２−１、２−２を特定し、同一のトランザクションカプセルをノード２−１、２−２に対して発信する。【選択図】  図１
2005050298.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して複数のノードを相互に接続した計算機システムであって、
当該計算機システムは、
前記各ノードにつきデータ発信先として複数のノードを規定したルール表を備え、
前記各ノードは、
受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成手段と、
前記ルール表を参照することによりデータ発信先となる複数のノードを特定し、前記発信用データ生成手段により生成された同一の発信用データを前記データ発信先となる複数のノードに対して発信するデータ発信手段とを夫々有することを特徴とする計算機システム。
【請求項２】
前記各ノードには、当該ノードが属するグループが夫々予め設定され、前記データ発信手段は、前記ルール表上において当該ノードのデータ発信先として規定される他のグループ内の複数のノード夫々に対し、前記発信用データ生成手段により生成された同一の発信用データを発信することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記データ発信手段は、自らのデータ発信処理状況に応じて、当該ノードと同一グループに属する他のノードによる前記他のグループに対するデータ発信処理を制御させるべく、自らのデータ発信処理状況を示す同期情報を前記同一グループに属する他のノードに対して送信することを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記各ノードは、
当該ノードと同一グループに属する他のノードから送信された同期情報を受信する同期情報受信手段と、
前記同期情報受信手段により受信した同期情報を保持する同期情報保持手段とを夫々更に有し、
前記データ発信手段は、前記同期情報保持手段にて保持される同期情報の内容に応じて、前記発信用データ生成手段により生成された発信用データを発信するか否かを制御することを特徴とする請求項３に記載の計算機システム。
【請求項５】
前記データ発信手段は、当該ノードと同一グループに属する他のノードが既に前記同一の発信用データを発信したことを示す同期情報が前記同期情報保持手段内において少なくとも一つ保持されている場合、前記同一の発信用データを当該ノードから発信しないように制御することを特徴とする請求項４に記載の計算機システム。
【請求項６】
前記ルール表上では、前記各ノードにつき同期情報の送信先となるノードが規定され、前記データ発信手段は、前記ルール表を参照することにより、前記ルール表上において当該ノードについて同期情報の送信先として規定されるノードに対して同期情報を送信することを特徴とする請求項３に記載の計算機システム。
【請求項７】
前記各ノードは、
前記データ発信手段から発信用データを発信する前に、前記複数のノード夫々に対して稼働状態を問い合わせる第１の問い合わせ手段を夫々更に有し、
前記データ発信手段は、前記第１の問い合わせ手段による問い合わせ結果に応じて、データ発信先となるノードを切り替えることを特徴とする請求項１に記載の計算機システム。
【請求項８】
前記ルール表上では、前記各ノードにつきデータ発信先の切り替え先となるノードが夫々規定され、前記データ発信手段は、前記ルール表を参照することによりデータ発信先となるノードを切り替えることを特徴とする請求項７に記載の計算機システム。
【請求項９】
当該計算機システムは、
各グループのノードを介して受信した発信用データに対して所定のデータ処理を施すとともに、前記所定のデータ処理が施された処理後のデータを保持するデータベースサーバを更に備え、
前記各ノードは、
前記データ発信手段によるデータ発信処理に係る履歴情報を保持する履歴情報保持手段と、
前記同期情報保持手段及び前記履歴情報保持手段において夫々保持される同期情報及び履歴情報に基づいて、当該ノードから発信した発信用データに対して前記データベースサーバによって所定のデータ処理が施され、返信された処理後のデータを当該ノードと同一グループのノードが受信したか否かを判断する判断手段とを夫々有することを特徴とする請求項４に記載の計算機システム。
【請求項１０】
前記各ノードは、
前記判断手段による判断結果に応じて、前記データベースサーバからのデータ返信経路の前段に該当するグループ内のノードに対してデータ返信処理に係る問い合わせを行う第２の問い合わせ手段と、
前記第２の問い合わせ手段による問い合わせ結果に応じて、前記同一の処理後のデータに基づき生成された発信用データの再発行を前記前段に該当するグループ内のノードに対して要求し、又は、前記前段に該当するグループのさらに前段のグループ内のノードに対して、前記同一の処理後のデータに基づき生成された発信用データの再発行を前記前段に該当するグループ内のノードが要求するように、前記前段に該当するグループ内のノードに対して要求するデータ発行要求手段とを夫々更に有することを特徴とすることを特徴とする請求項９に記載の計算機システム。
【請求項１１】
前記データ発行要求手段は、前記第２の問い合わせ手段による問い合わせの結果、前記前段に該当するグループ内のノードが当該ノードの属するグループに対して前記同一の処理後のデータに基づき生成された発信用データを未だ返信しておらず、且つ、前記問い合わせ時において前記同一の処理後のデータに基づき生成された発信用データを保持している場合には、前記同一の処理後のデータに基づき生成された発信用データの再発行を、前記前段に該当するグループ内のノードに対して要求することを特徴とする請求項１０に記載の計算機システム。
【請求項１２】
前記データ発行要求手段は、前記第２の問い合わせ手段による問い合わせの結果、前記前段に該当するグループのノードが当該ノードの属するグループに対して前記同一の処理後のデータに基づき生成された発信用データを未だ返信しておらず、且つ、前記問い合わせ時において前記同一の処理後のデータに基づき生成された発信用データを紛失している場合には、前記前段に該当するグループのさらに前段のグループ内のノードに対して、前記同一の処理後のデータに基づき生成された発信用データの再発行を前記前段に該当するグループ内のノードが要求するように、前記前段に該当するグループ内のノードに対して要求することを特徴とする請求項１０に記載の計算機システム。
【請求項１３】
当該計算機システムは、前記各ノードより前記通信ネットワークを介して接続可能な通信装置を有し、当該計算機システムにつき単一の前記ルール表が前記通信装置内において備えられることを特徴とする請求項１に記載の計算機システム。
【請求項１４】
前記受信データは、データ送信元のノードのデータ発信手段から複数のノードに対して発信された同一の発信用データであることを特徴とする請求項１に記載の計算機システム。
【請求項１５】
前記受信データは、データ送信元の外部装置から送信された単一のトランザクションの実データであることを特徴とする請求項１に記載の計算機システム。
【請求項１６】
通信ネットワークを介して複数のノードと相互に接続された計算機であって、
受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成手段と、
夫々のノードにつきデータ発信先として複数のノードを規定したルール表を参照することにより、データ発信先となる複数のノードを特定し、前記発信用データ生成手段により生成された同一の発信用データを前記データ発信先となる複数のノードに対して発信するデータ発信手段とを有することを特徴とする計算機。
【請求項１７】
当該計算機には、自らが属するグループが夫々予め設定され、前記データ発信手段は、前記ルール表上において当該計算機のデータ発信先として規定される他のグループ内の複数のノード夫々に対し、前記発信用データ生成手段により生成された発信用データを発信することを特徴とする請求項１６に記載の計算機。
【請求項１８】
前記データ発信手段は、自らのデータ発信処理状況に応じて、当該計算機と同一グループに属する他のノードによる前記他のグループに対するデータ発信処理を制御させるべく、自らのデータ発信処理状況を示す同期情報を前記同一グループに属する他のノードに対して送信することを特徴とする請求項１７に記載の計算機。
【請求項１９】
当該計算機と同一グループに属する他のノードから送信された同期情報を受信する同期情報受信手段と、
前記同期情報受信手段により受信した同期情報を保持する同期情報保持手段とを更に有し、
前記データ発信手段は、前記同期情報保持手段にて保持される同期情報の内容に応じて、前記発信用データ生成手段により生成された発信用データを発信するか否かを制御することを特徴とする請求項１８に記載の計算機。
【請求項２０】
前記データ発信手段は、当該計算機と同一グループに属する他のノードが既に前記同一の発信用データを発信したことを示す同期情報が前記同期情報保持手段内において少なくとも一つ保持されている場合、前記同一の発信用データを当該計算機から発信しないように制御することを特徴とする請求項１９に記載の計算機。
【請求項２１】
前記ルール表上では、当該計算機につき同期情報の送信先となるノードが規定され、前記データ発信手段は、前記ルール表を参照することにより、前記ルール表上において当該計算機について同期情報の送信先として規定されるノードに対して同期情報を送信することを特徴とする請求項１８に記載の計算機。
【請求項２２】
前記データ発信手段から発信用データを発信する前に、前記複数のノード夫々に対して稼働状態を問い合わせる第１の問い合わせ手段を更に有し、
前記データ発信手段は、前記第１の問い合わせ手段による問い合わせ結果に応じて、データ発信先となるノードを切り替えることを特徴とする請求項１６に記載の計算機。
【請求項２３】
前記ルール表上では、当該計算機につきデータ発信先の切り替え先となるノードが夫々規定され、前記データ発信手段は、前記ルール表を参照することによりデータ発信先となるノードを切り替えることを特徴とする請求項２２に記載の計算機。
【請求項２４】
前記データ発信手段によるデータ発信処理に係る履歴情報を保持する履歴情報保持手段と、
当該計算機から発信した発信用データに対してデータベースサーバによって所定のデータ処理が施され、返信された処理後のデータを当該計算機と同一グループのノードが受信したか否かを、前記同期情報保持手段及び前記履歴情報保持手段において夫々保持される同期情報及び履歴情報に基づいて判断する判断手段とを有することを特徴とする請求項１９に記載の計算機。
【請求項２５】
前記判断手段による判断結果に応じて、前記データベースサーバからのデータ返信経路の前段に該当するグループ内のノードに対してデータ返信処理に係る問い合わせを行う第２の問い合わせ手段と、
前記第２の問い合わせ手段による問い合わせ結果に応じて、前記同一の処理後のデータに基づき生成された発信用データの再発行を前記前段に該当するグループ内のノードに対して要求し、又は、前記前段に該当するグループのさらに前段のグループ内のノードに対して、前記同一の処理後のデータに基づき生成された発信用データの再発行を前記前段に該当するグループ内のノードが要求するように、前記前段に該当するグループ内のノードに対して要求するデータ発行要求手段とを更に有することを特徴とすることを特徴とする請求項２４に記載の計算機。
【請求項２６】
前記データ発行要求手段は、前記第２の問い合わせ手段による問い合わせの結果、前記前段に該当するグループ内のノードが当該計算機の属するグループに対して前記同一の処理後のデータに基づき生成された発信用データを未だ返信しておらず、且つ、前記問い合わせ時において前記同一の処理後のデータに基づき生成された発信用データを保持している場合には、前記同一の処理後のデータに基づき生成された発信用データの再発行を、前記前段に該当するグループ内のノードに対して要求することを特徴とする請求項２５に記載の計算機。
【請求項２７】
前記データ発行要求手段は、前記第２の問い合わせ手段による問い合わせの結果、前記前段に該当するグループのノードが当該計算機の属するグループに対して前記同一の処理後のデータに基づき生成された発信用データを未だ返信しておらず、且つ、前記問い合わせ時において前記同一の処理後のデータに基づき生成された発信用データを紛失している場合には、前記前段に該当するグループのさらに前段のグループ内のノードに対して、前記同一の処理後のデータに基づき生成された発信用データの再発行を前記前段に該当するグループ内のノードが要求するように、前記前段に該当するグループ内のノードに対して要求することを特徴とする請求項２５に記載の計算機。
【請求項２８】
前記受信データは、データ送信元のノードのデータ発信手段から複数のノードに対して発信された同一の発信用データであることを特徴とする請求項１６に記載の計算機。
【請求項２９】
前記受信データは、データ送信元の外部装置から送信された単一のトランザクションの実データであることを特徴とする請求項１６に記載の計算機。
【請求項３０】
通信ネットワークを介して複数のノードと相互に接続された計算機によるデータ通信方法であって、
受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成ステップと、
夫々のノードにつきデータ発信先として複数のノードを規定したルール表を参照することにより、データ発信先となる複数のノードを特定し、前記発信用データ生成ステップにより生成された同一の発信用データを前記データ発信先となる複数のノードに対して発信するデータ発信ステップとを含むことを特徴とするデータ通信方法。
【請求項３１】
請求項３０に記載のデータ通信方法をコンピュータに実行させるためのプログラム。
【請求項３２】
通信ネットワークを介して複数のノードを相互に接続した計算機システムであって、
当該計算機システムは、
前記各ノード夫々が属するグループを規定するとともに、前記各ノードの一部又は全部のノード夫々について当該ノードが属するグループとは異なる予備的な一又は複数のグループを規定するルール表を備え、
前記各ノードは、
受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成手段と、
前記ルール表上において当該ノードのデータ発信先として規定される他のグループ内の複数のノード夫々に対し、前記発信用データ生成手段により生成された同一の発信用データを送信するデータ発信手段とを有し、
前記データ発信手段は、当該計算機システムのデータ通信処理に係る障害状態に応じて、該当するノードを、前記ルール表上にて規定される前記予備的な一又は複数のグループのノードとして用いて同一の発信用データを送信することを特徴とする計算機システム。
【請求項３３】
通信ネットワークを介して複数のノードを相互に接続した計算機システムであって、
当該計算機システムは、
前記各ノードの全部のノード夫々について当該ノードが属する複数のグループを規定する、又は、前記各ノードの一部のノード夫々について当該ノードが属する複数のグループを規定するとともに前記各ノードの他のノード夫々について当該ノードが属する単数のグループを規定するルール表を備え、
前記各ノードは、
受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成手段と、
前記ルール表上において当該ノードのデータ発信先として規定される他のグループ内の複数のノード夫々に対し、前記発信用データ生成手段により生成された同一の発信用データを送信するデータ発信手段とを有し、
前記データ発信手段は、当該計算機システムのデータ通信処理に係る障害状態に応じて、該当するノードを、前記ルール表上にて規定される複数のグループ間で切り替えて用いて同一の発信用データを送信することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークを介して複数のノードを相互に接続した計算機システムに適用される技術である。
【背景技術】
【０００２】
近年、ＡＴＭシステム等のミッションクリティカルな計算機システムにおいて、安価なコストで可用性を向上させるために冗長性を利用するものが提案されている。
【０００３】
例えば、特許文献１に開示された発明では、通常メインフレームで行うトランザクション処理を複数のノードを用いて行うことで、何れかのノードが故障した場合でも他の正常なノードがトランザクション処理を代替することによりシステムダウンを回避している。
【０００４】
【特許文献１】特許第３０６２１５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来例によれば、複数のノードに対して単一のトランザクションのみを発信しているので、例えば、トランザクションを受信したノードがその受信時において故障した場合、他のノードへのトランザクション処理の振替が不可能となる。従って、システムダウンを回避するためには、当該故障したノードの前段のノードからトランザクションを再発行させる処理の手戻りが必要であった。
【０００６】
従って、本発明の目的は、複数のノードを用いてトランザクション処理を実行している際に、或るノードがトランザクション受信時において故障した場合でも、他のノードにも同一のトランザクションを事前に発信しておくことで、処理を手戻りさせることなくシステムダウンを回避し、システムの可用性を向上させることにある。
【課題を解決するための手段】
【０００７】
斯かる目的を達成するために、本発明の計算機システムは、通信ネットワークを介して複数のノードを相互に接続した計算機システムであって、当該計算機システムは、前記各ノードにつきデータ発信先として複数のノードを規定したルール表を備え、前記各ノードは、受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成手段と、前記ルール表を参照することによりデータ発信先となる複数のノードを特定し、前記発信用データ生成手段により生成された同一の発信用データを前記データ発信先となる複数のノードに対して発信するデータ発信手段とを夫々有することを特徴とする。
【０００８】
また、本発明の計算機は、通信ネットワークを介して複数のノードと相互に接続された計算機であって、受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成手段と、夫々のノードにつきデータ発信先として複数のノードを規定したルール表を参照することにより、データ発信先となる複数のノードを特定し、前記発信用データ生成手段により生成された同一の発信用データを前記データ発信先となる複数のノードに対して発信するデータ発信手段とを有することを特徴とする。
【０００９】
また、本発明のデータ通信方法は、通信ネットワークを介して複数のノードと相互に接続された計算機によるデータ通信方法であって、受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成ステップと、夫々のノードにつきデータ発信先として複数のノードを規定したルール表を参照することにより、データ発信先となる複数のノードを特定し、前記発信用データ生成ステップにより生成された同一の発信用データを前記データ発信先となる複数のノードに対して発信するデータ発信ステップとを含むことを特徴とする。
【００１０】
さらに、本発明のプログラムは、前記データ通信方法をコンピュータに実行させることを特徴とする。
【００１１】
また、本発明の計算機システムの他の態様は、通信ネットワークを介して複数のノードを相互に接続した計算機システムであって、当該計算機システムは、前記各ノード夫々が属するグループを規定するとともに、前記各ノードの一部又は全部のノード夫々について当該ノードが属するグループとは異なる予備的な一又は複数のグループを規定するルール表を備え、前記各ノードは、受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成手段と、前記ルール表上において当該ノードのデータ発信先として規定される他のグループ内の複数のノード夫々に対し、前記発信用データ生成手段により生成された同一の発信用データを送信するデータ発信手段とを有し、前記データ発信手段は、当該計算機システムのデータ通信処理に係る障害状態に応じて、該当するノードを、前記ルール表上にて規定される前記予備的な一又は複数のグループのノードとして用いて同一の発信用データを送信することを特徴とする。
【００１２】
また、本発明の計算機システムの更に他の態様は、通信ネットワークを介して複数のノードを相互に接続した計算機システムであって、当該計算機システムは、前記各ノードの全部のノード夫々について当該ノードが属する複数のグループを規定する、又は、前記各ノードの一部のノード夫々について当該ノードが属する複数のグループを規定するとともに前記各ノードの他のノード夫々について当該ノードが属する単数のグループを規定するルール表を備え、前記各ノードは、受信データと同一のトランザクションの実データを含む発信用データを生成する発信用データ生成手段と、前記ルール表上において当該ノードのデータ発信先として規定される他のグループ内の複数のノード夫々に対し、前記発信用データ生成手段により生成された同一の発信用データを送信するデータ発信手段とを有し、前記データ発信手段は、当該計算機システムのデータ通信処理に係る障害状態に応じて、該当するノードを、前記ルール表上にて規定される複数のグループ間で切り替えて用いて同一の発信用データを送信することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、各計算機から同一の発信用データを複数の計算機に対して多重化させて発信するように構成したので、複数の計算機を用いてトランザクション処理を実行している際に、或る計算機がデータ受信時において故障した場合でも、他の計算機にも同一のデータを事前に発信しておくことで、処理を手戻りさせることなくシステムダウンを回避し、システムの可用性を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明に適用可能な計算機システムの一構成例を示した図である。図１を用いて本発明の基本的な概念を説明する。
【００１５】
図１に示す計算機システムは、パーソナル・コンピュータ等の比較的安価な計算機（以下、ノードと称す）を複数備えて構成され、通信ネットワークを介して各ノードが相互に接続される。各ノードには、夫々属するグループが予め設定されており、グループ間でトランザクションの送受信を行う。図１の例では、ノード１−１、１−２がグループ１に属し、ノード２−１、２−２がグループ２に属する。
【００１６】
尚、以下の説明においては、個々の計算機を夫々ノードとして表現するが、本発明においては、トランザクション処理に係るプロセスを担う機能もノードの概念に包含してもよい。例えば、一計算機内にトランザクション処理に係るプロセスが複数存在する場合、当該計算機内にはそのプロセス数に対応した数のノードを備えることになる。
【００１７】
先ず、クライアント端末（不図示）からデータベースサーバ（図１中、ＤＢと表記）に対してトランザクションが送信される際の動作について説明する。以下では、クライアント端末からデータベースサーバへトランザクションが送信されるまでの処理期間を、「送信処理時」と称す。
【００１８】
＜送信処理時＞
図１に示すように、ノード１−１は、例えば、本計算機システムの外部に設置されるクライアント端末から一本のトランザクション１（ＴＲ１）を受信すると、ＴＲ１の実データを含むトランザクションカプセル（発信用データ）を生成し、グループ２に対して同一のトランザクションカプセルを多重化させて発信する。
【００１９】
トランザクションカプセル内には、このトランザクションカプセルの多重化処理等を実行する上でのルールを識別するための情報が含まれており、各ノードは、該当するルールについて所定のルール表を参照し、多重化処理の内容等を特定して実行する。ここでは、ノード１−１からの同一トランザクションの送付先としてノード２−１、２−２がルール表上において規定されているものとする。従って、ノード２−１、２−２は、ノード１−１から同一のトランザクションカプセルをともに受信することになる。
【００２０】
従来は、ノード間において送受信されるトランザクションは常に一本であったため、トランザクションを受信したノードがその受信時において故障した場合は、そのノードからトランザクションを発信させることができず、システムダウンを来す。また、システムダウンを回避するためには、前段（データベースサーバからみて下流）のノードから同じトランザクションを再発行させる処理の手戻りが必要であった。
【００２１】
これに対して、本発明を適用した図１の計算機システムの例では、例えば、ノード２−１がトランザクションカプセル受信時において故障した場合、ノード２−２もともに同一のトランザクションカプセルを受信しているので、ノード２−２を用いて以降のトランザクション処理を続行することが可能となる。その反対に、ノード２−２が故障した場合でも、ノード２−１がノード２−２を代替することによりトランザクション処理の継続させることが可能となる。従って、図１に示す計算機システムの例によれば、処理を手戻させることなくシステムダウンを回避することが可能となる。
【００２２】
続いて、ノード２−１、２−２は、互いに他方のノードから既にＴＲ１の実データを含むトランザクションカプセルが発信済みであるか否かを判断し、その判断結果に応じて自ノードのトランザクションカプセルの発信処理を制御する。この発信処理の制御によって、ノード２−１、２−２のうちの何れか一方がトランザクションカプセルの発信元として選ばれる。
【００２３】
ここでは、ノード２−１がデータベースサーバに対してトランザクションカプセルを送信したものとする。データベースサーバは、ノード２−１からトランザクションカプセルを受信すると、トランザクションカプセル内のトランザクション実データに対して所定のデータ処理を施し、その結果を内部に保持する。
【００２４】
＜受信処理時＞
以降は、データベースサーバからクライアント端末へトランザクションが返信されることになる。以下では、データベースサーバからクライアント端末へトランザクションが返信されるまでの処理期間を、「受信処理時」と称す。
【００２５】
データベースサーバは、処理後のトランザクション実データを含むトランザクションカプセルをノード２−１に返信する。ノード２−１は、同じく上記ルール表を参照し、トランザクションカプセルを多重化させてグループ１のノード１−１、１−２に対して送信する。
【００２６】
ノード１−１、１−２は、互いに他方のノードから既に処理後のＴＲ１を含むトランザクションカプセルが発信済みであるか否かを判断し、その判断結果に応じて自ノードのトランザクションカプセルの発信処理を制御する。この発信処理の制御によって、ノード１−１、１−２のうちの何れか一方がトランザクションカプセルの発信元として選ばれる。ここでは、図１に示すように、ノード１−１からクライアント端末に対してトランザクションカプセルが送信されたものとする。
【００２７】
尚、ノード１−１からクライアント端末へのデータ返信時においては、トランザクションカプセルをそのまま送信し、クライアント端末側で処理後のＴＲ１以外のデータを取り除く構成としてもよいし、予めノード１−１側で処理後のＴＲ１以外のデータを取り除いた後にクライアント端末に対して送信するように構成してもよい。
【００２８】
このように、受信処理時においても、後段（データベースサーバからみて下流）のノードに対して同一トランザクションカプセルを多重化させて送信している。従って、例えば、ノード１―１がトランザクションカプセル受信時において故障した場合、ノード１−２をノード１−１の代替手段としてトランザクション処理を継続することが可能となる。その反対もまた同様である。よって、トランザクション受信時において当該ノードが故障した場合でも、処理を手戻りさせることなく、システムダウンを回避することが可能となる。
【００２９】
＜ノード内部構成＞
図２は、本発明の一実施形態に係るノードの機能構成を模式的に示した図である。
図２に示すように、各ノード２０１は、発信コントロールエンジン２０２、ディストリビュータ２０４、同期プロセス２０５及びＨＡエンジン２０６を備える。発信コントロールエンジン２０２は、受信データがルール番号等を含むトランザクションカプセルである場合は、トランザクションカプセルのルール番号を自ノード２０１固有のルール番号に更新し、受信データがトランザクションカプセルでない場合は、トランザクション実データに対して自ノード２０１固有のルール番号とともに当該トランザクション固有のトランザクション番号を付加してトランザクションカプセル２０３を生成する。
【００３０】
ディストリビュータ２０４は、トランザクションカプセル２０３内のルール番号に該当するルールをルール表２０７から参照することにより、トランザクションカプセル２０３の発信先となる複数のノード、自ノード２０１の同期先等を特定し、特定した複数のノードに対するトランザクションカプセル２０３の発信処理、同一グループ内の他のノードへの同期情報の送信処理等を実行する。尚、同期情報とは、同期情報の送信元となる自ノード２０１のデータ発信処理状況を示す情報である。
【００３１】
また、ノード２０１は、ディストリビュータ２０４による自らのトランザクションカプセル発信処理に関する履歴情報を記録するためのメインキュー２０８、及び、同一グループ内の他のノードからの同期情報を記録するためのサブキュー２０９を備える。このサブキュー２０９は、同一グループに属する他のノード毎に備えられ、データを記録するための基本的なテーブル構造はメインキュー２０８と同じである。
【００３２】
同期プロセス２０５は、同一グループ内の他のノードから受信した同期情報を該当するサブキュー２０９に登録する。サブキュー２０９内に登録された同期情報は、トランザクションカプセル発信処理前においてディストリビュータ２０４によって参照される。ディストリビュータ２０４は、サブキュー２０９を参照することにより、同一グループ内の他のノードのデータ発信処理状況を判断し、その判断結果に応じて自らのデータ発信処理を制御する。
【００３３】
ＨＡエンジン２０６は、ディストリビュータ２０４によりトランザクションカプセル２０３が発信される前に、発信先の各ノード２０１に対して稼働状況を問い合わせ、その問い合わせ結果に応じてトランザクションカプセル２０３の発信先を切り替える。これにより、稼働状態に異変のあるノード２０１に対するトランザクションカプセル発信処理を事前に回避することが可能となる。
【００３４】
また、ＨＡ（High Availability）エンジン２０６は、受信処理時において、トランザ
クションカプセル２０３の通信状態の滞り、トランザクションカプセル２０３の紛失等を上流又は下流のノード２０１に対して問い合わせ、その問い合わせ結果に応じて、トランザクションカプセル２０３の再発行を要求する。
【００３５】
＜ルール表の構成＞
図１１は、図２内のルール表２０７を概念的に示した図である。
図１１に示すルール表２０７上では、各ノード２０１のルール番号が登録されている。各ルール番号には、送信処理時におけるトランザクションカプセルの送付先及びＨＡ先、受信処理時におけるトランザクションカプセルの返信先及びＨＡ先、同一グループ内における同期先、ＨＡエンジン２０６による稼働状況の問い合わせ（確認）周期、並びに、その問い合わせ処理による異変検出時の対応方法が対応付けて登録されている。なお、図１１では「送付先」や「ＨＡ先」などについては「２−１」、「２−２」などと記載しているが、実際には、各ノードを特定できるようなＩＰアドレス等を用いて記載しておく。
【００３６】
各ノード２０１は、図１１に示すようなルール表２０７を自ノード２０１固有のルール番号について参照することにより、トランザクションカプセルの発信先や同期先等を判断する。尚、本計算機システムは、各ノードと通信ネットワークを介して不図示の通信装置と接続され、当該通信装置内において単一のルール表２０７が備えられている。各ノードは逐次通信装置にアクセスすることにより、ルール表２０７を参照することができる。
【００３７】
ところで、一般に、トランザクション保護を厚くすると処理速度は低下し、反対に処理速度の向上を図るとトランザクションの保護は薄くなる。本実施形態においても、トランザクションの保護を図るために、複数ノードに同一トランザクションカプセルを発信しており、それに伴って送付先グループでは同期処理等が必要となって処理速度の低下を招く虞がある。しかしながら、ルール表２０７を適宜変更することによって、トランザクションの保護の厚さとシステム全体の処理速度とのバランスをきめ細かく調整することが可能となる。
【００３８】
図１１のルール表２０７を用いて具体的に説明すると、ノード１−１に該当するルール番号１００１のルール内の送付先を、２−１、２−２から２−１の一つのノードに変更した場合、ノード１−１が受信したトランザクションに対する保護は薄くなり、その分、後段のグループ２の同期処理における負荷が低下し、処理速度は向上する。また、ノード１−２に該当するルール番号１００２のルール内の送付先を、２−２、２−３に更に他のノード（例えば、ノード２−４（不図示））を追加変更した場合、ノード１−２が受信したトランザクションに対する保護は厚くなり、その分、後段のグループ２の同期処理における負荷は増加し、処理速度は低下する。このように、各ノード２０１に該当するルール内容を適宜変更することによって、トランザクション保護の厚さとシステム全体の処理速度とのバランスをきめ細かく調整することが可能となる。
【００３９】
また、図１１の例では、各ノード２０１につき一つのルールを割り当てているが、一つのノード２０１につき複数種のルールをルール表２０７上で定義し、参照するルールを各ノード２０１において選択できるように構成しても良い。
【００４０】
図３は、送信処理時におけるノード２０１間のトランザクション処理の流れを示した図、図４は、受信処理時におけるノード２０１間のトランザクション処理の流れを示した図である。また、図１２は、発信コントロールエンジン２０２の処理動作を示したフローチャート、図１３は、ディストリビュータ２０４の処理動作を示したフローチャート、図１４は、同期プロセスの処理動作を示したフローチャートである。
以下、図３及び図４並びに図１２〜図１４を参照しながら、図１１のルール表２０７に基づく本実施形態に係るトランザクション処理の流れを説明する。
【００４１】
＜送信処理時のグループ１の動作＞
−送信処理時のノード１−１の動作−
ノード１−１は、クライアント端末（不図示）から一本のトランザクションを受信すると（図３の３０１、図１２のステップＳ１２０１）、発信コントロールエンジン２０２を起動させる。発信コントロールエンジン２０２は、受信データがトランザクションカプセルであるか否かをトランザクション番号及びルール番号の有無により判断する（図１２のステップＳ１２０２）。クライアント端末からの受信データにはトランザクション番号等は付加されていないため、発信コントロールエンジン２０２は、図１２のステップＳ１２０３に処理を移行する。
【００４２】
ステップＳ１２０３では、発信コントロールエンジン２０２は、受信トランザクション固有のトランザクション番号（ここでは、１）とノード１−１固有のルール番号１００１を受信トランザクションの実データに付加し、トランザクションカプセル２０３を生成する（図１２のステップＳ１２０３）。
【００４３】
ここで、全てのトランザクションについてグループ１のノードによってトランザクション番号が付与される。トランザクション番号は夫々のトランザクション毎に固有の番号でなければならない。そのために、グループ１のノードが夫々異なるトランザクション番号表を備え、各ノードがトランザクションを受信する度にトランザクション番号表から順次トランザクション番号を選択し、トランザクションに対して付与するように構成してもよい。
【００４４】
続いて、発信コントロールエンジン２０２がトランザクションカプセル２０３を生成したことを受け（図１３のステップＳ１３０１）、ディストリビュータ２０４が起動する。ディストリビュータ２０４は、サブキュー２０９を参照し、トランザクションカプセル２０３と同一のトランザクション番号１のキューがノード１−２、１−３用サブキュー２０９内に存在するか否かを判断する（図１３のステップＳ１３０２）。
【００４５】
送信処理時におけるトランザクション番号１のトラザクションカプセル発信処理はノード１−１のみによって行われるため、ノード１−２、１−３用サブキュー２０９内にトランザクション番号１のキューは存在しない。従って、ディストリビュータ２０４は、ルール表２０７からルール番号１００１に該当するルールを参照し（図１３のステップＳ１３０４）、トランザクションカプセル２０３の送付先を特定する。
【００４６】
図１１に示すように、送信処理時におけるルール番号１００１に該当するルールでは、トランザクションカプセル２０３の送付先としてノード２−１、２−２が定められている。よって、ディストリビュータ２０４は、トランザクションカプセル２０３の送付先をノード２−１、２−２と特定する。
【００４７】
ディストリビュータ２０４によりトランザクションカプセル２０３の送付先が特定されると、ＨＡエンジン２０５が起動し、トランザクションカプセル２０３の送付先として特定されたノード２−１、２−２に対して稼働状態を問い合わせる。ここでは、問い合わせの結果、稼働状態に異変が検知されなかったものとする。従って、ディストリビュータ２０４は、ＨＡエンジン２０５により稼働状態の異変が検知されなかったことを受けて（図１３のステップＳ１３０５／ＮＯ）、当初の予定通り、トランザクションカプセル２０３をノード２−１、２−２に対して同時に送付する（図３の３０２、図１３のステップＳ１３０７）。
【００４８】
尚、ＨＡエンジン２０５による上記問い合わせの結果、ノード２−１、２−２の稼働状態に異変が検知された場合に実行されるＨＡ処理については、後述する。
【００４９】
続いて、ディストリビュータ２０４は、今回のトランザクションカプセル２０３の送付処理に関する履歴情報をメインキュー２０８内に記録する（図１３のステップＳ１３０８）。図７（ａ）は、ノード１−１のメインキュー２０８及びノード１−２（１−３）のノード１−１用サブキュー２０９の初期状態例を示している。
【００５０】
ディストリビュータ２０４は、例えば、図７（ａ）に示すメインキュー２０８に対して、送付したトランザクションカプセルと同一内容のデータ、即ちトランザクション番号１、ルール番号１００１及びトランザクションの実データ（内容）とともに、ノード２−１及びノード２−２に対するトランザクションカプセルの送信時間をメインキュー２０８内に登録する（図７（ｂ））。
【００５１】
さらに、ディストリビュータ２０４は、メインキュー２０８内において登録（更新）したキューと同一内容のデータ（トランザクション番号１、ルール番号１００１、トランザクションの実データ、送信時間）を同期情報としてノード１−２、１−３に対して送信する（図３の３０３、図１３のステップＳ１３０９）。このデータ送信処理は、同一グループ内の他のノード１−２、１−３との同期処理として実行される。
【００５２】
この同期情報の送信処理は、ディストリビュータ２０４が事前にルール番号１００１に対応するルールをルール表２０７から参照することによって行われている。即ち、図１１のルール表２０７上では、ルール番号１００１に関しては同期先としてノード１−２、１−３が規定されている。従って、ディストリビュータ２０４は、ルール表２０７を参照することにより、ノード１−２、１−３を同期情報の送信先として特定し、同期情報をそれらのノードに対して送信している。
【００５３】
−送信処理時のノード１−２、１−３の動作−
一方、ノード１−２、１−３は、ノード１−１から上記同期情報を受信すると（図１４のステップＳ１４０１）、同期プロセス２０５を起動させる。同期プロセス２０５は、同期情報と同一のトランザクション番号１のキューがノード１−１用サブキュー２０９内に既に登録されているか否かを判断する（図１４のステップＳ１４０２）。ここでは、同期情報と同一のトランザクション番号１を含むキューは未だサブキュー２０９内において登録されていないので、ノード１−２、１−３の同期プロセス２０５は、図７（ｃ）に示すように、ノード１−１用サブキュー２０９内に同期情報を新規登録する（図１４のステップＳ１４０３）。
【００５４】
＜送信処理時のグループ２の動作＞
−送信処理時のノード２−１、２−２の動作−
ノード２−１、２−２は、ノード１−１からトランザクションカプセルを受信する（図３の３０２）。トランザクションカプセルの受信を受けて（図１２のステップＳ１２０１）、ノード２−１、２−２の発信コントロールエンジン２０２は起動し、受信データがトランザクションカプセルであるか否かをトランザクション番号及びルール番号の有無に応じて判断する（図１２のステップＳ１２０２）。
【００５５】
いま、受信データはトランザクションカプセル２０３であるため、発信コントロールエンジン２０２は、受信トランザクションカプセル２０３のルール番号１００１を自ノード２−１、２−２固有のルール番号２００１、２００２に更新する（図１２のステップＳ１２０４）。即ち、ノード２−１においては、トランザクションカプセル２０３内のルール番号を１００１から２００１に更新し、ノード２−２においては、トランザクションカプセル２０３内のルール番号を１００１から２００２に更新する。
【００５６】
続いて、ノード２−１、２−２のディストリビュータ２０４が夫々起動する。先ず、ノード２−１のディストリビュータ２０４の動作について説明する。
ノード２−１のディストリビュータ２０４は、ノード２−１内のサブキュー２０９を参照し、トランザクションカプセル２０３と同一のトランザクション番号１のキューがノード２−２、２−３用サブキュー２０９内に存在するか否かを判断する（図１３のステップＳ１３０２）。
【００５７】
ここでは、ノード２−２からのトランザクション番号１のトランザクションカプセル２０３送付処理が未だ実行されていないことを前提とするため、ノード２−２用サブキュー２０９内にトランザクション番号１のキューは存在しない。また、ノード２−３はノード１−１からトランザクション番号１のトランザクションカプセルを受信していないため、ノード２−３によってトランザクション番号１のトランザクションカプセルの送付処理は当然行われず、然るにノード２−３用サブキュー２０９内にはトランザクション番号１のキューは存在しない。従って、ディストリビュータ２０４は、ルール表２０７からルール番号２００１に該当するルールを参照し（図１３のステップＳ１３０４）、トランザクションカプセル２０３の送付先を特定する。
【００５８】
図１１に示すように、送信処理時におけるルール番号２００１に該当するルールでは、トランザクションカプセル２０３の送付先としてノード３−１（データベースサーバ）が規定されている。このように、ディストリビュータ２０４によって特定されたトランザクションカプセル２０３の送付先が一つのノードである場合には、ＨＡエンジン２０６は、異変検知時にトランザクションカプセルの送付先を切り替えるための問い合わせ処理を実行しない。よって、ディストリビュータ２０４は、図１３のステップＳ１３０４からステップＳ１３０７に処理を移行し、トランザクションカプセル２０３をノード３−１に対して送信する（図３の３０４）。
【００５９】
続いて、ディストリビュータ２０４は、今回のトランザクションカプセル２０３の発信処理に関する履歴情報をメインキュー２０８内に記録する（図１３のステップＳ１３０８）。図８（ａ）は、ノード２−１のメインキュー２０８及びノード２−２（２−３）のノード２−１用サブキュー２０９の初期状態例を示している。ディストリビュータ２０４は、図８（ａ）に示すメインキュー２０８に対して、送付したトランザクションカプセル２０３と同一内容のデータ、即ちトランザクション番号１、ルール番号２００１及びトランザクションの実データ（内容）とともに、ノード３−１に対するトランザクションカプセル２０３の送信時間をメインキュー２０８内に登録する（図８（ｂ））。
【００６０】
さらに、ディストリビュータ２０４は、メインキュー２０８内に登録したキューと同一内容のデータ（トランザクション番号１、ルール番号２００１、トランザクションの実データ、送信時間）を同期情報としてノード２−２、２−３に対して送信する（図３の３０５、図１３のステップＳ１３０９）。同じく、このデータ送信処理は、同一グループ２内の他のノード２−２、２−３との同期処理として実行される。
【００６１】
−送信処理時のノード２−２、２−３の動作−
一方、ノード２−２、２−３は、ノード２−１から上記同期情報を受信すると（図３の３０５、図１４のステップＳ１４０１）、同期プロセス２０５を起動させる。先ず、同期プロセス２０５は、同期情報と同一のトランザクション番号１のキューがノード２−１用サブキュー２０９内に既に登録されているか否か判断する（図１４のステップＳ１４０２）。ここでは、トランザクション番号１のキューは未だノード２−１用サブキュー２０９内において登録されていないので、ノード２−２、２−３の同期プロセス２０５は、図８（ｃ）に示すように、ノード２−１用サブキュー２０９に同期情報を新規登録する（図１４のステップＳ１４０３）。
【００６２】
ノード２−２がノード１−１からトランザクション番号１のトランザクションカプセル２０３を受信すると（図３の３０２）、ノード２−２のディストリビュータ２０４は、サブキュー２０９を参照することにより、トランザクション番号１のキューがノード２−１用サブキュー２０９内に登録され、且つ当該キューに送信時間が登録されていることを確認することになる。従って、ノード２−２は、トランザクション番号１のトランザクションカプセル２０３が同一グループ２内の他のノード２−１から既に送付されているものとして、ノード１−１から受信したトランザクション番号１のトランザクションカプセル２０３を送付しないように制御する。
【００６３】
以上のように、ノード１−１から同一のトランザクションカプセル２０３を受信したノード２−１、２−２は、互いに上記発信処理の制御を行うことにより、同一トランザクション実データを含むトランザクションカプセル２０３が複数ノードから重複して発信されることを防止し、単一のトランザクションカプセルのみが上流のノード（ここでは、データベースサーバ）に対して送信されるようにしている。
【００６４】
ここで、例えば、ノード２−１がトランザクション番号１のトランザクションカプセル２０３を受信した時点において故障が生じた場合は、ノード２−１からトランザクション番号１のトランザクションカプセル２０３を発信することが不可能となる。この場合、ノード２−２にはノード２−１から当該トランザクションカプセル送信完了の旨の上記同期情報は送信されず、ノード２−２は、サブキュー２０９を参照することにより、ノード２−１が未だ当該トランザクションカプセルを送信していないことを把握することができる。従って、ノード２−２は、ノード２−１の代替手段として当該トランザクションカプセルを後段に送信し、トランザクション処理を継続させることが可能となる。
【００６５】
＜データベースサーバの動作＞
尚、データベースサーバ３−１においては、トランザクション管理の整合性を保つため、一つのトランザクション番号につき複数のトランザクションを保持することは避けなければならない。本実施形態においては、データベースサーバ３−１の前段に属するグループ２の同期処理により、一つのトランザクション番号につき単一のトランザクションカプセルがデータベースサーバ３−１に対して発信するように制御し、データベースサーバ３−１におけるトランザクション管理の整合性確保に供している。
【００６６】
その他に、データベースサーバ３−１の前段のグループ２から一つのトランザクション番号につき複数のトランザクションを受信することをデータベースサーバ３−１が許容し、データベースサーバ３−１側でそのうちの一つのトランザクションを保持するように構成してもよい。即ち、ノード２−１、２−２からトランザクション番号１のトランザクションカプセルを夫々データベースサーバ３−１に対して発信することが可能な状態であるため、ノード２−１、２−２からトランザクション番号１のトランザクションカプセル２０３が発信され、その発信処理においては、ノード２−１の方がノード２−２より先にトランザクションカプセル２０３を発信したものとする。
【００６７】
データベースサーバ３−１は、ノード２−１からトランザクションカプセルを受信すると、トランザクション番号１を保持し、以降、同一トランザクション番号１のトランザクションカプセルを受信した場合は、所定のデータ処理を施すことなく削除される。従って、ノード２−２から発信されたトランザクション番号１のトランザクションカプセルは削除されることになる。
【００６８】
続いて、データベースサーバ３−１内では、受信したトランザクションカプセル２０３のトランザクション実データに対して必要なデータ処理を施し、処理後のトランザクション実データを保持する。また、データベースサーバ３−１は、当該トランザクションカプセル２０３と同一のルール番号２００１のルールをルール表２０７から参照し、当該トランザクションカプセル２０３がノード２−１から受信したものであることを認識する。
【００６９】
続いて、データベースサーバ３−１は、処理後のトランザクション実データにトランザクション番号１とルール番号２００１を付加したトランザクションカプセル２０３を生成し、ノード２−１に対して返信する（４０１）。
【００７０】
＜受信処理時のグループ２の動作＞
−受信処理時のノード２−１の動作−
ノード２−１は、データベースサーバ３−１からトランザクションカプセル２０３を受信すると（図４の４０１、図１２のステップＳ１２０１）、発信コントロールエンジン２０２を起動させる。発信コントロールエンジン２０２は、受信データがトランザクションカプセル２０３であるか否かをトランザクション番号及びルール番号の有無により判断する（図１２のステップＳ１２０２）。いま、受信データは、データベースサーバ３−１によって生成されたトランザクションカプセル２０３であるため、発信コントロールエンジン２０２は、図１２のステップＳ１２０４に処理を移行する。
【００７１】
ステップＳ１２０４では、発信コントロールエンジン２０２は、トランザクションカプセル２０３内のルール番号を自ノード２−１固有のルール番号２００１に更新する（本実施形態では、データベースサーバ３−１が送信元のノード２−１に対してトランザクションカプセル２０３を返信する構成としたので、本ルール番号の更新処理ではルール番号は変更されない）。
【００７２】
続いて、発信コントロールエンジン２０２がトランザクションカプセル２０３を生成したことを受け（図１３のステップＳ１３０１）、ディストリビュータ２０４が起動する。ディストリビュータ２０４は、サブキュー２０９を参照し、トランザクションカプセル２０３と同一のトランザクション番号１のキューがノード２−２、２−３用サブキュー２０９に存在するか否かを判断する（図１３のステップＳ１３０２）。
【００７３】
本実施形態では、送信処理時においてノード２−２、２−３はトランザクション番号１のトランザクションカプセル２０３の発信処理は行っていないので、ノード２−２、２−３用サブキュー２０９には、トランザクション番号１のキューは存在しない。従って、ディストリビュータ２０４は、ルール表２０７からルール番号２００１に該当するルールを参照し（図１３のステップＳ１３０４）、トランザクションカプセル２０３の送付先を特定する。
【００７４】
図１１に示すように、受信処理時におけるルール番号２００１に該当するルールは、トランザクションカプセル２０３の送付先としてノード１−１、１−２が定められている。よって、ディストリビュータ２０４は、トランザクションカプセル２０３の送付先をノード１−１、１−２と特定する。
【００７５】
ディストリビュータ２０４によりトランザクションカプセル２０３の送付先が特定されると、ＨＡエンジン２０５が起動し、トランザクションカプセル２０３の送付先として特定されたノード１−１、１−２に対して稼働状態を問い合わせる。ここでは、問い合わせの結果、稼働状態に異変が検知されなかったものとする。
【００７６】
ディストリビュータ２０４は、ＨＡエンジン２０５により稼働状態の異変が検知されなかったことを受けて（図１３のステップＳ１３０５）、当初の予定通り、トランザクションカプセル２０３をノード１−１、１−２に対して同時に返信する（図４の４０２、図１３の１３０７）。尚、ＨＡエンジン２０５による上記問い合わせの結果、ノード２−１、２−２の稼働状態に異変が検知された場合の動作については、後述する。
【００７７】
ここで、本実施形態に係る計算機システムでは、説明の簡単のため、トランザクション番号１のトランザクションカプセルのみが通信されており、他のトランザクション番号のトランザクションカプセルは送受信されていないことを前提としている。よって、図９（ａ）に示すノード２−１のメインキュー２０８及びノード２−２（２−３）のノード２−１用サブキュー２０９は、図８（ｃ）と同一である。
【００７８】
ディストリビュータ２０４は、今回のトランザクションカプセル２０３の返信処理に関する履歴情報をメインキュー２０８内に記録する（図１３のステップＳ１３０８）。即ち、図９（ｂ）に示すように、ディストリビュータ２０４は、トランザクション番号１のキューに受信時間を登録する。
【００７９】
さらに、ディストリビュータ２０４は、メインキュー２０８内において更新したキューと同一内容のデータ（トランザクション番号、ルール番号、トランザクションの実データ、送信時間及び受信時間）を同期情報としてノード２−２、２−３に対して送信する（図４の４０３、図１３のステップＳ１３０９）。このデータ送信処理は、同一グループ２内の他のノード２−２、２−３との同期処理として実行される。
【００８０】
−受信処理時のノード２−２、２−３の動作−
一方、ノード２−２、２−３は、ノード２−１から上記同期情報を受信すると（図４の４０３、図１４のステップＳ１４０１）、同期プロセス２０５を起動させる。先ず、同期プロセス２０５は、同期情報と同一のトランザクション番号１のキューがノード２−１用サブキュー２０９内に既に登録されているか否かを判断する（図１４のステップＳ１４０２）。
【００８１】
ここでは、送信処理時におけるノード２−１からの同期情報により、ノード２−２、２−３のノード２−１用サブキュー内に既にトランザクション番号１のキューが既に登録されている。従って、ノード２−２、２−３の同期プロセス２０５は、図９（ｃ）に示すように、ノード２−１用サブキュー２０９内のトランザクション番号１のキュー内に受信時間を追加登録する（図１４のステップＳ１４０４）。
【００８２】
＜受信処理時のグループ１の動作＞
−受信処理時のノード１−１の動作−
ノード１−１、１−２は、ノード２−１から同一のトランザクションカプセル２０３をともに受信する（図４の４０２）。先ず、ノード１−１の動作について説明すると、ノード２−１からのトランザクションカプセル２０３の受信を受けて（図１２のステップＳ１２０１）、ノード１−１の発信コントロールエンジン２０２は起動し、受信データがトランザクションカプセルであるか否かを判断する（図１２のステップＳ１２０２）。
【００８３】
いま、受信データはトランザクションカプセル２０３であるため、発信コントロールエンジン２０２は、受信トランザクションカプセル２０３のルール番号２００１を自ノード１−１固有のルール番号１００１に更新する（図１２のステップＳ１２０４）。
【００８４】
続いて、ディストリビュータ２０４が起動し、ノード１−１内のサブキュー２０９を参照し、トランザクションカプセル２０３と同一のトランザクション番号１のキューがノード１−２、１−３用サブキュー内に存在するか否かを判断する（図１３のステップＳ１３０２）。
【００８５】
ここでは、送信処理時においてノード１−２、１−３はトランザクションカプセル発信処理を実行しておらず、且つ、受信処理時における当該トランザクションカプセル２０３の返信処理がノード１−２によって未だ実行されていないことを前提とするため、ノード１−２、ノード１−３用サブキューには、トランザクション番号１のキューは存在しない。従って、ディストリビュータ２０４は、ルール表２０７からルール番号１００１に該当するルールを参照し（図１３のステップＳ１３０４）、トランザクションカプセル２０３の返信先を特定する。
【００８６】
図１１に示すように、受信処理時におけるルール番号１００１に該当するルールでは、トランザクションカプセル２０３の返信先を規定していない。これは、トランザクションカプセル２０３の返信先をクライアント端末としていることを示している。
【００８７】
このように、ルール表２０７上においてトランザクションカプセル２０３の返信先が規定されていない場合は、ＨＡエンジン２０６は、異変検知時にトランザクションカプセルの返信先を切り替えるための問い合わせ処理を実行しない。よって、ディストリビュータ２０４は、図１３のステップＳ１３０４からステップＳ１３０７に処理を移行し、トランザクションカプセル２０３をクライアント端末に対して送信する（図４の４０４）。
【００８８】
ここで、本実施形態に係る計算機システムでは、上記のように説明の簡単のため、トランザクション番号１のトランザクションカプセルのみが通信されていることを前提としているため、図１０（ａ）に示すノード１−１のメインキュー２０８及びノード１−２及び１−３のサブキュー２０９は、図７（ｃ）と同一となる。
【００８９】
続いて、ディストリビュータ２０４は、今回のトランザクションカプセル２０３の発信処理に関する履歴情報をメインキュー２０８内に記録する（図１３のステップＳ１３０８）。即ち、図９（ｂ）に示すように、ディストリビュータ２０４は、トランザクション番号１のキューに受信時間を登録する。
【００９０】
さらに、ディストリビュータ２０４は、メインキュー２０８内において更新したキューと同一内容のデータ（トランザクション番号１、ルール番号１００１、トランザクションの実データ、送信時間及び受信時間）を同期情報としてノード１−２、１−３に対して送信する（図４の４０５）。このデータ送信処理は、同一グループ１内の他のノード１−２、１−３との同期処理として実行される。
【００９１】
−受信処理時のノード１−２、１−３の動作−
一方、ノード１−２、１−３は、ノード１−１から上記同期情報を受信すると（図４の４０５、図１４のステップＳ１４０１）、同期プロセス２０５を起動させる。先ず、同期プロセス２０５は、同期情報と同一のトランザクション番号１のキューがノード１−１用サブキュー２０９内に既に登録されているか否かを判断する（図１４のステップＳ１４０２）。
【００９２】
ノード１−２、１−３は、送信処理時においてノード１−１からトランザクション番号１の同期情報を受信しているため、ノード１−２、１−３内のノード１−１用サブキュー２０９内には既にトランザクション番号１のキューが登録されている。従って、ノード１−２、１−３の同期プロセス２０５は、図１０（ｃ）に示すように、ノード１−１用サブキュー２０９内のトランザクション番号１のキュー内に受信時間を追加登録する（図１４のステップＳ１４０４）。
【００９３】
ノード１−２がノード２−１からトランザクション番号１のトランザクションカプセル２０３を受信すると（図４の４０２）、ノード１−２のディストリビュータ２０４は、サブキュー２０９を参照することにより、トランザクション番号１のキューがノード１−１用サブキュー２０９内に登録され、且つ当該キューに受信時間が登録されていることを確認することになる。従って、ノード１−２は、トランザクション番号１のトランザクションカプセル２０３が同一グループ１内の他のノード１−１から既に返信されているものとして、ノード２−１から受信したトランザクション番号１のトランザクションカプセル２０３を送付しないように制御する。
【００９４】
以上のように、ノード２−１から同一のトランザクションカプセル２０３を受信したノード１−１、１−２は、互いに上記発信処理の制御を行うことにより、同一トランザクション実データを含むトランザクションカプセル２０３が複数ノードから重複して発信されることを防止し、単一のトランザクションカプセルのみが下流のノード（ここでは、クライアント端末）に対して返信されるようにしている。
【００９５】
＜ＨＡ処理＞
次に、本実施形態におけるＨＡ処理について説明する。図５は、本実施形態におけるＨＡ処理の流れを示した図である。ここでは、ノード１−１によるＨＡ処理を例に挙げて説明を行う。
図１３に示すように、ノード１−１は、クライアント端末からトランザクションを受信すると、受信トランザクションに対してトランザクション番号１及びルール番号１００１を付加したトランザクションカプセル２０３を生成し、ルール表２０７を参照することにより当該トランザクションカプセル２０３の送付先をノード２−１、２−２と判断する。
【００９６】
続いて、ＨＡエンジン２０６が起動し、ノード２−１、２−２に対して稼働状態の問い合わせを行う。ここでは、ノード２−２に稼働状態の異変が検出された場合を想定する。ノード２−２の稼働状態の異変検出により、ディストリビュータ２０４は、図５の５０１に示すように、ノード２−２から上記ルール表２０７において規定されているＨＡ先にトランザクションカプセル２０３の送付先を切り替える（図１３のステップＳ１３０６）。
【００９７】
これにより、ノード１−１は、稼働状態に異変のあるノード２−２を回避してトランザクションカプセルを送信することが可能となる。このＨＡ処理は、受信処理時においても各ノードにて同様に行われる。
【００９８】
＜トランザクション紛失検出処理＞
次に、本実施形態におけるトランザクション紛失検出処理について説明する。図６は、本実施形態におけるトランザクション紛失検出処理の流れを示した図であり、図１５は、トランザクション紛失検出処理時におけるＨＡエンジン２０６の処理動作を示したフローチャートである。このトランザクション紛失検出処理は各ノードにおいて実行可能であるが、ここでもノード１−１を例に挙げて説明を行うものとする。
【００９９】
ノード１−１は、例えば定期的にトランザクションの流れに滞りが発生していないかをメインキュー２０８及びノード１−２、１−３用サブキュー２０９を参照することにより、調査する。具体的には、先ず、ノード１−１は、メインキュー２０８から送信時間が登録されているキューを検索する（ステップＳ１５０１）。次に、ステップＳ１５０１の検索処理により送信時間が登録されているキューが検索されたか否かを判断する（ステップＳ１５０２）。
【０１００】
送信時間が登録されるキューが存在しなければ、処理を終了する。送信時間が登録されているキュー（ここでは、トランザクション番号１のキューとする）がメインキュー２０８から検索された場合、検索したキューの何れか１つを対象として、当該キューに登録されている送信時間から一定時間が経過したか否かを判断する（ステップＳ１５０３）。
【０１０１】
ステップＳ１５０３の判断の結果、一定時間が経過していると判断したときは、当該キューに受信時間が登録されているか否かを判断し（ステップＳ１５０４）、一定時間を経過していないと判断したときは、ステップＳ１５０１において他に検索されたキューが存在するか否かを判断する（ステップＳ１５１２）。この判断により、他に検索されたキュー存在しなければ処理を終了し、他に検索されたキューが存在すれば、そのキューを対象にステップＳ１５０３からの処理を実行する。
【０１０２】
ステップＳ１５０４の判断の結果、当該キューに受信時間が登録されていないと判断した場合、ノード１−１は、未だ、トランザクション番号１のトランザクションカプセルをデータベースサーバ３−１から受け取り、クライアント端末に対して返信していないものとして、ノード１−２、１−３用サブキュー２０９からトランザクション番号１のキューを検索する（ステップＳ１５０５）。トランザクション番号１のキューがサブキュー２０９に存在する場合には、当該キューに受信時間が登録されているか否かを判断する（ステップＳ１５０７）。
【０１０３】
ステップＳ１５０７の判断の結果、当該キューに受信時間が登録されていなければ、ノード１−２、１−３もトランザクション番号１のトランザクションカプセルをデータベースサーバ３−１から受け取り、クライアント端末に対して返信していないものとして、トランザクション処理の滞りを検知する。
【０１０４】
ノード１−１は、トランザクション処理の滞りを検知すると、例えばグループ２内のノード２−１〜２−３に対してエラーメッセージの有無を問い合わせる（図６の６０１、図１５のステップＳ１５０８）。
【０１０５】
また、ステップＳ１５０６において、トランザクション番号１のキューがサブキュー２０９内に存在しないと判断した場合も、同じくトランザクション処理の滞りを検知し、グループ２内に対する同様のエラーメッセージに関する問い合わせを行う（図６の６０１、図１５のステップＳ１５０８）。
【０１０６】
ステップＳ１５０８の問い合わせの結果、何れかのノードからエラーメッセージが検出された場合、トランザクション番号１のトランザクションカプセル２０３の再発行を要求する。
【０１０７】
ここで、エラーメッセージは、そのメッセージを発しているノードがトランザクションを紛失する等を理由に、返信処理を失敗した場合に当該ノード内において発せられるメッセージである。今回、ノード１−１がノード２−１から上記エラーメッセージを検出したと仮定すると、ノード２−１より更に前段（上流）のノード（本実施形態では、データベースサーバ３−１）にトランザクション番号１のトランザクションカプセルを再発行させるよう、ノード２−１に対して要求する（図１５のステップＳ１５１０、図６の６０２）。
【０１０８】
ここで、ステップＳ１５１０においては、エラーメッセージの内容により、トランザクションカプセル２０３を未だ返信しておらず、且つ、トランザクションカプセル２０３がノード２−１内に保持されていると判断される場合は、ノード２−１に対してトランザクションカプセル２０３の再発行を要求する。また、エラーメッセージの内容により、トランザクションカプセル２０３が未だ返信されておらず、且つ、ノード２−１内においてトランザクションカプセル２０３は紛失されていると判断される場合は、ノード２−１より更に前段のノード３−１（データベースサーバ３−１）に対してノード２−１が代わってトランザクションカプセル２０３の再発行を要求するように、ノード１０１がノード２−１に対して要求する。
【０１０９】
一方、ステップＳ１５０９において、エラーメッセージが検出されなかった場合は、ノード１−１は、グループ２の何れかノードの対し、グループ２より更に前段（上流）のグループ３（データベースサーバ３−１）にステップＳ１５０８の問い合わせを行うよう要求する（図１５のステップＳ１５１３）。
【０１１０】
本実施形態では、グループ１からグループ３までのシステム構成を対象としているが、更に多くのグループから成るシステム構成を対象とすれば、グループ３にエラーメッセージが検出された場合には、グループ４に属するノードに対してトランザクションカプセル２０３の再発行を要求することができる。このように、前段のグループに順次問い合わせ処理を代行させていくことにより、トランザクションを紛失したノードの一つ前段のグループから当該トランザクションを再発行させ、トランザクション処理を復旧させることが可能となる。
【０１１１】
また、グループ１からグループ３までのシステム構成であっても、例えばグループ３のノードにおいてエラーメッセージが検出された場合には、送信処理時のデータ発信先にまで遡ってグループ２のノードに対してトランザクションカプセルを再発行させることが可能である。
【０１１２】
ステップＳ１５１０又はＳ１５１３の処理後は、ステップＳ１５０１において他に検索されたキューが存在するか否かを判断する（ステップＳ１５１２）。この判断により、他に検索されたキュー存在しなければ処理を終了し、他に検索されたキューが存在すれば、そのキューを対象にステップＳ１５０３からの処理を実行する。
【０１１３】
また、トランザクションの紛失を検出したノード２０１は、その旨をシステム管理者に通知するための警告音を発することや、表示パネル上で警告表示を行うことも可能である。
【０１１４】
＜ノード２０１のハードウェア構成＞
図１６は、上記第１の実施形態並びに後述する第２及び第３の実施形態に係るノード２０１のハードウェア構成の具体例を示した図であり、図１６に示すように、本発明に係るノード２０１はＰＣ（パーソナル・コンピュータ）等の比較的安価な計算機に適用可能である。
【０１１５】
１６００は、ユニット間のデータ並びに制御情報を伝送する伝送路であるシステムバスである。ノード２０１の筐体内に存在する各ユニットはシステムバス１６００によって接続される。以下、各ユニットについて説明する。中央処理装置（以下、ＣＰＵという）１６０１は、ＲＯＭ１６０３から読み出されるプログラムによって本ノード２０１の各種制御および演算処理を行い、図２の発信コントロールエンジン２０２、ディストリビュータ２０４、同期プロセス２０５及びＨＡエンジン２０６に相当する機能を果たす。
【０１１６】
ランダムアクセスメモリ（ＲＡＭ）１６０２は、ＣＰＵ１６０１の主メモリとして、また実行プログラムの格納領域、プログラムの実行エリアならびにデータエリアとして機能する他、図２のルール表２０７、メインキュー２０８、サブキュー２０９を記録する。読み取り専用メモリ（以下、ＲＯＭという）１６０３は、ノード２０１内の各ユニットの制御を行う基本プログラム、すなわちＢＩＯＳ（Basic Input/Output System）や、本ノー
ド２０１を稼働するために必要な情報などを記憶する。
【０１１７】
データ入出力を行うユニット群（以下、単にＦＤＤという）１６０４は、フレキシブルディスクやＣＤ−ＲＯＭなど、取り外し可能な外部記憶媒体のデータ入出力を行う。ネットワークインタフェース（以下、単にＮＥＴＩＦという）１６０５は、後述するモデム１６０６を介して外部ネットワークに接続し、または後述するＬＡＮ１６０７に接続する。ＮＥＴＩＦ１６０５は、ネットワークを介してノード２０１間のデータ転送を行うための制御や接続状況の診断を行う。
【０１１８】
モデム１６０６は、外部ネットワークと本ノード２０１とを電話回線を介して接続するための機器であって、モデムやＩＳＤＮ接続用のターミナルアダプタを含む。ＬＡＮ１６０７は、イーサネット（Ｒ）などのネットワークシステムである。本実施形態に係るノード２０１は、モデム１６０６又はＬＡＮ１６０７上に接続されているルータやゲートウェイ等の通信機器を用いて外部ネットワークに接続し、外部装置とのデータの送受信を可能とする。
【０１１９】
ビデオＲＡＭ（以下、ＶＲＡＭという）１６０８は、後述するＣＲＴ２０９に表示するために展開された画像データを保持する。ＣＲＴ１６０９は、ディスプレイなどの表示装置である。
【０１２０】
キーボードコントローラ（ＫＢＣ）１６１０は、キーボード（ＫＢ）１６１１およびマウス１６１２からの入力信号を制御する。ＫＢ１６１１は、操作者がノード２０１に対して入力操作を行うためのキーボードである。マウス１６１２は、同じく操作者がノード２０１に対して入力操作を行うためのポインティングデバイスである。
【０１２１】
ハードディスクドライブ（ＨＤＤ）１６１３は、アプリケーションプログラムや各種データなどの保存に用いられる。図２のメインキュー２０８及びサブキュー２０９は、このハードディスクドライブ１６１３に記録しても良い。アプリケーションプログラムとは、例えば図１２〜１５のフローチャートに示される処理をノード２１０に実行させるためのソフトウェアプログラムのことをいう。外部ネットワーク等のデータの伝送媒体、ＣＤ−ＲＯＭ等のデータの記録媒体等を介してノード２１０がアプリケーションプログラムを得る構成も本発明の技術的思想の範疇に含まれる。
【０１２２】
コントローラ（ＩＯＣ）１６１４は、外部に接続されるプリンタ（ＰＲＴ）１６１５やスキャナ１６１６等に対する情報の入出力制御を行うことを可能とする。また本図には示していないが、ＩＯＣ１６１４は、プリンタ１６１５やスキャナ１６１６以外に、例えば、同様に外部に接続されるＨＤＤやＭＯドライブ等と情報の入出力制御を行うことが可能である。
【０１２３】
次に本発明の第２の実施形態を説明する。
第１の実施形態では、各ノードは各々属するグループが予め設定されている例を示したが、例えば、図１において、グループ２に属するノード２−１、２−２両方が故障などしたときにはグループ１からトランザクションカプセル２０３を送信出来なくなってしまうことがある。そこで、第２の実施形態ではグループ１に属しているノード１−１、１−２のうち何れか１つのノードをグループ２に移行してあたかもグループ２にはじめからノードが３つ属していたかのように処理を行うことができるようにする。つまり、ノードが属するグループを動的に変更できるように構成したことを特徴とするものである。仮にノード１−２をグループ２に移行した場合、ノード１−１から送信されたトランザクションカプセル２０３はノード１−２が受信し、本来ノード２−１、２−２が行うべき処理をノード１−２が行う。
【０１２４】
図１７、図１８は第２の実施形態を説明するための図である。図１７（ａ）では、図１と同一のシステム中のグループ２にノード２−３（１−２）が追加されている。なお、図１７は分りやすいようにトランザクション１（ＴＲ１）のみ記載している。このノード２−３（１−２）は通常はグループ１においてノード１−２として機能しているものであるが、図１７（ｂ）に示すように、グループ２のノード２−１とノード２−２両方が異常となったような時に、ノード２−３として機能するように設定されている。このような機能を果たすために図１８のルール番号１００２−２では、"グループ１に属するプロセス番号２"つまりノード１−２は、予備的な機能としてカッコ書きで"グループ２に属するプロセス番号３" つまりノード２−３としても設定されており、且つルール番号１００１のＨＡ先としてこのノード２−３（１−２）が設定されている。なお、第１の実施形態で説明した同期処理については説明を省略しているが、第２の実施形態でも同様に処理できる。
【０１２５】
このように、第２の実施形態では、グループ２のノード２−１、２−２が異常となった場合、ノード１−１から受信すべきトランザクションカプセル２０３は、グループ１に属するノード１−２が、グループ２のノード２−３として移行して受信し、データベースサーバ３−１にトランザクションカプセル２０３を送信する。そして受信処理の際は、データベースサーバ３−１からのトランザクションカプセル２０３は再びノード２−３（１−２）が受信し、ノード１−１に送信するようになっている。
【０１２６】
図１９は第２の実施形態の別の例を説明するための図である。図１９（ａ）では、図１７と同一のシステム中のグループ１にノード１−３が追加されている。この例でもグループ１に属するノード１−２がグループ２に移行するものであり、グループ２のノード２−１、２−２が異常となった場合、ノード１−１から受信すべきトランザクションカプセル２０３は、グループ１に属するノード１−２がグループ２のノード２−３として移行して受信し、データベースサーバ３−１にトランザクションカプセル２０３を送信する。
【０１２７】
受信処理の際、図１９（ｂ）に示すように、データベースサーバ３−１からのトランザクションカプセル２０３はノード２−３（１−２）が受信し、ノード１−１とノード１−３に送信するようにしている。
【０１２８】
第２の実施形態では、グループ１に属するノードがグループ２に移行する例で示したが、移行は必ずしもこのような方向には限るものではなく、グループ２に属するノードがグループ１に移行しても良い。また、移行するノードは１つである場合で説明したが、１つに限らず複数のノードを移行してもよい。
【０１２９】
以上説明したように、第２の実施形態に係る計算機システムでは、ノードは必ずしも固定的にグループに属するように設定する必要はなく、動的にグループを移行して処理をすることができる。これによってノード障害などによる処理の手戻りや処理の滞りに対する回避により柔軟に対応できるようになる。
【０１３０】
次に本発明の第３の実施形態を説明する。
第１の実施形態では、各ノードは各々１つのグループに属していたが、ノードは複数のグループに属するようにしても良い。図２０−１及び図２０−２は第３の実施形態を説明するための図である。図２０−１（ａ）では、図１と同一のシステム中のグループ１にノード１−３（２−３）と、グループ２にノード２−３（１−３）が追加されている。図２１のルール表を参照すると、ルール番号１００３としてノード１−３が設定されており、ルール番号２００３としてノード２−３が設定されている。ノード１−３は、予備的な機能としてカッコ書きで"グループ２に属するプロセス番号３"としても設定されており、且つノード２−３は、予備的な機能としてカッコ書きで"グループ１に属するプロセス番号３"としても設定されている。つまりこのノード１−３（２−３）は、複数のグループに属したノードとなっており、状況によってノード１−３として機能したりノード２−３として機能できるようになっていることを特徴としている。そしてルール番号１００１と１００２のＨＡ先としてこのノード２−３（１−３）が、同様にルール番号２００１と２００２のＨＡ先としてノード１−３（２−３）が設定されている。
【０１３１】
図２０−１（ｂ）では、グループ２のノード２−１とノード２−２に異常が発生した場合のＴＲ１の処理を表したものである。この場合、ノード１−３（２−３）はノード２−１、２−２のＨＡ先として設定されているため、グループ２のノード２−３（１−３）として機能する。つまり、ノード１−１からトランザクションカプセル２０３を受信したノード２−３（１−３）はルール番号２００３に従ってデータベースサーバ３−１へトランザクションカプセル２０３を送信し、データベースサーバ３−１から受信したトランザクションカプセル２０３をノード１−１と１−２に送信するように機能する。
【０１３２】
また、図２０−２ではグループ１のノード１−２と、グループ２のノード２−１とに異常が発生した場合のＴＲ１の処理を表したものである。この場合、ノード１−１から送信されたトランザクションカプセル２０３はルール番号１００１に従って、ノード２−２に到達し、ノード２−２はルール番号２００２に従ってデータベースサーバ３−１へトランザクションカプセル２０３を送信する。逆にデータベースサーバ３−１からトランザクションカプセル２０３を受信したノード２−２は、ルール番号２００２に従って、ノード１−１とノード１−２に送信しようとするが、ノード１−２が異常であるため、ＨＡ先であるノード１−３（２−３）へ送信する。
【０１３３】
以上説明したように、第３の実施形態に係る計算機システムでは、ノードは必ずしも１つのグループにだけ属する必要はなく、複数のグループに属することが許される。なお、本実施形態では１つのノードが２つのグループに属する例を示したが、３つ以上のグループに属するようにしても良い。そして本実施形態も、他の実施形態と同様に同期処理を施すことができる。
【０１３４】
以上のように、各ノードは、属するグループを動的に変更できたり、一度に複数のグループに属することもできるので、この２つの機能を併せることで通常は図１のようにグループ１にノード１−１、１−２が、グループ２にノード２−１、２−２がそれぞれ属しているが、グループ２のノード２−１、２−２の両方が故障などしてグループ１からトランザクションカプセル２０３を送信することが出来なくなった時に、グループ１の何れかのノードを動的にグループ２にも属するように変更するという柔軟な対応も可能となる。
【図面の簡単な説明】
【０１３５】
【図１】本発明の第１の実施形態に係る計算機システムの一構成例を示した図である。
【図２】本発明の一実施形態に係るノードの機能構成を模式的に示した図である。
【図３】送信処理時におけるノード間のトランザクション処理の流れを示した図である。
【図４】受信処理時におけるノード間のトランザクション処理の流れを示した図である。
【図５】ＨＡ処理の流れを示した図である。
【図６】トランザクション紛失検出処理の流れを示した図である。
【図７】ノード１−１のメインキュー及びノード１−２（１−３）のノード１−１用サブキューの構成を模式的に示した図である。
【図８】ノード２−１のメインキュー及びノード２−２（２−３）のノード２−１用サブキューの構成を模式的に示した図である。
【図９】ノード２−１のメインキュー及びノード２−２（２−３）のノード２−１用サブキューの構成を模式的に示した図である。
【図１０】ノード１−１のメインキュー及びノード１−２（１−３）のノード１−１用サブキューの構成を模式的に示した図である。
【図１１】本発明の第１の実施形態に係るルール表を概念的に示した図である。
【図１２】本発明の第１の実施形態に係る発信コントロールエンジンの処理動作を示したフローチャートである。
【図１３】本発明の第１の実施形態に係るディストリビュータの処理動作を示したフローチャートである。
【図１４】本発明の第１の実施形態に係る同期プロセスの処理動作を示したフローチャートである。
【図１５】本発明の第１の実施形態に係るＨＡエンジンのトランザクション紛失検出処理時の処理動作を示したフローチャートである。
【図１６】本発明の一実施形態に係るノードのハードウェア構成の具体例を示した図である。
【図１７】本発明の第２の実施形態を説明するための図である。
【図１８】本発明の第２の実施形態におけるルール表の概念的に示す図である。
【図１９】本発明の第２の実施形態の別の例を説明するための図である。
【図２０−１】本発明の第３の実施形態を説明するための図である。
【図２０−２】本発明の第３の実施形態を説明するための図である。
【図２１】本発明の第３の実施形態におけるルール表を概念的に示す図である。
【符号の説明】
【０１３６】
２０１  ノード
２０２  発信コントロールエンジン
２０３  トランザクションカプセル
２０４  ディストリビュータ
２０５  同期プロセス
２０６  ＨＡエンジン
２０７  ルール表
２０８  メインキュー
２０９  サブキュー
【図１】
2005050298.tif 000003
【図２】
2005050298.tif 000004
【図３】
2005050298.tif 000005
【図４】
2005050298.tif 000006
【図５】
2005050298.tif 000007
【図６】
2005050298.tif 000008
【図７】
2005050298.tif 000009
【図８】
2005050298.tif 000010
【図９】
2005050298.tif 000011
【図１０】
2005050298.tif 000012
【図１１】
2005050298.tif 000013
【図１２】
2005050298.tif 000014
【図１３】
2005050298.tif 000015
【図１４】
2005050298.tif 000016
【図１５】
2005050298.tif 000017
【図１６】
2005050298.tif 000018
【図１７】
2005050298.tif 000019
【図１８】
2005050298.tif 000020
【図１９】
2005050298.tif 000021
【図２０−１】
2005050298.tif 000022
【図２０−２】
2005050298.tif 000023
【図２１】
2005050298.tif 000024