(57)【要約】【課題】トランザクション処理システムにおいてトランザクション障害の回復を行う場合に、回復処理時間の短縮および負荷の低減を図る。【解決手段】各ＴＰモニタ１０１〜１０３は、トランザクション実行状態に変化があるたびに、そのトランザクション実行状態および負荷状態をトランザクション情報管理サーバ３０に送信する。ＴＰモニタ１０１は、実行中のトランザクションに障害が発生した場合、ノード２１の負荷状態が高いときは、トランザクション情報管理サーバ３０に回復処理転送要求電文を送信する。トランザクション情報管理サーバ３０では、回復処理転送要求電文を受信すると、システム負荷情報管理部２３１が、最も負荷の低いノード２２に回復処理依頼電文を送信する。ＴＰモニタ１０２は、回復処理依頼電文を受信すると、トランザクション履歴情報管理部２０１からトランザクション履歴情報を取得し、トランザクションの回復処理を実施する。【選択図】図２
2007156590.tif 000002
【特許請求の範囲】
【請求項１】
他からの要求を受けてトランザクション処理を行う２以上の計算機と、
前記計算機のトランザクション履歴および負荷を管理する情報管理サーバと、
前記トランザクション処理のリソースデータを格納するリソース管理サーバと、
がネットワークを介して接続されて構成される計算機システムに用いられる、トランザクション障害を回復する障害回復方法であって、
前記計算機が、トランザクション実行状態が変化した場合に、自身の負荷状態を計算し、前記トランザクション実行状態および前記負荷状態を前記情報管理サーバに送信するステップと、
前記情報管理サーバが、前記計算機から受信したトランザクション実行状態および負荷状態を、自身に備えられた記憶部に格納するステップと、
前記計算機が、前記トランザクション障害の発生を検出した場合に、自身の負荷状態を計算し、その負荷状態が所定の閾値以上であるときに、回復処理要求メッセージを前記情報管理サーバに送信するステップと、
前記情報管理サーバが、前記計算機から前記回復処理要求メッセージを受信した場合に、前記記憶部を参照して前記負荷状態が低い計算機を選択し、その選択した計算機に回復処理依頼メッセージを送信するステップと、
前記計算機が、前記情報管理サーバから前記回復処理依頼メッセージを受信した場合に、前記情報管理サーバから前記トランザクション実行状態の履歴であるトランザクション履歴情報を取得し、そのトランザクション履歴情報に従って、前記リソース管理サーバに格納されたリソースデータを基に前記トランザクション障害の回復処理を行うステップと、
を含むことを特徴とする障害回復方法。
【請求項２】
他からの要求を受けてトランザクション処理を行うとともに、自身のトランザクション履歴および負荷を管理する２以上の計算機と、
前記トランザクション処理のリソースデータを格納するリソース管理サーバと、
がネットワークを介して接続されて構成される計算機システムに用いられる、トランザクション障害を回復する障害回復方法であって、
前記計算機が、所定時間ごとに自身の負荷状態を計算し、その負荷状態が前回の計算結果より大きく変動した場合に、前記負荷状態を自身に備えられた記憶部に格納するとともに、前記負荷状態を前記ネットワークに接続された他の計算機に送信するステップと、
前記他の計算機が、前記計算機から受信した負荷状態を、自身に備えられた記憶部に格納するステップと、
前記計算機が、前記トランザクション障害の発生を検出した場合に、自身の負荷状態を計算し、その負荷状態が所定の閾値以上であるときに、前記記憶部を参照して前記負荷状態が低い計算機を選択し、その選択した計算機にトランザクション実行状態の履歴であるトランザクション履歴情報を含む回復処理依頼メッセージを送信するステップと、
前記計算機が、他の計算機から前記回復処理依頼メッセージを受信した場合に、前記回復処理依頼メッセージに含まれるトランザクション履歴情報に従って、前記リソース管理サーバに格納されたリソースデータを基に前記トランザクション障害の回復処理を行うステップと、
を含むことを特徴とする障害回復方法。
【請求項３】
前記計算機システムは、実行系計算機および待機系計算機を備えており、
前記実行系計算機で発生したトランザクション障害の回復処理を行う前記待機系計算機は、前記計算機が前記トランザクション障害の発生を検出した場合のステップに相当する処理を行う
ことを特徴とする請求項１または請求項２に記載の障害回復方法。
【請求項４】
他からの要求を受けてトランザクション処理を行う２以上の計算機にネットワークを介して接続され、前記計算機のトランザクション履歴および負荷を管理する情報管理サーバであって、
トランザクション履歴情報テーブルおよび負荷情報テーブルを記憶する記憶部と、
前記計算機からトランザクション実行状態を受信した場合に、その受信したトランザクション実行状態を前記トランザクション履歴情報テーブルに格納するとともに、前記計算機からの要求に応じて前記トランザクション履歴情報テーブルを参照して、その要求に合うトランザクション履歴情報を返信するトランザクション履歴情報管理部と、
前記計算機から負荷状態を受信した場合に、その受信した負荷状態を前記負荷情報テーブルに格納するとともに、前記計算機から回復処理要求メッセージを受信した場合に、前記負荷情報テーブルを参照して前記負荷状態が低い計算機を選択し、その選択した計算機に回復処理依頼メッセージを送信する負荷情報管理部と、
を備えることを特徴とする情報管理サーバ。
【請求項５】
他からの要求を受けてトランザクション処理を行うとともに、自身のトランザクション履歴および負荷を管理する２以上の計算機と、
前記トランザクション処理のリソースデータを格納するリソース管理サーバと、
がネットワークを介して接続されて構成される計算機システムであって、
前記計算機は、
トランザクション履歴情報テーブルおよび負荷情報テーブルを記憶する記憶部と、
所定時間ごとに自身の負荷状態を計算し、その負荷状態が前回の計算結果より大きく変動した場合に前記負荷状態の格納を要求し、前記トランザクション障害の発生を検出した場合に自身の負荷状態を計算し、その負荷状態が所定の閾値以上であるときに回復処理の転送を要求し、他の計算機から回復処理依頼メッセージを受信した場合に前記回復処理依頼メッセージに含まれるトランザクション実行状態の履歴であるトランザクション履歴情報に従って、前記リソース管理サーバに格納されたリソースデータを基に前記トランザクション障害の回復処理を行うトランザクション処理モニタと、
前記トランザクション処理モニタから前記負荷状態の格納を要求された場合に前記負荷状態を前記負荷情報テーブルに格納し、前記負荷状態を前記ネットワークに接続された他の計算機に送信し、他の計算機から前記負荷状態を受信した場合に前記負荷状態を前記負荷情報テーブルに格納し、前記トランザクション処理モニタから回復処理の転送を要求された場合に前記負荷情報テーブルを参照して前記負荷状態が低い計算機を選択し、その選択した計算機に前記トランザクション履歴情報を含む回復処理依頼メッセージを送信する負荷情報管理部と、
前記トランザクション実行状態を前記トランザクション履歴情報テーブルに格納するとともに、前記負荷情報管理部の要求に応じて前記トランザクション履歴情報テーブルを参照し、その要求に合うトランザクション履歴情報を渡すトランザクション履歴情報管理部と、
を備えることを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクション処理を行うコンピュータシステム技術に関するものであり、特に障害回復処理を分散することにより障害回復の効率化を図る障害回復方法に係る。
【背景技術】
【０００２】
分散トランザクション処理システムでは、高可用性を実現するために計算機システムの二重化を行い、実行系計算機に重大な障害が生じた場合は、待機系計算機に系切り替えを行っていた（特許文献１参照）。
【０００３】
図９は、従来技術によるシステム障害回復方法の例を示す図である。分散トランザクション処理システム１において、実行系計算機１１のＴＰモニタ（Transaction Processing Monitor、トランザクション処理モニタ）１０１は、実行中のトランザクション情報をトランザクション履歴情報ファイル２０１に格納する。ＴＰモニタ１０１が実行しているトランザクションに障害が発生した場合、待機系計算機１２のＴＰモニタ１０２に系切り替えを行う。この場合、ＴＰモニタ１０２は、トランザクションの実行状態をトランザクション履歴情報ファイル２０１から取得し、全トランザクションの回復を行う。以下、系切り替えによってシステム全体の回復処理を行うことを全面回復処理と呼ぶ。また、一つのトランザクションに障害が発生するなどの部分的な障害の場合、その実行系計算機１１内でトランザクションの回復処理を行っていた。なお、図９において、ＴＰモニタ１０１内の実線の長方形は実行中のスレッドを示し、ＴＰモニタ１０２内の破線の長方形は待機中のスレッドを示す（他の図も同様）。また、リソースマネジャ４０は、ネットワーク２を介して実行系計算機１１および待機系計算機１２に接続され、ＴＰモニタ１０１、１０２のトランザクション処理の各種リソース（処理中データなどのリソースデータ）をデータベース３０１に格納する。
【０００４】
図１０は、従来技術によるトランザクション障害回復方法の例を示す図である。分散トランザクション処理システム１において、計算機１３のＴＰモニタ１０３は、実行中のトランザクション情報をトランザクション履歴情報ファイル２０１に格納する。実行中のトランザクションに障害が発生した場合、トランザクションの履歴情報をトランザクション履歴情報ファイル２０１から取得し、その計算機１３内でトランザクションの回復処理を行う。以下、トランザクション単位で回復処理を行うことを部分回復処理と呼ぶ。
【特許文献１】特開平８−２２１２８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、マルチスレッドによりスレッドごとにユーザサービスを同時に処理する分散トランザクション処理システムにおいて、トランザクションの全面回復処理は、一つの計算機で全トランザクションの回復処理を行うため、障害回復に時間がかかるという問題がある。また、システム負荷が高い場合にトランザクションの部分回復処理を同一計算機内で行うとき、トランザクション回復によるリソース消費で他のトランザクション処理性能に影響が生じるという問題がある。
【０００６】
そこで、本発明は、前記問題に鑑み、トランザクション処理システムにおいてトランザクション障害の回復を行う場合に、回復処理時間の短縮および負荷の低減を図る手段を提供することを課題とする。
【課題を解決するための手段】
【０００７】
前記課題を解決する本発明は、他からの要求を受けてトランザクション処理を行う２以上の計算機と、計算機のトランザクション履歴および負荷を管理する情報管理サーバと、トランザクション処理のリソースデータを格納するリソース管理サーバとがネットワークを介して接続されて構成される計算機システムに用いられる、トランザクション障害を回復する障害回復方法であって、計算機が、トランザクション実行状態が変化した場合に、自身の負荷状態を計算し、トランザクション実行状態および負荷状態を情報管理サーバに送信するステップと、情報管理サーバが、計算機から受信したトランザクション実行状態および負荷状態を、自身に備えられた記憶部に格納するステップと、計算機が、トランザクション障害の発生を検出した場合に、自身の負荷状態を計算し、その負荷状態が所定の閾値以上であるときに、回復処理要求メッセージを情報管理サーバに送信するステップと、情報管理サーバが、計算機から回復処理要求メッセージを受信した場合に、記憶部を参照して負荷状態が低い計算機を選択し、その選択した計算機に回復処理依頼メッセージを送信するステップと、計算機が、情報管理サーバから回復処理依頼メッセージを受信した場合に、情報管理サーバからトランザクション実行状態の履歴であるトランザクション履歴情報を取得し、そのトランザクション履歴情報に従って、リソース管理サーバに格納されたリソースデータを基にトランザクション障害の回復処理を行うステップとを含むことを特徴とする。なお、本発明は、他の障害回復方法、情報管理サーバおよび計算機システムを含む。
【発明の効果】
【０００８】
本発明によれば、トランザクション処理システムにおいてトランザクション障害の回復を行う場合に、回復処理時間の短縮および負荷の低減を図ることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１０】
≪第１の実施の形態≫
最初に、本発明の第１の実施の形態を説明する。図１は、第１の実施の形態に係るハードウェアの構成を示す図である。計算機５０１は、他装置（ユーザ端末や他の計算機など）からの要求を受けてトランザクション処理を行う計算機であり、メモリ５１１、ハードディスク装置５２１、ＣＰＵ（Central Processing Unit）５４１、ディスプレイ５５１、キーボード５６１、マウス５７１およびネットワークインタフェースカード（Network Interface Card、以下ＮＩＣという）５８１を含むハードウェア資源がバス５３１を介して接続されて構成され、ＮＩＣ５８１によりネットワークを介して接続されたユーザ端末や他の計算機と通信を行う。
【００１１】
メモリ５１１には、ＴＰモニタ（トランザクション処理モニタ）１００、ユーザサービスプログラム１１０およびオペレーティングシステム１２１を含むプログラムが格納されており、それらのプログラムをＣＰＵ５４１が実行することによって、計算機５０１の機能が実現される。ＴＰモニタ１００は、オペレーティングシステム１２１上で動作し、他装置からの要求を受けてトランザクション処理を制御する。その際、要求の内容に応じてユーザサービスプログラム１１０にトランザクション処理を構成する個々の処理を実行させる。なお、第１の実施の形態において、ＴＰモニタ１００を含む計算機５０１の構成をノードと呼ぶ。
【００１２】
ハードディスク装置５２１は、メモリ５１１内の各プログラムが動作するのに必要な制御情報（図示せず）を格納する不揮発性記憶装置である（他のハードディスク装置も同様）。ＣＰＵ５４１は、メモリ５１１に格納された各プログラムを実行する処理装置である。ディスプレイ５５１、キーボード５６１およびマウス５７１は、計算機５０１の運用管理者などが用いる端末装置である。ＮＩＣ５８１は、計算機５０１をネットワーク経由でユーザ端末や他の計算機に接続するアダプタである。
【００１３】
サーバ５０２は、計算機５０１のトランザクション履歴および負荷を管理する情報管理サーバであり、計算機５０１と同様のハードウェア資源（メモリ５１２、ハードディスク装置５２２、バス５３２、ＣＰＵ５４２、ディスプレイ５５２、キーボード５６２、マウス５７２およびＮＩＣ５８２）を備える。メモリ（記憶部）５１２には、オペレーティングシステム１２２、トランザクション履歴情報テーブル２００、システム負荷情報テーブル（負荷情報テーブル）２１０、トランザクション履歴情報管理部２２０およびシステム負荷情報管理部（負荷情報管理部）２３０が格納される。また、ハードディスク装置５２２には、トランザクション履歴情報ファイル２４０およびシステム負荷情報ファイル２５０が格納される。そして、ＣＰＵ５４２が各プログラムを実行することにより、トランザクション履歴情報管理部２２０およびシステム負荷情報管理部２３０がオペレーティングシステム１２２上で動作する。
【００１４】
トランザクション履歴情報管理部２２０は、トランザクション実行状態や使用リソースマネジャ情報をトランザクション履歴情報テーブル２００で管理し、トランザクション履歴情報ファイル２４０に保存する。システム負荷情報管理部２３０は、各ノードの負荷状態や使用リソースマネジャ情報をシステム負荷情報テーブル２１０で管理し、システム負荷情報ファイル２５０に保存する。なお、サーバ５０２の構成をトランザクション情報管理サーバと呼ぶ。
【００１５】
図２は、第１の実施の形態に係る分散トランザクション処理システムの構築例を示す図である。分散トランザクション処理システム（計算機システム）１は、ノード（計算機）２１〜２３、トランザクション情報管理サーバ（情報管理サーバ）３０およびリソースマネジャ４０がネットワーク２を介して接続されて構成される。
【００１６】
ノード２１〜２３は、ＴＰモニタ１０１〜１０３をそれぞれ含む計算機である。トランザクション情報管理サーバ３０は、トランザクション履歴情報テーブル２０１を管理するトランザクション履歴情報管理部２２１と、システム負荷情報テーブル２１１を管理するシステム負荷情報管理部２３１とを含んで構成される。リソースマネジャ４０は、ＴＰモニタ１０１〜１０３のトランザクション処理の各種リソース（処理中データなどのリソースデータ）をデータベース３０１に格納する。なお、リソースマネジャ４０は、図示したようにノード２１〜２３とは別装置（リソース管理サーバ）であってもよいし、そのリソースマネジャ４０の機能を実現するソフトウェアをノード２１〜２３のいずれかにインストールすることによって構成してもよい。
【００１７】
以下、分散トランザクション処理システム１の処理概要を説明する。ＴＰモニタ１０１〜１０３は、トランザクション実行状態に変化があるたびに、そのトランザクション実行状態および負荷状態をトランザクション情報管理サーバ３０に送信する。
【００１８】
ＴＰモニタ１０１が実行中のトランザクションに障害が発生した場合、ノード２１の負荷状態が高いときは、ＴＰモニタ１０１がトランザクション情報管理サーバ３０に回復処理転送要求電文を送信する。トランザクション情報管理サーバ３０では、ＴＰモニタ１０１から回復処理転送要求電文を受信すると、システム負荷情報管理部２３１が各ノード２１〜２３の負荷状態をチェックし、最も負荷の低いノード２２（ＴＰモニタ１０２）に対し、回復処理依頼電文を送信する。ＴＰモニタ１０２は、回復処理依頼電文を受信すると、トランザクション履歴情報管理部２０１からトランザクション履歴情報を取得し、トランザクションの回復処理を実施する。
【００１９】
図３は、トランザクション実行状態が変化したときの処理を示すフローチャートである。この一連の処理は、図２に示すシステム構成におけるノード２１のＴＰモニタ１０１のトランザクション実行状態が変化した場合の処理を示している。ここで、トランザクション実行状態には、トランザクション開始、二層コミットにおける一層目の処理が完了、トランザクション完了、ロールバック決着、ヒューリスティック決着決定などがある。また、トランザクション実行状態の変化とは、その状態間の遷移があったことをいう。
【００２０】
図３に沿って処理の説明を行う。ＴＰモニタ１０１は、定期的にトランザクション実行状態をチェックし、その状態が変化した場合には（ステップＳ１０１のＹｅｓ）、トランザクション実行待ちのサービス数および実行中のトランザクション数からノード２１の負荷状態Ｍを計算する（ステップＳ１０２）。その計算式を以下の式１に示す。
【００２１】
負荷状態Ｍ  ＝  Ｍ１×実行待ちサービス数＋Ｍ２×実行中トランザクション数  （Ｍ１、Ｍ２：重み付け定数）・・・式１
【００２２】
次に、ＴＰモニタ１０１は、トランザクション実行状態、使用リソースマネジャ情報および負荷状態Ｍをトランザクション情報管理サーバ３０に電文送信する（ステップＳ１０３）。使用リソースマネジャ情報とは、当該トランザクションの処理に係るリソースマネジャを特定するものであって、ここでは「リソースマネジャ４０」である。トランザクション情報管理サーバ３０では、トランザクション履歴情報管理部２２１が、ＴＰモニタ１０１から受信したトランザクション実行状態および使用リソースマネジャ情報をトランザクション履歴情報テーブル２０１に格納する（ステップＳ１１１）。また、システム負荷情報管理部２３１が、ＴＰモニタ１０１から受信した使用リソースマネジャ情報および負荷状態Ｍをシステム負荷情報テーブル２１１に格納する（ステップＳ１２１）。
【００２３】
以上の一連の処理により、トランザクション情報管理サーバ３０は、各ノード内のＴＰモニタのトランザクション履歴情報および負荷状態を管理する。なお、ＴＰモニタ１０１がトランザクション実行状態をチェックして、その状態が変化していなかった場合には（ステップＳ１０１のＮｏ）、一旦チェックの処理を終了して、次のタイミングを待つこととする。
【００２４】
図４は、トランザクション回復を行う場合の処理を示すフローチャートである。この一連の処理は、図２に示すシステム構成におけるＴＰモニタ１０１で実行中のトランザクションに障害が発生した場合の処理を示している。
【００２５】
障害元ノード２１のＴＰモニタ１０１は、トランザクションに障害が発生した場合（ステップＳ２０１）、自身のノード２１の負荷状態Ｍを計算する（ステップＳ２０２）。負荷状態Ｍの計算は、式１によって行う。トランザクション回復の処理では、他のＴＰモニタに回復させるときには転送処理によるオーバーヘッドがかかるため、負荷状態Ｍをチェックして（ステップＳ２０３）、負荷状態Ｍが所定の閾値より小さい場合には（ステップＳ２０３のＮｏ）、転送処理を行わず同一ノード内でトランザクション回復処理（ＴＰモニタ１０２と同様の処理）を行う（ステップＳ２０５）。システム負荷が高く、負荷状態Ｍが所定の閾値以上である場合には（ステップＳ２０３のＹｅｓ）、回復処理転送要求電文（回復処理要求メッセージ）をトランザクション情報管理サーバ３０に送信する（ステップＳ２０４）。
【００２６】
トランザクション情報管理サーバ３０では、システム負荷情報管理部２３１が、ＴＰモニタ１０１から回復処理転送要求電文を受信すると、システム負荷情報テーブル２１１を参照して負荷状態Ｍが最も低いノードを選択する（ステップＳ２１１）。そして、その選択したノードに対して回復処理依頼電文（回復処理依頼メッセージ）を送信する（ステップＳ２１２）。
【００２７】
回復先ノード２２のＴＰモニタ１０２は、トランザクション情報管理サーバ３０から回復処理依頼電文を受信すると、トランザクション履歴情報管理部２２１からトランザクション履歴情報を取得する（ステップＳ２２１）。その取得にあたっては、トランザクション履歴情報管理部２２１に取得要求が送信され、トランザクション履歴情報管理部２２１からトランザクション履歴情報が返信されるものとする。そして、その取得したトランザクション履歴情報に従ってトランザクションの回復処理を行う（ステップＳ２２２）。具体的には、リソースマネジャ４０の排他解放、データベース３０１に格納された各種リソースを基にしたコミット、ロールバックなどの処理を行う。
【００２８】
なお、負荷状態Ｍが最も低いノードを選択する場合（ステップＳ２１１）、使用しているリソースマネジャ４０が同一であるノードを選択する。また、各ノードの負荷状態によっては障害元ノードの負荷状態Ｍが最も低いことがあり、そのノードを選択する可能性がある。そのときには、選択した障害元ノード２１のＴＰモニタ１０１に対して回復処理依頼電文を送信する（ステップＳ２１２の破線矢印を参照）。
【００２９】
≪第２の実施の形態≫
次に、本発明の第２の実施の形態を説明する。なお、第１の実施の形態と同一の部分は同一の符号を付して、重複する説明は省略する。図５は、第２の実施の形態に係るハードウェアの構成を示す図である。計算機５０３は、計算機５０１およびサーバ５０２の両方の機能を持つ。すなわち、他装置からの要求を受けてトランザクション処理を行うとともに、自身のトランザクション履歴および負荷を管理する。第２の実施の形態において、ＴＰモニタ１００を含む計算機５０３の構成をノードと呼ぶ。
【００３０】
計算機５０３は、メモリ（記憶部）５１３、ハードディスク装置５２３、ＣＰＵ５４３、ディスプレイ５５３、キーボード５６３、マウス５７３およびＮＩＣ５８３を含むハードウェア資源がバス５３３を介して接続されて構成され、ＮＩＣ５８３によりネットワークを介して接続されたユーザ端末や他の計算機と通信を行う。
【００３１】
メモリ５１３には、ＴＰモニタ１００、ユーザサービスプログラム１１０、オペレーティングシステム１２３、トランザクション履歴情報テーブル２００、システム負荷情報テーブル２１０、トランザクション履歴情報管理部２２０およびシステム負荷情報管理部２３０が格納される。また、ハードディスク装置５２３には、トランザクション履歴情報ファイル２４０およびシステム負荷情報ファイル２５０が格納される。そして、ＣＰＵ５４３が各プログラムを実行することにより、ＴＰモニタ１００、ユーザサービスプログラム１１０、トランザクション履歴情報管理部２２０およびシステム負荷情報管理部２３０がオペレーティングシステム１２３上で動作することになる。特に、ＴＰモニタ１００は、他装置からの要求を受けてトランザクション処理を制御する。その際、要求の内容に応じてユーザサービスプログラム１１０にトランザクション処理を構成する個々の処理を実行させる。
【００３２】
図６は、第２の実施の形態に係る分散トランザクション処理システムの構築例を示す図である。分散トランザクション処理システム１は、ノード２１〜２３およびリソースマネジャ４０がネットワーク２を介して接続されて構成される。ノード２１〜２３は、それぞれＴＰモニタ１０１〜１０３、トランザクション履歴情報管理部２２１〜２２３およびシステム負荷情報管理部２３１〜２３３を含んで構成される。トランザクション履歴情報管理部２２１〜２２３は、それぞれトランザクション履歴情報テーブル２０１〜２０３を管理する。システム負荷情報管理部２３１〜２３３は、それぞれシステム負荷情報テーブル２１１〜２１３を管理する。
【００３３】
以下、処理の概要を説明する。ＴＰモニタ１０１〜１０３は、システム負荷に大きな変動があった場合に、システム負荷情報を全ノードのシステム負荷情報管理部に送信する。ＴＰモニタ１０１が実行中のトランザクションに障害が発生した場合、ノード２１の負荷状態が高いときは、システム負荷情報管理部２３１により各ノードの負荷状態をチェックし、最も負荷状態の低いノード２２（ＴＰモニタ１０２）に対して、回復処理依頼電文を送信する。ＴＰモニタ１０２は、ＴＰモニタ１０１から回復処理依頼電文を受信すると、トランザクションの回復処理を実施する。
【００３４】
図７は、負荷状態が変化したときの処理を示すフローチャートである。この一連の処理は、図６に示すシステム構成におけるＴＰモニタ１０１の負荷状態が変化したときの処理を示している。ＴＰモニタ１０１は、前回の負荷状態のチェックから所定時間が経過した場合（ステップＳ３０１のＹｅｓ）、トランザクション実行待ちのサービス数および実行中のトランザクション数から自身のノード２１の負荷状態Ｍを計算する（ステップＳ３０２）。負荷状態Ｍの計算は、式１によって行う。そして、負荷状態Ｍが前回の計算結果より大きく変動したか否かをチェックする（ステップＳ３０３）。このチェックの判断基準としては、例えば、負荷状態Ｍの値の範囲をレベル１（低負荷）、レベル２（通常負荷）、レベル３（高負荷）などに分けて、負荷状態Ｍの値がそのレベル間に亘って変化した場合に、「大きく変動した」と判断する。
【００３５】
ＴＰモニタ１０１は、負荷状態Ｍが前回より大きく変動した場合には（ステップＳ３０３のＹｅｓ）、使用リソースマネジャ情報および負荷状態Ｍの格納処理をシステム負荷情報管理部２３１に要求して（ステップＳ３０４）、処理を終了する。なお、所定時間が経過していない場合（ステップＳ３０１のＮｏ）および負荷状態Ｍが大きく変動していない場合（ステップＳ３０３のＮｏ）には、一旦処理を終了して次のタイミングを待つ。
【００３６】
システム負荷情報管理部２３１は、ＴＰモニタ１０１からの要求を受けて、使用リソースマネジャ情報および負荷状態Ｍをシステム負荷情報テーブル２１１に格納する（ステップＳ３１１）。そして、同じ情報を他ノード２２、２３のシステム負荷情報管理部２３２、２３３に送信する（ステップＳ３１２）。ノード２２のシステム負荷情報管理部２３２は、受信した使用リソースマネジャ情報および負荷状態Ｍをシステム負荷情報テーブル２１２に格納する（ステップＳ３２１）。また、ノード２３のシステム負荷情報管理部２３３は、受信した使用リソースマネジャ情報および負荷状態Ｍをシステム負荷情報テーブル２１３に格納する（ステップＳ３３１）。以上の一連の処理により、ノード２１、２２および２３は、各ノードの負荷状態を管理する。
【００３７】
図８は、トランザクション回復を行う場合の処理を示すフローチャートである。この一連の処理は、図６のシステム構成におけるノード２１のＴＰモニタ１０１で実行中のトランザクションに障害が発生した場合の処理を示している。ＴＰモニタ１０１は、トランザクションに障害が発生した場合（ステップＳ４０１）、自身のノード２１の負荷状態Ｍを計算する（ステップＳ４０２）。負荷状態Ｍの計算は、式１によって行う。そして、負荷状態Ｍをチェックして（ステップＳ４０３）、負荷状態Ｍが所定の閾値より小さい場合には（ステップＳ４０３のＮｏ）、転送要求を行わず同一ノード内でトランザクション回復処理を行う（ステップＳ４０５）。システム負荷が高く、負荷状態Ｍが所定の閾値以上である場合には（ステップＳ４０３のＹｅｓ）、システム負荷情報管理部２３１に対して回復処理の転送処理を要求する（ステップＳ４０４）。
【００３８】
システム負荷情報管理部２３１は、ＴＰモニタ１０１からの要求を受けると、システム負荷情報テーブル２１１を参照して負荷状態Ｍが最も低いノード（本実施の形態では、ノード２２）を選択する（ステップＳ４１１）。次に、トランザクション履歴情報管理部２２１に要求して、トランザクション履歴情報管理部２２１から渡されたトランザクション履歴情報を取得する（ステップＳ４１２）。そして、トランザクション履歴情報を含めた回復処理依頼電文を、ステップＳ４１１で選択したノード２２に送信する（ステップＳ４１３）。回復先ノード２２のＴＰモニタ１０２は、システム負荷情報管理部２３１から回復処理依頼電文を受信すると、トランザクションの回復処理を行う（ステップＳ４２１）。なお、各ノードの負荷状態によっては障害元ノード２１の負荷状態Ｍが最も低いことがあり、そのノード２１を選択する可能性がある。そのときには、選択した障害元ノード２１のＴＰモニタ１０１に対して回復処理依頼電文を送信する（ステップＳ４１３の破線矢印を参照）。
【００３９】
以上説明した本発明の実施の形態によれば、トランザクション処理システム１においてトランザクション障害の回復を行う場合、ノード（計算機）の負荷が高いときに他のノードに回復処理を転送することによって、負荷が軽減される。また、システムリラン時のトランザクション回復など、回復すべきトランザクションが複数あったときに、複数のノードに回復処理を分散できるので、回復処理の時間短縮を図ることができる。以上によれば、トランザクション障害の回復を行う場合に、他のトランザクション処理性能に対する影響を抑えることができる。
【００４０】
以上本発明の実施の形態について説明したが、図１および図５に示す計算機５０１、５０２および５０３のそれぞれで実行されるプログラムをコンピュータにより読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の実施の形態に係る分散トランザクション処理システム１が実現されるものとする。なお、プログラムをインターネットなどのネットワーク経由でコンピュータシステムに提供するようにしてもよい。さらに、プログラムが書き込まれた半導体チップなどを提供してもよい。
【００４１】
≪その他の実施の形態≫
以上本発明の好適な実施の形態について一例を示したが、本発明は前記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば、以下のような実施の形態が考えられる。
【００４２】
（１）前記各実施の形態では、実行待ちサービス数および実行中のトランザクション数を基にノード（計算機）の負荷状態Ｍを計算したが、オペレーティングシステム負荷やネットワーク負荷など、他の要素を加えてもよい。
【００４３】
（２）第２の実施の形態では、トランザクション履歴情報テーブル２００およびシステム負荷情報テーブル２１０を同一のノード内で管理するように記載したが、どちらか一方、または両方をノード間で共有するなどの構成にしてもよい。例えば、第２の実施の形態でノードの二重化（実行系計算機および待機系計算機を有する構成）を行う場合、ノード間でファイルを共有する構成にする。この場合、待機系計算機は１台で全面回復処理を行うことになるが、自身の負荷状態が高くなって、分散トランザクション処理システム１全体の処理効率が低下する可能性がある。そこで、待機系計算機は、第１または第２の実施の形態に係るトランザクション障害回復処理を行うことにより、自身の負荷状態が高いときには、全面回復処理の一部を低負荷の計算機に転送する。これによれば、系切り替えによる全面回復処理を待機系計算機だけでなく、他の実行系計算機にも分散して行うことができるので、回復処理時間を短縮することができる。
【００４４】
（３）第２の実施の形態では、負荷状態Ｍの変動したノード２１が他のノード２２、２３に負荷情報（使用リソースマネジャ情報および負荷状態Ｍ）を送信するように記載したが、他ノード２２、２３の通信障害やシステムダウンなどを検出するために、所定時間ごとにシステム負荷状態管理部２３１が他のノード２２、２３の負荷情報を取得する処理を追加してもよい。
【００４５】
（４）第２の実施の形態において、回復処理の転送先ノード２２の負荷状態Ｍが高い場合は、所定時間経過後、再度回復処理の転送を行うようにしてもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明の第１の実施の形態に係るハードウェアの構成例を示す図である。
【図２】本発明の第１の実施の形態に係る分散トランザクション処理システムの構築例を示す図である。
【図３】本発明の第１の実施の形態に係るトランザクション実行状態が変化した場合の処理を示すフローチャートである。
【図４】本発明の第１の実施の形態に係るトランザクション回復処理を示すフローチャートである。
【図５】本発明の第２の実施の形態に係るハードウェアの構成例を示す図である。
【図６】本発明の第２の実施の形態に係る分散トランザクション処理システムの構築例を示す図である。
【図７】本発明の第２の実施の形態に係る負荷状態が変化した場合の処理を示すフローチャートである。
【図８】本発明の第２の実施の形態に係るトランザクション回復処理を示すフローチャートである。
【図９】従来技術による計算機の二重化による系切り替えでシステムの全面回復を行う例を示す図である。
【図１０】従来技術による同一システム内でトランザクションの部分回復を行う例を示す図である。
【符号の説明】
【００４７】
１      分散トランザクション処理システム（計算機システム）
２      ネットワーク
２１、２２、２３  ノード（計算機）
３０    トランザクション情報管理サーバ（情報管理サーバ）
４０    リソースマネジャ（リソース管理サーバ）
２００  トランザクション履歴情報テーブル
２１０  システム負荷情報テーブル（負荷情報テーブル）
２２０、２２１  トランザクション履歴情報管理部
２３０、２３１  システム負荷情報管理部（負荷情報管理部）
５１２、５１３  メモリ（記憶部）
１０１、１０２、１０３  ＴＰモニタ（トランザクション処理モニタ）
【図１】
2007156590.tif 000003
【図２】
2007156590.tif 000004
【図３】
2007156590.tif 000005
【図４】
2007156590.tif 000006
【図５】
2007156590.tif 000007
【図６】
2007156590.tif 000008
【図７】
2007156590.tif 000009
【図８】
2007156590.tif 000010
【図９】
2007156590.tif 000011
【図１０】
2007156590.tif 000012