(57)【要約】【課題】  通常のプログラム処理に影響を与えずに、障害が発生する直前の状態を保存できるようにする。【解決手段】  プログラム１０１が稼働する現用系１０２とは別に、プログラム１０１と同じプログラム１０３が現用系１０２と同じ実行環境で稼働する冗長系１０４を設ける。遅延実行制御部１０６は、現用系１０２に与えられる処理要求１０５と同じ処理要求を遅延させて冗長系に与える。障害監視部１０７で現用系１０２の障害が検知されたとき、状態保存制御部１０９は、冗長系１０４の状態を示すデータを取得して状態データ保存部１０８に保存する。現用系１０２と同じ実行環境を有する冗長系１０４で同じプログラムを遅延実行させているため、現用系１０２に障害が発生した時点の冗長系１０４の状態は、現用系１０２に障害が発生する直前の状態と等価になる。【選択図】図１
2005165599.tif 000002
【特許請求の範囲】
【請求項１】
プログラムが稼働する現用系と、前記プログラムと同じプログラムが前記現用系と同じ実行環境で遅延して稼働する冗長系と、前記現用系に障害が発生したときの前記冗長系の状態を保存する状態保存手段とを備えることを特徴とする計算機システム。
【請求項２】
プログラムが稼働する現用系と、前記プログラムと同じプログラムが前記現用系と同じ実行環境で稼働する冗長系と、前記現用系に与えられる処理要求と同じ処理要求を遅延させて前記冗長系に与える遅延実行制御手段と、前記現用系の障害の有無を検知する障害監視手段と、前記障害監視手段で前記現用系の障害が検知されたときの前記冗長系の状態を示すデータを状態データ保存部に保存する状態保存制御手段とを備えることを特徴とする計算機システム。
【請求項３】
前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、該バッファから処理要求を読み出して前記冗長系に与える通信手段とを備えることを特徴とする請求項２記載の計算機システム。
【請求項４】
前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、各処理要求を少なくとも予め設定された時間だけ前記バッファに保存させた後に読み出して前記冗長系に与える通信手段とを備えることを特徴とする請求項２記載の計算機システム。
【請求項５】
前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、前記バッファに保存された処理要求の数が予め定められた数を超える場合に、そのうちの最も古い処理要求を読み出して前記冗長系に与える通信手段とを備えることを特徴とする請求項２記載の計算機システム。
【請求項６】
前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、前記現用系に与えられた処理要求の処理が完了したとき、その処理要求と同じ処理要求を前記バッファから読み出して前記冗長系に与える通信手段とを備えることを特徴とする請求項２記載の計算機システム。
【請求項７】
前記バッファに保存された処理要求を読み出して前記冗長系に与える前に、予め定められたパラメータの変換後の値を保持する変換テーブルを参照して、処理要求に含まれる前記パラメータの値を変換後の値に変換する変換手段を備えることを特徴とする請求項３乃至６の何れか１項に記載の計算機システム。
【請求項８】
前記変換手段は、前記冗長系に与えた処理要求の処理結果に応じて、前記変換テーブルの前記変換後の値を設定するものであることを特徴とする請求項７記載の計算機システム。
【請求項９】
前記状態データ保存部に保存されたデータを用いて前記冗長系の状態を復元する状態復元制御手段と、前記冗長系の処理を前記復元された状態から再開させる処理再現制御手段と、再開された前記冗長系の処理結果を出力する処理結果出力手段とを備えることを特徴とする請求項２乃至８の何れか１項に記載の計算機システム。
【請求項１０】
プログラムが稼働する現用系と同じ実行環境を有する冗長系で前記プログラムと同じプログラムを遅延実行させ、前記現用系に障害が発生したときの前記冗長系の状態を示すデータを状態データ保存部に保存することを特徴とする状態取得方法。
【請求項１１】
ａ）プログラムが稼働する現用系と同じ実行環境を有する冗長系で前記プログラムと同じプログラムを並行して実行するステップ、
ｂ）前記現用系に与えられる処理要求と同じ処理要求を遅延させて前記冗長系に与えるステップ、
ｃ）前記現用系の障害の有無を検知するステップ、
ｄ）前記現用系の障害が検知されたときの前記冗長系の状態を示すデータを状態データ保存部に保存するステップ、
を含むことを特徴とする状態取得方法。
【請求項１２】
前記ステップｂは、前記現用系に与えられる処理要求と同じ処理要求をバッファに保存し、前記バッファから処理要求を読み出して前記冗長系に与える処理を含むことを特徴とする請求項１１記載の状態取得方法。
【請求項１３】
前記ステップｂは、前記現用系に与えられる処理要求と同じ処理要求をバッファに保存し、各処理要求を少なくとも予め設定された時間だけ前記バッファに保存させた後に読み出して前記冗長系に与える処理を含むことを特徴とする請求項１１記載の状態取得方法。
【請求項１４】
前記ステップｂは、前記現用系に与えられる処理要求と同じ処理要求をバッファに保存し、前記バッファに保存された処理要求の数が予め定められた数を超える場合に、そのうちの最も古い処理要求を読み出して前記冗長系に与える処理を含むことを特徴とする請求項１１記載の状態取得方法。
【請求項１５】
前記ステップｂは、前記現用系に与えられる処理要求と同じ処理要求をバッファに保存し、前記現用系に与えられた処理要求の処理が完了したとき、その処理要求と同じ処理要求を前記バッファから読み出して前記冗長系に与える処理を含むことを特徴とする請求項１１記載の状態取得方法。
【請求項１６】
前記バッファに保存された処理要求を読み出して前記冗長系に与える前に、予め定められたパラメータの変換後の値を保持する変換テーブルを参照して、処理要求に含まれる前記パラメータの値を変換後の値に変換するステップを更に含むことを特徴とする請求項１１乃至１５の何れか１項に記載の状態取得方法。
【請求項１７】
前記冗長系に与えた処理要求の処理結果に応じて、前記変換テーブルの前記変換後の値を設定するステップを更に含むことを特徴とする請求項１６記載の状態取得方法。
【請求項１８】
前記状態データ保存部に保存されたデータを用いて前記冗長系の状態を復元するステップ、前記冗長系の処理を前記復元された状態から再開させるステップ、再開された前記冗長系の処理結果を出力するステップを更に含むことを特徴とする請求項１１乃至１７の何れか１項に記載の状態取得方法。
【請求項１９】
コンピュータを、プログラムが稼働する現用系と同じ実行環境を有する冗長系で前記プログラムと同じプログラムを遅延実行させる遅延実行制御手段、前記現用系に障害が発生したときの前記冗長系の状態を保存する状態保存手段、として機能させることを特徴とする状態取得プログラム。
【請求項２０】
コンピュータを、プログラムが稼働する現用系に与えられる処理要求と同じ処理要求を遅延させて、前記プログラムと同じプログラムが前記現用系と同じ実行環境で稼働する冗長系に与える遅延実行制御手段、前記現用系の障害の有無を検知する障害監視手段、前記障害監視手段で前記現用系の障害が検知されたときの前記冗長系の状態を示すデータを状態データ保存部に保存する状態保存制御手段、として機能させることを特徴とする状態取得プログラム。
【請求項２１】
前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、該バッファから処理要求を読み出して前記冗長系に与える通信手段とを備えることを特徴とする請求項２０記載の状態取得プログラム。
【請求項２２】
前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、各処理要求を少なくとも予め設定された時間だけ前記バッファに保存させた後に読み出して前記冗長系に与える通信手段とを備えることを特徴とする請求項２０記載の状態取得プログラム。
【請求項２３】
前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、前記バッファに保存された処理要求の数が予め定められた数を超える場合に、そのうちの最も古い処理要求を読み出して前記冗長系に与える通信手段とを備えることを特徴とする請求項２０記載の状態取得プログラム。
【請求項２４】
前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、前記現用系に与えられた処理要求の処理が完了したとき、その処理要求と同じ処理要求を前記バッファから読み出して前記冗長系に与える通信手段とを備えることを特徴とする請求項２０記載の状態取得プログラム。
【請求項２５】
前記コンピュータを更に、前記バッファに保存された処理要求を読み出して前記冗長系に与える前に、予め定められたパラメータの変換後の値を保持する変換テーブルを参照して、処理要求に含まれる前記パラメータの値を変換後の値に変換する変換手段、として機能させることを特徴とする請求項２１乃至２４の何れか１項に記載の状態取得プログラム。
【請求項２６】
前記変換手段は、前記冗長系に与えた処理要求の処理結果に応じて、前記変換テーブルの前記変換後の値を設定するものであることを特徴とする請求項２５記載の状態取得プログラム。
【請求項２７】
前記コンピュータを更に、前記状態データ保存部に保存されたデータを用いて前記冗長系の状態を復元する状態復元制御手段、前記冗長系の処理を前記復元された状態から再開させる処理再現制御手段、再開された前記冗長系の処理結果を出力する処理結果出力手段、として機能させることを特徴とする請求項２０乃至２６の何れか１項に記載の状態取得プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システムおよび状態取得方法に関し、特に障害の原因調査のために障害発生直前の計算機状態を保存する機能を有する計算機システムおよび状態取得方法に関する。
【背景技術】
【０００２】
一般に計算機の障害の原因を調査する方法には、障害発生時点のメモリ内容など障害解析に必要なデータをファイルに保存し、そのデータを解析して障害の原因を調査する方法と、障害発生直前のメモリ内容など障害の再現に必要なデータをファイルに保存し、そのデータを使って障害を再現させて原因を調査する方法とがある。前者の方法は、比較的良く利用される方法であるが、障害が発生して不安定になっている状態でデータの保存処理を行うため確実性に難がある。これに対して後者の方法は、障害発生前にデータの保存を行うためにそのような問題はない。本発明は、この後者の方法に関する。
【０００３】
後者の方法の一例が特許文献１に記載されている。同文献に記載された方法では、プログラムを実行するプロセッサにおいて、実行中のプログラムに何らかの障害が発生するまでの期間中、所定の間隔でチェックポイントと呼ぶリスタート用のデータを取得して保存することで、結果として障害発生時には障害発生直前のデータが保存されるようにしている。
【特許文献１】特開平１０−１９８５７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したように障害の再現に必要なデータを取得する従来の方法は、障害が発生するまでの期間中、所定の間隔でデータを取得して保存するため、プログラム実行時のオーバーヘッドが大きくなり、通常のプログラム処理の遅延を招くという課題がある。特に、保存するデータが主記憶の全イメージ、プログラムが利用していた外部記憶装置上のファイルなどを含む大規模なデータになればなるほど、この問題は顕著となる。
【０００５】
そこで本発明の目的は、通常のプログラム処理に影響を与えずに、障害が発生する直前の状態を示すデータを取得し得るようにすることにある。
【課題を解決するための手段】
【０００６】
本発明の第１の計算機システムは、プログラムが稼働する現用系と、前記プログラムと同じプログラムが前記現用系と同じ実行環境で遅延して稼働する冗長系と、前記現用系に障害が発生したときの前記冗長系の状態を保存する状態保存手段とを備えることを特徴とする。
【０００７】
本発明の第２の計算機システムは、プログラムが稼働する現用系と、前記プログラムと同じプログラムが前記現用系と同じ実行環境で稼働する冗長系と、前記現用系に与えられる処理要求と同じ処理要求を遅延させて前記冗長系に与える遅延実行制御手段と、前記現用系の障害の有無を検知する障害監視手段と、前記障害監視手段で前記現用系の障害が検知されたときの前記冗長系の状態を示すデータを状態データ保存部に保存する状態保存制御手段とを備えることを特徴とする。
【０００８】
本発明の第３の計算機システムは、第２の計算機システムにおいて、前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、該バッファから処理要求を読み出して前記冗長系に与える通信手段とを備えることを特徴とする。
【０００９】
本発明の第４の計算機システムは、第２の計算機システムにおいて、前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、各処理要求を少なくとも予め設定された時間だけ前記バッファに保存させた後に読み出して前記冗長系に与える通信手段とを備えることを特徴とする。
【００１０】
本発明の第５の計算機システムは、第２の計算機システムにおいて、前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、前記バッファに保存された処理要求の数が予め定められた数を超える場合に、そのうちの最も古い処理要求を読み出して前記冗長系に与える通信手段とを備えることを特徴とする。
【００１１】
本発明の第６の計算機システムは、第２の計算機システムにおいて、前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、前記現用系に与えられた処理要求の処理が完了したとき、その処理要求と同じ処理要求を前記バッファから読み出して前記冗長系に与える通信手段とを備えることを特徴とする。
【００１２】
本発明の第７の計算機システムは、第３乃至６の計算機システムにおいて、前記バッファに保存された処理要求を読み出して前記冗長系に与える前に、予め定められたパラメータの変換後の値を保持する変換テーブルを参照して、処理要求に含まれる前記パラメータの値を変換後の値に変換する変換手段を備えることを特徴とする。
【００１３】
本発明の第８の計算機システムは、第７の計算機システムにおいて、前記変換手段は、前記冗長系に与えた処理要求の処理結果に応じて、前記変換テーブルの前記変換後の値を設定するものであることを特徴とする。
【００１４】
本発明の第９の計算機システムは、第２乃至８の計算機システムにおいて、前記状態データ保存部に保存されたデータを用いて前記冗長系の状態を復元する状態復元制御手段と、前記冗長系の処理を前記復元された状態から再開させる処理再現制御手段と、再開された前記冗長系の処理結果を出力する処理結果出力手段とを備えることを特徴とする。
【００１５】
本発明の第１の状態取得方法は、プログラムが稼働する現用系と同じ実行環境を有する冗長系で前記プログラムと同じプログラムを遅延実行させ、前記現用系に障害が発生したときの前記冗長系の状態を示すデータを状態データ保存部に保存することを特徴とする。
【００１６】
本発明の第２の状態取得方法は、ａ）プログラムが稼働する現用系と同じ実行環境を有する冗長系で前記プログラムと同じプログラムを並行して実行するステップ、ｂ）前記現用系に与えられる処理要求と同じ処理要求を遅延させて前記冗長系に与えるステップ、ｃ）前記現用系の障害の有無を検知するステップ、ｄ）前記現用系の障害が検知されたときの前記冗長系の状態を示すデータを状態データ保存部に保存するステップ、を含むことを特徴とする。
【００１７】
本発明の第３の状態取得方法は、第２の状態取得方法において、前記ステップｂは、前記現用系に与えられる処理要求と同じ処理要求をバッファに保存し、前記バッファから処理要求を読み出して前記冗長系に与える処理を含むことを特徴とする。
【００１８】
本発明の第４の状態取得方法は、第２の状態取得方法において、前記ステップｂは、前記現用系に与えられる処理要求と同じ処理要求をバッファに保存し、各処理要求を少なくとも予め設定された時間だけ前記バッファに保存させた後に読み出して前記冗長系に与える処理を含むことを特徴とする。
【００１９】
本発明の第５の状態取得方法は、第２の状態取得方法において、前記ステップｂは、前記現用系に与えられる処理要求と同じ処理要求をバッファに保存し、前記バッファに保存された処理要求の数が予め定められた数を超える場合に、そのうちの最も古い処理要求を読み出して前記冗長系に与える処理を含むことを特徴とする。
【００２０】
本発明の第６の状態取得方法は、第２の状態取得方法において、前記ステップｂは、前記現用系に与えられる処理要求と同じ処理要求をバッファに保存し、前記現用系に与えられた処理要求の処理が完了したとき、その処理要求と同じ処理要求を前記バッファから読み出して前記冗長系に与える処理を含むことを特徴とする。
【００２１】
本発明の第７の状態取得方法は、第３乃至６の状態取得方法において、前記バッファに保存された処理要求を読み出して前記冗長系に与える前に、予め定められたパラメータの変換後の値を保持する変換テーブルを参照して、処理要求に含まれる前記パラメータの値を変換後の値に変換するステップを更に含むことを特徴とする。
【００２２】
本発明の第８の状態取得方法は、第７の状態取得方法において、前記冗長系に与えた処理要求の処理結果に応じて、前記変換テーブルの前記変換後の値を設定するステップを更に含むことを特徴とする。
【００２３】
本発明の第９の状態取得方法は、第２乃至８の状態取得方法において、前記状態データ保存部に保存されたデータを用いて前記冗長系の状態を復元するステップ、前記冗長系の処理を前記復元された状態から再開させるステップ、再開された前記冗長系の処理結果を出力するステップを更に含むことを特徴とする。
【００２４】
本発明の第１の状態取得プログラムは、コンピュータを、プログラムが稼働する現用系と同じ実行環境を有する冗長系で前記プログラムと同じプログラムを遅延実行させる遅延実行制御手段、前記現用系に障害が発生したときの前記冗長系の状態を保存する状態保存手段、として機能させることを特徴とする。
【００２５】
本発明の第２の状態取得プログラムは、コンピュータを、プログラムが稼働する現用系に与えられる処理要求と同じ処理要求を遅延させて、前記プログラムと同じプログラムが前記現用系と同じ実行環境で稼働する冗長系に与える遅延実行制御手段、前記現用系の障害の有無を検知する障害監視手段、前記障害監視手段で前記現用系の障害が検知されたときの前記冗長系の状態を示すデータを状態データ保存部に保存する状態保存制御手段、として機能させることを特徴とする。
【００２６】
本発明の第３の状態取得プログラムは、第２の状態取得プログラムにおいて、前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、該バッファから処理要求を読み出して前記冗長系に与える通信手段とを備えることを特徴とする。
【００２７】
本発明の第４の状態取得プログラムは、第２の状態取得プログラムにおいて、前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、各処理要求を少なくとも予め設定された時間だけ前記バッファに保存させた後に読み出して前記冗長系に与える通信手段とを備えることを特徴とする。
【００２８】
本発明の第５の状態取得プログラムは、第２の状態取得プログラムにおいて、前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、前記バッファに保存された処理要求の数が予め定められた数を超える場合に、そのうちの最も古い処理要求を読み出して前記冗長系に与える通信手段とを備えることを特徴とする。
【００２９】
本発明の第６の状態取得プログラムは、第２の状態取得プログラムにおいて、前記遅延実行制御手段は、前記現用系に与えられる処理要求と同じ処理要求を保存するバッファと、前記現用系に与えられた処理要求の処理が完了したとき、その処理要求と同じ処理要求を前記バッファから読み出して前記冗長系に与える通信手段とを備えることを特徴とする。
【００３０】
本発明の第７の状態取得プログラムは、第３乃至６の状態取得プログラムにおいて、前記コンピュータを更に、前記バッファに保存された処理要求を読み出して前記冗長系に与える前に、予め定められたパラメータの変換後の値を保持する変換テーブルを参照して、処理要求に含まれる前記パラメータの値を変換後の値に変換する変換手段、として機能させることを特徴とする。
【００３１】
本発明の第８の状態取得プログラムは、第７の状態取得プログラムにおいて、前記変換手段は、前記冗長系に与えた処理要求の処理結果に応じて、前記変換テーブルの前記変換後の値を設定するものであることを特徴とする。
【００３２】
本発明の第９の状態取得プログラムは、第２乃至８の状態取得プログラムにおいて、前記コンピュータを更に、前記状態データ保存部に保存されたデータを用いて前記冗長系の状態を復元する状態復元制御手段、前記冗長系の処理を前記復元された状態から再開させる処理再現制御手段、再開された前記冗長系の処理結果を出力する処理結果出力手段、として機能させることを特徴とする。
【発明の効果】
【００３３】
本発明の第１の計算機システム、状態取得方法およびプログラムによれば、通常のプログラム処理に影響を与えずに、障害が発生する直前の状態を取得することができる。その理由は、プログラムが稼働する現用系と同じ実行環境を有する冗長系で同じプログラムを遅延実行させているため、現用系に障害が発生した時点の冗長系の状態は、現用系に障害が発生する直前の状態と等価になることと、特許文献１に示されるような現用系に対する周期的な状態保存が不要になるためである。
【００３４】
本発明の第２の計算機システム、状態取得方法およびプログラムによれば、現用系に与えられる処理要求と同じ処理要求を遅延させて冗長系に与えることで冗長系を現用系に対して遅延実行させるため、トランザクション処理システムなど処理要求単位で処理が進行する計算機システムにおいて、通常のプログラム処理に影響を与えずに、障害が発生する直前の状態を取得することができる。
【００３５】
本発明の第３の計算機システム、状態取得方法およびプログラムによれば、第２の計算機システム、状態取得方法およびプログラムで得られる効果に加えて更に、処理要求をバッファに一旦格納して読み出すのに必要なごく短い時間だけ冗長系を現用系に対して遅延することができ、現用系に障害が発生した時点より前記時間だけ前の時点の状態を保存することができる。
【００３６】
本発明の第４の計算機システム、状態取得方法およびプログラムによれば、第２の計算機システム、状態取得方法およびプログラムで得られる効果に加えて更に、少なくとも予め設定された時間だけ冗長系を現用系に対して遅延することができ、現用系に障害が発生した時点より予め設定された時間だけ前の時点の状態を保存することができる。
【００３７】
本発明の第５の計算機システム、状態取得方法およびプログラムによれば、第２の計算機システム、状態取得方法およびプログラムで得られる効果に加えて更に、予め定められた数の処理要求分だけ冗長系を現用系に対して遅延することができ、現用系に障害が発生した時点より予め設定された数の処理要求が投入される前の時点の状態を保存することができる。
【００３８】
本発明の第６の計算機システム、状態取得方法およびプログラムによれば、第２の計算機システム、状態取得方法およびプログラムで得られる効果に加えて更に、一つの処理要求が現用系で処理される時間だけ冗長系を現用系に対して遅延することができ、現用系に障害が発生した時点より１つ前の処理要求が投入される前の時点の状態を保存することができる。
【００３９】
本発明の第７の計算機システム、状態取得方法およびプログラムによれば、第３乃至第６の計算機システム、状態取得方法およびプログラムで得られる効果に加えて更に、冗長系に与える処理要求の所定のパラメータの値を現用系に与える処理要求の値とは別の変換値に変更することができる。
【００４０】
本発明の第８の計算機システム、状態取得方法およびプログラムによれば、第７の計算機システム、状態取得方法およびプログラムで得られる効果に加えて更に、冗長系に与える処理要求の所定のパラメータの値を現用系に与える処理要求のものと異なる変換値に変更する場合に、冗長系に与えた処理要求の処理結果に応じて前記変換値を設定することができる。
【発明を実施するための最良の形態】
【００４１】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００４２】
図１を参照すると、本発明の実施の形態にかかる計算機システムは、プログラム１０１が稼働する現用系１０２と、プログラム１０１と同じプログラム１０３が現用系１０２と同じ実行環境で稼働する冗長系１０４と、現用系１０２に与えられる処理要求１０５と同じ処理要求を遅延させて冗長系１０４に与える遅延実行制御部１０６と、現用系の障害の有無を検知する障害監視部１０７と、障害監視部１０７で現用系１０２の障害が検知されたときの冗長系１０４の状態を示すデータを状態データ保存部１０８に保存する状態保存制御部１０９とを備えている。
【００４３】
現用系１０２は、或る１つの計算機や或る１つのサーバ装置などで構成され、プログラム１０１を実行することにより、処理要求１０５を処理してその処理結果を出力する通常業務を遂行している。冗長系１０２は、現用系１０２で稼働するプログラム１０１と同じプログラム１０３を現用系１０２と同じ実行環境で実行する。ここで、同じ実行環境とは、プロセッサのアーキテクチャ、ＯＳ、主記憶容量、外部記憶装置上のファイルなど、ハードウェア環境、ソフトウェア環境および外部接続機器環境が実質的に同一であることを意味する。
【００４４】
遅延実行制御部１０６は、処理要求１０５を現用系１０２よりも遅くに冗長系１０４に投入することで、冗長系１０４の処理状態が現用系１０２の処理状態より遅れるようにする。どの程度遅延させるかは任意である。
【００４５】
障害監視部１０７は、現用系１０２に障害が発生していることを検知すると、その旨を状態保存制御部１０９に通知する。障害の検知方法は任意であり、障害の予兆の検知もここで言う障害の検知に含まれる。
【００４６】
状態保存制御部１０９は、障害監視部１０７から現用系１０２に障害が発生した旨の通知を受けると、冗長系１０４の処理を停止させ、冗長系１０４の状態を示すデータを採取し、状態データ保存部１０８に保存する。現用系１０２に障害が発生した時点の冗長系１０４の状態は、冗長系１０４が現用系１０２に比べて遅延しているため、現用系１０２に障害が発生する直前の状態と等価になる。採取するデータは、主記憶装置の全内容（主記憶イメージ）、外部記憶装置上のファイルの内容、プロセッサのレジスタの値など、障害原因の分析を行うのに必要なデータ、またはその時点の状態を後に再現するのに必要な一切のデータである。もし、その時点の状態を後に再現するのに必要な一切のデータを採取対象とする場合、状態データ保存部１０８に保存されたデータを用いれば、冗長系１０４の状態を何度でも同じ状態に復元でき、冗長系１０４の処理の再開による障害の再現、障害の再現による障害原因の調査が可能となる。
【００４７】
これら遅延実行制御部１０６、障害監視部１０７および状態保存制御部１０９は、コンピュータと状態取得プログラムとで実現することができる。状態取得プログラムは、磁気ディスクなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータ上に遅延実行制御部１０６、障害監視部１０７および状態保存制御部１０９の各機能手段を実現する。
【００４８】
図２に本実施の形態の効果を示す。図２（ａ）に示されるように、本実施の形態によれば、冗長系１０４は現用系１０２に比べて遅延量Ｔだけ遅延して状態が変化する。或る時刻ｔ１に現用系１０２で障害が発生したとき、冗長系１０４を停止させないと遅延量Ｔ経過後に同じ障害が発生する。何故なら、冗長系１０４は、現用系１０２で稼働するプログラム１０１と同じプログラム１０３を現用系１０２と同じ実行環境で実行しているからである。したがって、時刻ｔ１における冗長系１０４の状態は、障害が発生する時点より遅延量Ｔだけ前の時点における現用系１０２の状態と等価となる。
【００４９】
図２（ｂ）は特許文献１に示される方法を適用して、障害が発生するまでの期間中、所定の間隔Ｗで現用系１０２の状態を保存した場合のシーケンスを示す。状態保存のために現用系１０２を周期的に停止させる必要があるために通常業務に及ぼす影響が極めて大きくなる。加えて、障害が発生した時点ｔ１とその直前の状態保存時点との間隔ｘは不定になり、本発明の実施の形態のように常に遅延量Ｔだけ前の状態を保存することはできない。
【００５０】
次に、本発明の実施例について図面を参照して詳細に説明する。
【実施例１】
【００５１】
図３を参照すると、本発明の実施例１にかかる計算機システムはトランザクション処理システムであり、プログラム制御により動作するデータ処理装置（コンピュータ、中央処理装置、プロセッサ）で構成された第１の処理モジュール１および第２の処理モジュール２と、クライアント３と、障害監視部４と、状態保存制御部５と、状態データ保存部６とから構成されている。また、第１の処理モジュール１は、現用サーバ１０と、クライアント通信手段１１と、トランザクション複製手段１２と、現用サーバ通信手段１３とを含んで構成され、第２の処理モジュール２は、冗長サーバ２０と、トランザクションバッファ手段２２と、冗長サーバ通信手段２３とを含んで構成される。図１との関連では、現用サーバ１０が現用系１０２に、冗長サーバ２０が冗長系１０４に相当し、冗長サーバ２０は、現用サーバ１０で稼働するトランザクション処理プログラムと同じトランザクション処理プログラムを現用サーバ１０と同じ実行環境で実行する。
【００５２】
これらの各手段はそれぞれ概略つぎのように動作する。
【００５３】
第１の処理モジュール１において、クライアント通信手段１１は、クライアント３との通信処理を行い、処理要求を受信し、処理結果を送信する。トランザクション複製手段１２は、クライアント通信手段１１の受信した処理要求を受け、複製を行い、複製を第２の処理モジュール２に送信する。処理要求の原本は、現用サーバ通信手段１３へ渡される。現用サーバ１０は、現用サーバ通信手段１３から処理要求を受信し、受信した処理要求を処理し、その処理結果を現用サーバ通信手段１３に送信するといったトランザクション処理を行う。処理結果は、さらにトランザクション複製手段１２、クライアント通信手段１１を介して、クライアント３に送信される。
【００５４】
第２の処理モジュールにおいて、トランザクションバッファ手段２２は、第１の処理モジュール１から受信した処理要求の複製を一時的に保存する。冗長サーバ通信手段２３は、一時的に保存された処理要求を読み出し、冗長サーバ２０に送信する。冗長サーバ２０は、冗長サーバ通信手段２３から処理要求を受信し、受信した処理要求を処理し、その処理結果を冗長サーバ通信手段２３に送信するといったトランザクション処理を行う。但し、この処理結果はクライアント３に送信されることはない。
【００５５】
クライアント３は、トランザクションの処理要求を第１の処理モジュール１に対して送信し、また第１の処理モジュール１からその処理結果を受信する。
【００５６】
障害監視部４は、第１の処理モジュール１の処理状態を監視し、処理に異常があった場合に、障害発生を検知し、状態保存制御部５に通知を行う。
【００５７】
状態保存制御部５は、第２の処理モジュール２の処理状態を制御し、障害監視部４の障害発生の通知を受けて、冗長サーバ２０を含む処理モジュール２全体の処理状態のデータを状態データ保存部６に保存する。
【００５８】
次に、図３のブロック図、図４及び図５のフローチャートを参照して本実施例１の動作について説明する。
【００５９】
まず、障害が発生していない場合の本実施例の動作について説明する。クライアント３において、トランザクションの処理要求が発生すると（図４のＳ１０１）、第１の処理モジュール１に向けて処理要求(ＳＴＸ）が送信される（Ｓ１０２）。第１の処理モジュール１において、クライアント通信手段１１は、処理要求を受信し（Ｓ１０３）、トランザクション複製手段１２は、処理要求の複製を行い（Ｓ１０４）、処理要求の複製を第２の処理モジュール２に転送する（Ｓ１０５）。処理要求の原本は、現用サーバ通信手段１３を介して、現用サーバ１０に送信され、処理される（Ｓ１０６）。現用サーバ１０で得られた処理結果（ＲＴＸ）は、現用サーバ通信手段１３、トランザクション複製手段１２およびクライアント通信手段１１を介して、クライアント３に送信される（Ｓ１０７）。クライアント３は、処理結果を受信する（Ｓ１０８）。
【００６０】
第２の処理モジュール２において、トランザクションバッファ手段２２は、処理要求の複製を受信すると（Ｓ１０９）、一時的に保存する（Ｓ１１０）。冗長サーバ通信手段２３は、定期的に、処理すべき処理要求がトランザクションバッファ手段２２に存在するかどうかを調べており(Ｓ１１１）、もし存在すれば、その処理要求の読み出しを行い（Ｓ１１２）、冗長サーバ２０に送信し、冗長サーバ２０に処理させる（Ｓ１１３）。
【００６１】
次に、障害が発生した場合の本実施例の動作について説明する。第１の処理モジュール１の現用サーバ１０において、障害が発生すると(図５のＳ２０１）、障害監視部４は、その障害発生を検知する（Ｓ２０２）。障害検知の手法は、例えば、第１の処理モジュール１の現用サーバ１０とハートビート信号を通信し、その応答の有無で検知してもよいし、現用サーバ１０を構成するプロセッサの処理量、入出力の通信量を遠隔監視してその異常により検知してもよいし、サービスプロセッサを用いるなど、さまざまな手法を用いることが可能である。
【００６２】
障害監視部４は障害を検知すると、障害対応指示を状態保存制御部５に通知する（Ｓ２０３）。状態保存制御部５は、その通知を受信すると（Ｓ２０４）、状態保存の処理を開始する（Ｓ２０５）。先ず、第２の処理モジュール２に対して、処理を一時停止させる制御を行う（Ｓ２０６）。そして、第２の処理モジュールの処理が完全に停止すると（Ｓ２０７）、状態データを採取して状態データ保存部６に保存する（Ｓ２０８）。状態データとは、内部記憶、外部記憶、プロセッサのレジスタ、利用しているデバイスがあればデバイスの状態である。もし、プロセッサ内のキャッシュやディスクキャッシュなどの書き込みキャッシュが有効になっているのであれば、そのキャッシュデータの更新処理を行って内部記憶、外部記憶に反映させた後に、状態データの保存を行う。
【００６３】
このように本実施例１では、現用の処理系とは別に、冗長の処理系を用意し、冗長の処理系では、処理要求を一時保存後に遅延して処理することで、現用系の障害検知後、冗長系において、障害が顕在化する前に、冗長系の処理状態を保存するので、障害が顕在化する前の計算機の処理状態を確実に保存することができる。
【実施例２】
【００６４】
図６を参照すると、実施例２にかかるトランザクション処理システムは、実施例１にかかるトランザクション処理システムにおける第２の処理モジュール２にタイマー２４を付加した点で実施例１と構成が相違する。タイマー２４は、現在時刻もしくはある時点からの経過時間の値を保持し、トランザクションバッファ手段２２および冗長サーバ通信手段２３からの要求に応じて、その値を返す機能を持つ。
【００６５】
次に、図６のブロック図及び図７のフローチャートを参照して本実施例２の動作を、実施例１との相違点を中心に説明する。本実施例２の動作で、実施例１の動作と異なるのは、障害が発生していない場合の第２の処理モジュール２の動作の部分だけである。実施例１の図４のＳ１０１〜Ｓ１０８及び図５のＳ２０１〜Ｓ２０８は、本実施例でも同一の動作となる。図４のＳ１０９以降の動作に代えて、本実施例では図７のＳ３０１以降の動作が行われる。以下、詳細に説明する。
【００６６】
第２の処理モジュール２において、トランザクションバッファ手段２２は、処理要求の複製を第１の処理モジュール１から受信すると（Ｓ３０１）、タイマー２４から現在時刻を読み出し（Ｓ３０２）、その現在時刻に予め定められた遅延時間を加算した時刻を処理時刻として処理要求に付加し（Ｓ３０３）、バッファに保存する（Ｓ３０４）。例えば、予め定められた遅延時間が１分であれば、現在時刻に１分足した時刻を処理時刻として付与し、保存する。
【００６７】
冗長サーバ通信手段２３は、定期的に、処理要求がトランザクションバッファ手段２２に存在するかどうか、存在していれば、その処理要求に付加されている処理時刻がタイマー２４が示す現在時刻を過ぎているかどうかを調べており(Ｓ３０５）、もし現在時刻を過ぎている処理時刻を持つ処理要求が存在すれば、その処理要求の読み出しを行い（Ｓ３０６）、冗長サーバ２０に送信し、冗長サーバ２０に処理させる（Ｓ３０７）。
【００６８】
このように本実施例２では、現用の処理系とは別に、冗長の処理系を用意し、冗長の処理系では、処理要求を一時保存後に、予め指定された時間だけ遅延して処理することで、現用系の障害検知後、冗長系において、障害が顕在化する前に、冗長系の処理状態を保存するので、障害が顕在化する前の計算機の処理状態を確実に保存することができる。
【実施例３】
【００６９】
図８を参照すると、実施例３にかかるトランザクション処理システムは、実施例１にかかるトランザクション処理システムにおける第２の処理モジュール２にタイマー２４を付加した点で実施例１と構成が相違する。タイマー２４は、現在時刻もしくはある時点からの経過時間の値を保持し、トランザクションバッファ手段２２からの要求に応じて、その値を返す機能を持つ。
【００７０】
次に、図８のブロック図及び図９のフローチャートを参照して本実施例３の動作を、実施例１との相違点を中心に説明する。本実施例３の動作で、実施例１の動作と異なるのは、障害が発生していない場合の第２の処理モジュール２の動作の部分だけである。実施例１の図４のＳ１０１〜Ｓ１０８及び図５のＳ２０１〜Ｓ２０８は、本実施例でも同一の動作となる。図４のＳ１０９以降の動作に代えて、本実施例では図９のＳ３１１以降の動が行われる。以下、詳細に説明する。
【００７１】
第２の処理モジュール２において、トランザクションバッファ手段２２は、処理要求の複製を第１の処理モジュール１から受信すると（Ｓ３１１）、タイマー２４から現在時刻を読み出し（Ｓ３１２）、その現在時刻を処理要求に付加し（Ｓ３１３）、バッファに保存する（Ｓ３１４）。
【００７２】
冗長サーバ通信手段２３は、定期的に、トランザクションバッファ手段２２に保存されている処理要求の個数が予め設定された閾値を超えているかどうかを調べており(Ｓ３１５）、もし閾値を超える個数の処理要求が存在した場合には、その内の最も古い処理要求、つまり付加されている時刻が最も古い処理要求の読み出しを行い（Ｓ３１６）、冗長サーバ２０に送信し、冗長サーバ２０に処理させる（Ｓ３１７）。
【００７３】
このように本実施例３では、現用の処理系とは別に、冗長の処理系を用意し、冗長の処理系では、処理要求を一時保存後に、予め指定されたトランザクション数だけ遅延して処理することで、現用系の障害検知後、冗長系において、障害が顕在化する前に、冗長系の処理状態を保存するので、障害が顕在化する前の計算機の処理状態を確実に保存することができる。
【００７４】
なお、実施例２と実施例３とを組み合わせ、トランザクションバッファ手段２２に保存されている処理要求の個数が閾値を超えていれば最も古い処理要求を読み出して冗長サーバに送信し、閾値を超えていなければ、最も古い処理要求の処理時間が現在時刻を過ぎているかどうかを調べ、過ぎていればその処理要求を読み出して冗長サーバに送信するといった実施例も考えられる。
【実施例４】
【００７５】
図１０を参照すると、本実施例４にかかるトランザクション処理システムは、現用サーバ通信手段１３と冗長サーバ通信手段２３とが通信する構成となっている点で、実施例１と相違する。
【００７６】
次に、図１０のブロック図及び図１１のフローチャートを参照して本実施例４の動作を、実施例１との相違点を中心に説明する。本実施例４の動作で、実施例１の動作と異なるのは、障害が発生していない場合の第１の処理モジュール１および第２の処理モジュール２の動作の部分だけである。実施例１の図４のＳ１０１〜Ｓ１０５及びＳ１０７〜Ｓ１１０の処理は、本実施例でも同一の動作となる。図４のＳ１０６、Ｓ１１１〜Ｓ１１３の処理に代えて、本実施例では図１１のＳ１０６Ａ〜Ｓ１０６Ｃ、Ｓ４１１〜Ｓ４１３の処理が行われる。以下、詳細に説明する。
【００７７】
第１の処理モジュール１の現用サーバ通信手段１３は、処理要求に通番Ｎを付与して現用サーバ１０に処理させ（Ｓ１０６Ａ）、通番Ｎの処理要求に対する処理結果が現用サーバ１０から返却されると、通番Ｎの処理要求の完了通知を冗長サーバ通信手段２３に送信する（Ｓ１０６Ｂ）。そして、Ｎに１を足して（Ｓ１０６Ｃ）、ステップＳ１０７の処理を行い、繰り返し処理を継続する。
【００７８】
第２の処理モジュール２の冗長サーバ通信手段２３は、第１の処理モジュール１の現用サーバ通信手段１３から、処理完了通知を受信すると（Ｓ４１１）、Ｎ番目の処理完了通知であれば、トランザクションバッファ手段２２からＮ番目に保存された処理要求を読み出し（Ｓ４１２）、冗長サーバ２０に送信して処理させる（Ｓ４１３）。
【００７９】
このように本実施例４では、現用の処理系とは別に、冗長の処理系を用意し、冗長の処理系では、処理要求を一時保存後に、現用系での処理完了を確認後に処理することで、現用系の障害検知後、冗長系において、障害が顕在化する前に、冗長系の処理状態を保存するので、障害が顕在化する前の計算機の処理状態を確実に保存することができる。
【実施例５】
【００８０】
図１２を参照すると、実施例５にかかるトランザクション処理システムは、実施例１にかかるトランザクション処理システムにおける第２の処理モジュール２にトランザクション変換手段３０と変換テーブル３１を設けた点で相違する。
【００８１】
トランザクション変換手段３０は、トランザクションバッファ手段２２と冗長サーバ通信手段２３との間にあって、冗長サーバ２０から返される処理結果に応じて、変換テーブル３１に所定のパラメータの変換後の値を設定する機能と、トランザクションバッファ手段２２に保持された処理要求が冗長サーバ２３に渡されるときに、処理要求に含まれる所定のパラメータの値を変換テーブル３１に設定された変換後の値に変換する機能とを持つ。変換テーブル３１は、あらかじめ指定されたパラメータを一意に定める変換キーと変換後の値との組を保持するテーブルである。
【００８２】
図１３にトランザクション変換手段３０の処理例を示す。トランザクション変換手段３０は、冗長サーバ通信手段２３が冗長サーバ２０から処理結果（ＲＸＴ）を受信した際に呼び出されると、図１３（ａ）に示す処理を開始し、変換テーブル３１に設定された変換キーにマッチするキーが処理結果中に存在するかどうかを調べる（Ｓ４２１）。マッチするキーが存在すれば（Ｓ４２２）、処理結果中に存在した当該キーの値を変換テーブル３１に設定する（Ｓ４２３）。他方、トランザクション処理手段３０は、冗長サーバ通信手段２３がトランザクションバッファ手段２２から処理要求（ＳＴＸ）を読み出した際に呼び出されると、図１３（ｂ）に示す処理を開始し、変換テーブル３１に設定された変換キーにマッチするキーが処理要求中に存在するかどうかを調べる（Ｓ４３１）。マッチするキーが存在すれば（Ｓ４３２）、処理要求中に存在した当該キーの値を変換テーブル３１に設定された値に変換する（Ｓ４３３）。
【００８３】
本実施例において変換テーブル３１を用いて変換の対象とするパラメータの代表的なものに、セッションＩＤ（ＳＩＤ）がある。セッションＩＤは、ｗｅｂサーバが一人のユーザによる一連のアクセスを一つのセッションとして認識できるようにｗｅｂサーバがクライアントに発行するＩＤである。本発明の場合、現用サーバ１０で生成されたセッションＩＤの値を例えば「２０」とすると、これがクライアント３に送られ、一連のアクセスの間、クライアント３からの次以降の処理要求にはこのセッションＩＤの値「２０」が含まれる。現用サーバ１０の場合、次以降の処理要求に自身が生成したセッションＩＤの値「２０」が含まれるため、同じユーザによる一連のアクセスであることが認識できる。しかし、冗長サーバ２０の場合、自ら生成したセッションＩＤの値が現用サーバ１０と同じ値になるとは限らないため、このままでは冗長サーバ２０においてセッション管理が行えない。そこで、例えば図１４に示すように、変換テーブル３１に変換キーとして「ＳＩＤ」を持つエントリを設けておき、図１３（ａ）の処理により、冗長サーバ２０の処理結果中に「ＳＩＤ＝３０」のような変換キーとマッチするキーがあったときに、そのキーの値「３０」を図１４に示すように変換テーブル３１に登録しておく。そして、図１３（ｂ）の処理により、次以降の処理要求中に「ＳＩＤ＝２０」のような変換キーとマッチするキーが存在すれば、そのキーの値「２０」を変換テーブル３１に設定されている値「３０」に変換して冗長サーバ２０へ送ることで、冗長サーバ２０においても現用サーバ１０と同様なセッション管理が可能となる。
【００８４】
なお、本実施例５は実施例１を前提としたが、実施例２乃至４における第２の処理モジュール２に変換テーブル３１とトランザクション変換手段３０を付加する実施例も考えられる。
【実施例６】
【００８５】
図１５を参照すると、本実施例６にかかるトランザクション処理システムは、第２の処理モジュール２に処理再現制御部７、処理結果出力部８および状態復元制御部９が更に接続されている点で、実施例１のトランザクション処理システムと相違する。なお、図１５には、図３に示される状態保存制御部５など実施例１の有する他の構成要素は図示を省略している。
【００８６】
状態復元制御部９は、第２の処理モジュール２の処理状態を制御し、処理再現制御部７の指示を受けて、状態データ保存部６に保存されているデータを使って、保存した時点の状態に第２の処理モジュール２を復元する。
【００８７】
処理再現制御部７は、利用者の入力を受け、第２の処理モジュール２の処理状態を制御する命令を発行する。命令としては、処理の再開命令、一時停止命令、冗長サーバ２０の内部状態の採取命令などがある。
【００８８】
処理結果出力部８は、冗長サーバ２０の処理結果を表示するなどの出力を行う。利用者は、処理結果出力部８に表示される冗長サーバ０の処理結果や冗長サーバ２０の内部状態などを調べて、障害の原因を特定する。
【００８９】
次に、図１５のブロック図および図１６のフローチャートを参照して本実施例の動作について説明する。 
【００９０】
利用者から状態復帰の指示が出されると、処理再現制御部７はその状態復帰の指示を状態復元制御部９に送出する（Ｓ５０１）。状態復元制御部９は、その指示を受けて（Ｓ５０２）、状態復帰を開始し（Ｓ５０３）、状態データ保存部６に保存されている状態データを読み出し（Ｓ５０４）、第２の処理モジュール２に設定する（Ｓ５０５）。これにより、第２の処理モジュール２のトランザクションバッファ手段２２、冗長サーバ通信手段２３および冗長サーバ２０は、状態保存が行われた時点の状態に復帰し、処理は一時停止状態となる（Ｓ５０６）。処理再現制御部７は、第２の処理モジュール２の復帰が完了したことを確認すると、その旨を利用者に通知する（Ｓ５０７）。以後、利用者は処理再現制御部７を通じて、第２の処理モジュール２の処理を再開させたり、停止させたりして、障害に至るまでの振る舞いや障害に至った時点の状況を観察し、障害の原因を調査する。
【００９１】
処理再現制御部７は、利用者から処理再開の指示を受けると、処理再開の指示を第２のモジュール２に送信する（Ｓ５０８）。第２の処理モジュール２において、冗長サーバ通信手段２３は、処理再開の指示を受けると（Ｓ５０９）、処理停止の指示があるまで（Ｓ５１０）、トランザクションバッファ手段２２に保持された処理要求を順次に読み出し（Ｓ５１１）、冗長サーバ２０において処理する（Ｓ５１２）。処理再現制御部７は、処理が再開されたことを確認し、その旨を利用者に通知する（Ｓ５１６）。また、処理再現制御部７は、利用者から処理停止の指示を受けると、処理停止の指示を第２の処理モジュールに送信し（Ｓ５１３）、第２の処理モジュール２は処理を一時停止する（Ｓ５１４）。処理再現制御部７は処理が停止されたことを確認すると、その旨を利用者に通知する（Ｓ５１５）。
【００９２】
このように本実施例では、障害が顕在化する前の、処理継続可能な処理状態のデータを用いて、その処理を再開させ、処理結果を確認することができ、障害の再現による障害原因の調査が可能となる。
【００９３】
なお、本実施例６は実施例１を前提としたが、実施例２乃至４における第２の処理モジュール２に処理再現制御部７と処理結果出力部８と状態復元制御部９を付加する実施例も考えられる。
【００９４】
以上本発明の実施例について説明したが、本発明は以上の実施例にのみ限定されずその他各種の付加変更が可能である。また、各実施例における障害監視部４、状態保存制御部５、処理再現制御部７、処理結果出力部８、状態復元制御部９、クライアント通信手段１１、トランザクション複製手段１２、現用サーバ通信手段１３、トランザクションバッファ手段２２、冗長サーバ通信手段２３、タイマー２４、トランザクション変換手段３０などの機能手段は、コンピュータと状態取得プログラムとで実現することができる。状態取得プログラムは、磁気ディスクなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータ上に上述した各機能手段を実現する。
【産業上の利用可能性】
【００９５】
本発明によれば、トランザクション処理システム、特にその処理プログラムに障害があった場合に、その障害による停止直前の状態を保存し、障害原因を究明するといった用途に適用できる。
【図面の簡単な説明】
【００９６】
【図１】本発明の実施の形態にかかる計算機システムのブロック図である。
【図２】本発明の実施の形態の効果を説明するシーケンスチャートである。
【図３】本発明の実施例１にかかるトランザクション処理システムのブロック図である。
【図４】本発明の実施例１にかかるトランザクション処理システムにおいて障害が発生していない場合の動作を示すフローチャートである。
【図５】本発明の実施例１にかかるトランザクション処理システムにおいて障害が発生した場合の動作を示すフローチャートである。
【図６】本発明の実施例２にかかるトランザクション処理システムにおける第２の処理モジュールのブロック図である。
【図７】本発明の実施例２にかかるトランザクション処理システムにおける第２の処理モジュールの処理例を示すフローチャートである。
【図８】本発明の実施例３にかかるトランザクション処理システムにおける第２の処理モジュールのブロック図である。
【図９】本発明の実施例３にかかるトランザクション処理システムにおける第２の処理モジュールの処理例を示すフローチャートである。
【図１０】本発明の実施例４にかかるトランザクション処理システムのブロック図である。
【図１１】本発明の実施例４にかかるトランザクション処理システムにおいて障害が発生していない場合の動作を示すフローチャートである。
【図１２】本発明の実施例５にかかるトランザクション処理システムにおける第２の処理モジュールのブロック図である。
【図１３】本発明の実施例５にかかるトランザクション処理システムにおける第２の処理モジュール中のトランザクション変換手段の処理例を示すフローチャートである。
【図１４】本発明の実施例５にかかるトランザクション処理システムにおける変換テーブルの内容例を示す図である。
【図１５】本発明の実施例６にかかるトランザクション処理システムにおける第２の処理モジュールのブロック図である。
【図１６】本発明の実施例６にかかるトランザクション処理システムにおける動作を示すフローチャートである。
【符号の説明】
【００９７】
１…第１の処理モジュール
２…第２の処理モジュール
３…クライアント
４…障害監視部
５…状態保存制御部
６…状態データ保存部
７…処理再現制御部
８…処理結果出力部
９…状態復元制御部
１０…現用サーバ
１１…クライアント通信手段
１２…トランザクション複製手段
１３…現用サーバ通信手段
２０…冗長サーバ
２２…トランザクションバッファ手段
２３…冗長サーバ通信手段
２４…タイマー
３０…トランザクション変換手段
３１…変換テーブル
１０１、１０３…プログラム
１０２…現用系
１０４…冗長系
１０５…処理要求
１０６…遅延実行制御部
１０７…障害監視部
１０８…状態データ保存部
１０９…状態保存制御部
【図１】
2005165599.tif 000003
【図２】
2005165599.tif 000004
【図３】
2005165599.tif 000005
【図４】
2005165599.tif 000006
【図５】
2005165599.tif 000007
【図６】
2005165599.tif 000008
【図７】
2005165599.tif 000009
【図８】
2005165599.tif 000010
【図９】
2005165599.tif 000011
【図１０】
2005165599.tif 000012
【図１１】
2005165599.tif 000013
【図１２】
2005165599.tif 000014
【図１３】
2005165599.tif 000015
【図１４】
2005165599.tif 000016
【図１５】
2005165599.tif 000017
【図１６】
2005165599.tif 000018