(57)【特許請求の範囲】
【請求項１】
複数のノード間でデータ転送を行うようにしてデータ処理システムであって、
各ノード中の各バッファの格納状態を検出するトランザクション測定手段と、
タイムアウト障害が発生した場合に、障害情報を含むシステムログの情報と前記トランザクション測定手段の計測値からつまりが発生しているバッファを特定し、被疑の部位に関連付けてタイムアウトが検出されたトランザクションの行き先とつまりが発生しているバッファの識別情報とを格納する対応表を参照して、被疑の部位を特定する被疑解析手段とを備えることを特徴とするデータ処理システム。
【請求項２】
前記トランザクション測定手段は、バッファにトランザクションが入力されてから、当該入力トランザクションと同一のトランザクションが前記バッファから出力されるまでのクロック数を計数することを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記被疑解析手段は、前記バッファの格納状態の情報と閾値とを比較し、前記閾値を超える格納状態のバッファに障害が発生した場合に想定される部位を解析して、被疑を追加することを特徴とする請求項１又は２に記載のデータ処理システム。
【請求項４】
前記閾値は、前記バッファの容量に基づいて設定することを特徴とする請求項３に記載のデータ処理システム。
【請求項５】
複数のノード間でデータ転送を行うようにしてデータ処理システムの被疑解析方法であって、
障害情報を含むシステムログの情報と各ノード中の各バッファの格納状態の情報を取得し、
タイムアウト障害が発生した場合に、前記システムログの情報と前記取得された格納状態からつまりが発生しているバッファを特定し、
被疑の部位に関連付けてタイムアウトが検出されたトランザクションの行き先とつまりが発生しているバッファの識別情報とを格納する対応表を参照して、前記特定されたバッファに基づいて被疑の部位を特定する
ことを特徴とするデータ処理システムの被疑解析方法。
【請求項６】
バッファにトランザクションが入力されてから、当該入力トランザクションと同一のトランザクションが前記バッファから出力されるまでのクロック数を計数することで、各ノード中の各バッファの格納状態の情報を取得する
ことを特徴とする請求項５に記載のデータ処理システムの被疑解析方法。
【請求項７】
複数のノード間でデータ転送を行うようにしてデータ処理システムの被疑解析プログラムであって、
障害情報を含むシステムログの情報と各ノード中の各バッファの格納状態の情報を取得するステップと、
タイムアウト障害が発生した場合に、前記システムログの情報と前記取得された格納状態からつまりが発生しているバッファを特定するステップと、
被疑の部位に関連付けてタイムアウトが検出されたトランザクションの行き先とつまりが発生しているバッファの識別情報とを格納する対応表を参照して、前記特定されたバッファに基づいて被疑の部位を特定するステップと
を含むことを特徴とするデータ処理システムの被疑解析プログラム。
【請求項８】
各ノード中の各バッファの格納状態の情報を取得するステップでは、バッファにトランザクションが入力されてから、当該入力トランザクションと同一のトランザクションが前記バッファから出力されるまでのクロック数を計数する
ことを特徴とする請求項７に記載のデータ処理システムの被疑解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードの間でデータ転送を行うようにしたデータ処理システム、データ処理システムの被疑解析方法、被疑解析プログラムに関するもので、特に、タイムアウト障害が発生した場合の被疑解析に係わる。
【背景技術】
【０００２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とＩ／Ｏ（Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ）を有する複数のノードの間でデータ転送を行うようにしたデータ処理システムが知られている（例えば特許文献１）。このようなデータ処理システムには、障害の発生を検知する被疑解析プログラムが設けられる。障害が発生した場合には、被疑解析プログラムは、システムログに基づいて障害の発生している部位を特定する。被疑が特定できたら、保守員は、特定された部位の保守、点検を行うことで、障害の普及に対処する。システムログとはハードウェア上にあるトランザクション情報、装置情報などのデータであり、障害情報も含まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２８５０４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のように、通常、ＣＰＵとＩ／Ｏを有する複数のノードの間でデータ転送を行うようにしたデータ処理システムの被疑解析プログラムは、システムログに基づいて障害の発生している部位を特定している。
【０００５】
しかしながら、システムログによる解析を行う被疑解析プログラムでは、タイムアウト障害に対して、障害の発生している部位を正確に特定することは難しい。タイムアウト障害とは、ＣＰＵなどから発行されるリクエストが時間内に完了しなかった（あるトランザクションが目的の場所に届かず、リプライが無かった）場合に発生する障害である。タイムアウト障害は、一般に知られるＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）やＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）チェックエラーと違い、発生した場合、故障箇所を特定するのが難しい。
【０００６】
上述の課題を鑑み、本発明は、タイムアウト障害が発生したときに、故障箇所を確実に特定できるようにしたデータ処理システム、データ処理システムの被疑解析方法、被疑解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を鑑み、本発明に係るデータ処理システムは、複数のノード間でデータ転送を行うようにしてデータ処理システムであって、各ノード中の各バッファの格納状態を検出するトランザクション測定手段と、タイムアウト障害が発生した場合に、障害情報を含むシステムログの情報と前記トランザクション測定手段の計測値からつまりが発生しているバッファを特定し、被疑の部位に関連付けてタイムアウトが検出されたトランザクションの行き先とつまりが発生しているバッファの識別情報とを格納する対応表を参照して、被疑の部位を特定する被疑解析手段とを備えることを特徴とする。
【０００８】
本発明に係る被疑解析方法は、複数のノード間でデータ転送を行うようにしてデータ処理システムの被疑解析方法であって、障害情報を含むシステムログの情報と各ノード中の各バッファの格納状態の情報を取得し、タイムアウト障害が発生した場合に、前記システムログの情報と前記取得された格納状態からつまりが発生しているバッファを特定し、被疑の部位に関連付けてタイムアウトが検出されたトランザクションの行き先とつまりが発生しているバッファの識別情報とを格納する対応表を参照して、前記特定されたバッファに基づいて被疑の部位を特定することを特徴とする。
【０００９】
複数のノード間でデータ転送を行うようにしてデータ処理システムの被疑解析プログラムであって、障害情報を含むシステムログの情報と各ノード中の各バッファの格納状態の情報を取得するステップと、タイムアウト障害が発生した場合に、前記システムログの情報と前記取得された格納状態からつまりが発生しているバッファを特定するステップと、被疑の部位に関連付けてタイムアウトが検出されたトランザクションの行き先とつまりが発生しているバッファの識別情報とを格納する対応表を参照して、前記特定されたバッファに基づいて被疑の部位を特定するステップとを含むことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、各ノード中の各バッファの格納状態を検出するトランザクション測定回路を設けるようにしている。これにより、タイムアウト障害が発生した場合に、システムログと共にこのトランザクション測定回路の計測値を取得することで、タイムアウト障害が発生したときの被疑解析を確実に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】トランザクション測定回路の一例のブロック図である。
【図２】トランザクション測定回路の説明に用いるフローチャートである。
【図３】トランザクション測定回路の説明に用いるタイミング図である。
【図４】データ処理システムの基本構成を示すブロック図である。
【図５】データ処理システム内の構成を示すブロック図である。
【図６】障害発生から復旧までの手順を示すフローチャートである。
【図７】トランザクション測定回路を設けた場合のデータ処理システム内の構成を示すブロック図である。
【図８】トランザクション測定回路を設けた場合の障害発生から復旧までの手順を示すフローチャートである。
【図９】トランザクション測定用カウンタの閾値の説明図である。
【図１０】各ＦＩＦＯカウンタの容量の説明図である。
【図１１】被疑に加える条件の説明図である。
【図１２】トランザクション測定用カウンタのカウント値の一例の説明図である。
【図１３】本発明によるデータ処理システムの基本構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を参照しながら説明する。本発明では、図１に示すようなトランザクション測定回路１を用いて、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファ２の格納状態（詰まり度）を検出し、これにより、タイムアウト障害が発生したときにも、被疑の部位を精度良く特定できるようにしている。
【００１４】
図１に示すように、トランザクション測定回路１は、トランザクション情報保持レジスタ１１と、トランザクション測定用カウンタ１２と、クリア信号生成回路１３と、インクリメントイネーブル信号生成回路１４と、ホールド信号生成回路１５とから構成される。
【００１５】
トランザクション情報保持レジスタ１１は、ＦＩＦＯバッファ２に入力されるトランザクション情報を保持する。トランザクション測定用カウンタ１２は、ＦＩＦＯバッファ２にトランザクションが入力されてから、そのトランザクションがＦＩＦＯバッファ２から出力されるまでのクロック数をカウントすることで、ＦＩＦＯバッファ２の格納状態（詰まり度）を測定する。クリア信号生成回路１３は、トランザクション情報保持レジスタ１１が保持している情報とＦＩＦＯバッファ２からの出力とを比較し、トランザクション情報保持レジスタ１１が保持している情報とＦＩＦＯバッファ２からの出力とが一致したらトランザクション情報保持レジスタ１１をクリアすると共に、トランザクション測定用カウンタ１２をリセットするためのクリア信号を生成する。インクリメントイネーブル信号生成回路１４は、トランザクション情報保持レジスタ１１に情報が保持されている場合に、トランザクション測定用カウンタ４１２のカウントアップを有効にするイネーブル信号を生成する。ホールド信号生成回路１５は、トランザクション情報保持レジスタ１１に情報が保持されている場合に（ｎｏｔ  ＡＬＬ”０”）、トランザクション情報保持レジスタ１１にその情報をホールドさせる。
【００１６】
図２は、このようなトランザクション測定回路１の動作を示すフローチャートである。
図２において、トランザクション測定回路１は、ＦＩＦＯバッファ２にトランザクション入力があると（ステップＳ１  Ｙｅｓ）、トランザクション情報保持レジスタ１１がクリア状態（ＡＬＬ”０”）か否かを判定し（ステップＳ２）、クリア状態でなければ（ステップＳ２  Ｎｏ）、ホールド信号生成回路１５により、トランザクション情報保持レジスタ１１の情報をホールドする（ステップＳ３）。
【００１７】
トランザクション情報保持レジスタ１１がクリア状態の場合には（ステップＳ２  Ｙｅｓ）、トランザクション情報保持レジスタ１１は、ＦＩＦＯバッファ２に入力されるトランザクションを取り込む（ステップＳ４）。トランザクション情報保持レジスタ１１に情報が取り込まれると（ｎｏｔ  ＡＬＬ”０”）、インクリメントイネーブル信号生成回路１４は、トランザクション測定用カウンタ１２にイネーブル信号を供給し、トランザクション測定用カウンタ１２は、クリア信号生成回路１３からクリア信号が出力されるまで、クロックを計数し、カウント値をインクリメントする（ステップＳ５）。このとき、クリア信号生成回路１３は、トランザクション情報保持レジスタ１１の情報とＦＩＦＯバッファ２からの出力トランザクションとを比較しており（ステップＳ６）、トランザクション情報保持レジスタ１１の情報とＦＩＦＯバッファ２からの出力トランザクションとが一致するまで、トランザクション測定用カウンタ１２は、クロックをカウントする。このトランザクション測定用カウンタ１２のカウント値がＦＩＦＯバッファ２の格納状態（詰まり度）の検出値となる。トランザクション情報保持レジスタ１１の情報とＦＩＦＯバッファ２からの出力トランザクションとが一致すると（ステップＳ６  Ｙｅｓ）、クリア信号生成回路１３はクリア信号を出力し、トランザクション情報保持レジスタ１１をクリアし（ステップＳ７）、トランザクション測定用カウンタ１２をリセットする（ステップＳ８）。これによりＦＩＦＯバッファ２に入力される新規トランザクションを再度測定できるようになる。
【００１８】
図３は、このようなトランザクション測定回路１の動作を示すタイミング図である。
図３において、時刻ｔ０以前では、図３（Ｄ）に示すように、トランザクション情報保持レジスタ１１がクリア状態（ＡＬＬ”０”）であったとする。トランザクション情報保持レジスタ１１がクリア状態のときには、トランザクション情報保持レジスタ１１は、ＦＩＦＯバッファ２の入力データ（図３（Ｂ））を取り込む。時刻ｔ０では、図３（Ｂ）に示すように、ＦＩＦＯバッファ２にはデータＤａｔａ０が入力される。このため、図３（Ｄ）に示すように、時刻ｔ１でこのＤａｔａ０がトランザクション情報保持レジスタ１１に取り込まれ、時刻ｔ１から、トランザクション情報保持レジスタ１１の出力はデータＤａｔａ０となる。
【００１９】
インクリメントイネーブル信号生成回路１４は、トランザクション情報保持レジスタ１１の出力が”０”以外のときには、インクリメントイネーブル信号を出力する。よって、時刻ｔ１からトランザクション情報保持レジスタ１１の出力がデータＤａｔａ０となると、図３（Ｆ）に示すように、インクリメントイネーブル信号生成回路１４からインクリメントイネーブル信号が出力される。インクリメントイネーブル信号生成回路１４からインクリメントイネーブル信号が出力されている間、トランザクション測定用カウンタ１２は、クロック（図３（Ａ））をカウントする。これにより、図３（Ｅ）に示すように、時刻ｔ２で、トランザクション測定用カウンタ１２は１つインクリメントされる。
【００２０】
時刻ｔ３で、ＦＩＦＯバッファ２からデータＤａｔａ０が出力されると、ＦＩＦＯバッファ２の出力データ（Ｄａｔａ０）（図３（Ｃ））と、トランザクション情報保持レジスタ１１に保持されているデータ（Ｄａｔａ０）（図３（Ｄ））とが一致する。このため、図３（Ｇ）に示すように、クリア信号生成回路１３からクリア信号が出力される。このクリア信号により、時刻ｔ４で、トランザクション情報保持レジスタ１１がクリア状態（ＡＬＬ”０”）になると共に、トランザクション測定用カウンタ１２がリセットされる。
【００２１】
時刻ｔ４で、図３（Ｄ）に示すように、トランザクション情報保持レジスタ１１がクリア状態になると、トランザクション情報保持レジスタ１１は、ＦＩＦＯバッファ２の入力データ（図３（Ｂ））を取り込む。時刻ｔ４では、図３（Ｂ）に示すように、ＦＩＦＯバッファ２にはデータＤａｔａ３が入力される。このため、図３（Ｄ）に示すように、時刻ｔ５でこのＤａｔａ３がトランザクション情報保持レジスタ１１に取り込まれ、時刻ｔ５から、トランザクション情報保持レジスタ１１の出力はデータＤａｔａ３となる。
【００２２】
インクリメントイネーブル信号生成回路１４は、トランザクション情報保持レジスタ１１の出力が”０”以外のときには、インクリメントイネーブル信号を出力する。よって、時刻ｔ５からトランザクション情報保持レジスタ１１の出力がデータＤａｔａ３となると、図３（Ｆ）に示すように、インクリメントイネーブル信号生成回路１４からインクリメントイネーブル信号が出力される。インクリメントイネーブル信号生成回路１４からインクリメントイネーブル信号が出力されている間、トランザクション測定用カウンタ１２は、クロック（図３（Ａ））をカウントする。これにより、図３（Ｅ）に示すように、トランザクション測定用カウンタ１２の値は、時刻ｔ６で”１”になり、時刻ｔ７で”２”になり、時刻ｔ８で”３”になる。
【００２３】
時刻ｔ９で、ＦＩＦＯバッファ２からデータＤａｔａ３が出力されると、ＦＩＦＯバッファ２の出力データ（Ｄａｔａ３）（図３（Ｃ））と、トランザクション情報保持レジスタ１１に保持されているデータ（Ｄａｔａ３）（図３（Ｄ））とが一致する。このため、図３（Ｇ）に示すように、クリア信号生成回路１３からクリア信号が出力される。このクリア信号により、時刻ｔ１０で、トランザクション情報保持レジスタ１１がクリア状態（ＡＬＬ”０”）になると共に、トランザクション測定用カウンタ１２がリセットされる。
【００２４】
このように、図１に示すようなトランザクション測定回路１は、トランザクション測定用カウンタ１２のカウント値から、ＦＩＦＯバッファ２の格納状態（詰まり度）を検出できる。すなわち、図３において、時刻ｔ４でのＦＩＦＯバッファ２の入力データ（Ｄａｔａ３）は、時刻ｔ９でＦＩＦＯバッファ２から出力される。このように、ＦＩＦＯバッファ２にトランザクションが入力されてから、トランザクションが出力されるまでの時間（クロック数）がトランザクション測定用カウンタ１２で計数される。このトランザクション測定用カウンタ１２のカウント値がＦＩＦＯバッファ２の容量より大きくなったときには、ＦＩＦＯバッファ２が詰まっており、障害が発生する可能性が高い。
【００２５】
次に、このようなトランザクション測定回路を利用して、タイムアウト障害での故障部位を特定する処理について説明する。
図４は、ＣＰＵとＩ／Ｏを有する複数のノードの間でデータ転送を行うようにしたデータ処理システムの基本構成を示すものである。図４において、ノード１００は、ＣＰＵ１０１及び１０２と、Ｉ／Ｏ１０４及び１０５と、ノードコントローラ１０３とを備えている。ノード１１０は、ＣＰＵ１１１及び１１２と、Ｉ／Ｏ１１４及び１１５と、ノードコントローラ１１３とを備えている。ノード１００のノードコントローラ１０３と、ノード１１０のノードコントローラ１１３とは、ノード間経路１２０を介して接続されている。ノード１００及び１１０は、ネットワークを構成する端末である。また、ノードコントローラ１０３及び１１３は、各ノード内の情報をコントロールするためのコントローラである。
【００２６】
また、図５に示すようにノードコントローラ１０３内にはルーティングバッファ２０２と、ＦＩＦＯバッファ２００、２０１、２０３、２０４が設けられる。ＦＩＦＯバッファ２００及び２０１とルーティングバッファ２０２とは共通経路２０７で接続される。ＦＩＦＯバッファ２０３及び２０４と、ルーティングバッファ２０２とは共通経路２０８で接続されている。ここで、共通経路とは、異なる行き先のトランザクションが１つの経路を共通して使うことができる経路である。また、Ｉ／Ｏ１０４及び１０５にはＦＩＦＯバッファ２０５及び２０６が設けられる。
【００２７】
同様に、ノードコントローラ１１３内には、ルーティングバッファ２１２と、ＦＩＦＯバッファ２１０、２１１、２１３、２１４が設けられる。ＦＩＦＯバッファ２１０及び２１１と、ルーティングバッファ２１２とは共通経路２１７で接続される。ＦＩＦＯバッファ２１３及び２１４と、ルーティングバッファ２１２とは共通経路２１８で接続されている。また、Ｉ／Ｏ１１４及び１１５にはＦＩＦＯバッファ２１５及び２１６が設けられる。
【００２８】
ルーティングバッファ２０２及び２１２は、トランザクション毎の行き先に出力する機能を有したバッファである。
【００２９】
上記の構成においてＣＰＵからＩ／Ｏまでトランザクションが到達するまでの基本動作について説明する。先ず、ＣＰＵ１０１からＩ／Ｏ１０５にトランザクションが届くまでの経路を説明する。
ＣＰＵ１０１から出されたトランザクションは、先ず、ＦＩＦＯバッファ２００に格納される。次に、先読み先出し制御によりＦＩＦＯバッファ２００から出力されたトランザクションは、共通経路２０７を経由して、ルーティングバッファ２０２へ格納される。ルーティングバッファ２０２は、トランザクションの行き先を判断し、行き先がＩ／Ｏ１０５であることが分かるため、トランザクションはルーティングバッファ２０２により共通経路２０８を経由して、ＦＩＦＯバッファ２０４へ格納される。ＦＩＦＯバッファ２０４から出力されたトランザクションは、Ｉ／Ｏ１０５のＦＩＦＯバッファ２０６へ格納され、Ｉ／Ｏ１０５に到達する。
【００３０】
次に、ＣＰＵ１０２からＩ／Ｏ１１５にトランザクションが届くまでの経路を説明する。
ＣＰＵ１０２から出されたトランザクションは、先ず、ＦＩＦＯバッファ２０１に格納される。次に、先読み先出し制御によりＦＩＦＯバッファ２０１から出力されたトランザクションは、共通経路２０７を経由してルーティングバッファ２０２へ格納される。ルーティングバッファ２０２はトランザクションの行き先を判断し、行き先がＩ／Ｏ１１５であることが分かるため、トランザクションはルーティングバッファ２０２によりノード間経路１２０を経由して、ノード１１０側のルーティングバッファ２１２へ格納される。ルーティングバッファ２１２は、トランザクションの行き先を再度判断し、行き先がＩ／Ｏ１１５であることが分かるため、トランザクションはルーティングバッファ２１２より共通経路２１８を経由して、ＦＩＦＯバッファ２１４へ格納される。ＦＩＦＯバッファ２１４から出力されたトランザクションはＩ／Ｏ１１５のＦＩＦＯバッファ２１６へ格納され、Ｉ／Ｏ１１５に到達する。
【００３１】
次に、障害発生時のサーバの動作について説明する。
図６は、障害発生から復旧までの手順を示すフローチャートである。図６に示すように、先ず、障害が発生すると、マネージメントファームウェアは、システムログ採取を行う（ステップＳ１０１）。システムログとはハードウェア上にあるトランザクション情報、装置情報などのデータであり、障害情報も含まれる。
【００３２】
次に、被疑解析プログラムは、システムログを解析し（ステップＳ１０２）、故障被疑を指摘、特定する（ステップＳ１０３）。被疑解析プログラムとはシステムログの障害情報から、故障箇所を特定するためのプログラムである。被疑が特定できたところで、保守員が保守を行い（ステップＳ１０４）、通常運用状態に復旧させる。また被疑は１つだけでなく、障害に関連する部位・経路を考慮して複数指定している場合が多い。
【００３３】
このような構成のデータ処理システムでは、タイムアウト障害が発生した場合に、被疑を特定することが難しい。このことについて、以下に説明する。
【００３４】
タイムアウト障害が発生したときの例として、ここでは、例えば、ＣＰＵ１０２でＩ／Ｏ１０５行きトランザクションのタイムアウト障害を検出した場合について説明する。
ＣＰＵ１０２で障害が発生すると、マネージメントファームウェアはシステムログを採取する（ステップＳ１）。採取されたログは被疑解析プログラムにより解析される（ステップＳ２）。このとき被疑解析プログラムはログからＣＰＵ１０２でタイムアウト障害が発生したことと、タイムアウトしたトランザクションの行き先がＩ／Ｏ１０５であることが判断できるので、「障害を検出した箇所（ＣＰＵ１０２）」と「タイムアウトしたトランザクションの行き先（Ｉ／Ｏ１０５）」を被疑として指摘することになる。なお、行き先を被疑として指摘していたのはトランザクションの行き先で故障が起きた可能性を示すためである。
【００３５】
しかしながら、ＣＰＵ１０２のタイムアウト障害の要因がＩ／Ｏ１０５の故障でなかった場合、被疑解析プログラムが示す被疑（今回の例の場合ＣＰＵ１０２とＩ／Ｏ１０５）の保守を行っても、再度障害が発生する可能性がある。
【００３６】
例えば図５に示すＦＩＦＯバッファ２０３、２０５が先行トランザクションにより詰まってしまい、Ｉ／Ｏ１０５への共通経路２０８が使用できなかったことでＣＰＵ１０２のタイムアウト障害が発生したのであれば、トランザクションを処理しきれていないＩ／Ｏ１０４が故障した可能性もある。
【００３７】
図１に示したようなトランザクション測定回路を用いると、このような構成のデータ処理システムでタイムアウト障害が発生した場合に、被疑を特定することができる。
【００３８】
図７は、ＣＰＵとＩ／Ｏを有する複数のノードの間でデータ転送を行うようにしたデータ処理システムにおいて、図１に示したようなトランザクション測定回路を用いることで、タイムアウト障害が発生した場合に被疑を特定できるようにしたものである。
【００３９】
図７において、ＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６に対して、トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６がそれぞれ設けられる。これらトランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６としては、図１に示した構成のものが用いられる。他の構成については、図４に示した  構成と同様である。
【００４０】
図８は、図７に示すように、ＦＩＦＯバッファに対してトランザクション測定回路を設けた場合の障害発生から復旧までの手順を示すフローチャートである。
【００４１】
図８において、障害が発生すると、マネージメントファームウェアは、システムログ採取を行う（ステップＳ２０１）。また、マネージメントファームウェアは、トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６から、ＦＩＦＯの詰まり具合を示す値（トランザクション測定用カウンタ１２のカウント値）をログとして採取し（ステップＳ２０２）、ログ解析を開始する（ステップＳ２０３）。そして、被疑解析プログラムは、タイムアウト障害が発生しているか否かを判定する（ステップＳ２０４）。タイムアウト障害が発生しているか否かは、トランザクションに対するリプライがあったか否かにより判定できる。
【００４２】
タイムアウト障害ではないと判定された場合（ステップＳ２０４  Ｎｏ）、被疑解析プログラムは、通常のログ解析により（ステップＳ２０５）、ステップＳ２０１で採取されたシステムログを基に、故障被疑を指摘、特定する（ステップＳ２１０）。そして、被疑が特定できたところで、保守員が保守を行い（ステップＳ２１１）、通常運用状態に復旧させる。
【００４３】
タイムアウト障害であると判定された場合（ステップＳ２０４  Ｙｅｓ）、被疑解析プログラムは、タイムアウトしたトランザクションの行き先解析を行った後（ステップＳ２０６）、ステップＳ２０２で解析したトランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のトランザクション測定用カウンタのカウント値から、ＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６の詰まり具合を解析する（ステップＳ２０７）。
【００４４】
そして、被疑解析プログラムは、被疑に追加する条件に一致しているか否かを判定する（ステップＳ２０８）。被疑に追加する条件は、各トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のトランザクション測定用カウンタのカウント値が図９に示すような各閾値を超えているか否かの判定結果に基づいて、図１１に示すような条件と照合することで行われる。
【００４５】
つまり、各トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のトランザクション測定用カウンタのカウント値は、各ＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６の詰まり具合を示している。各トランザクション測定用カウンタのカウント値がそれぞれのＦＩＦＯバッファの容量を超えているような場合には、ＦＩＦＯバッファが詰まり、障害が発生する可能性が高い。このことから、トランザクション測定用カウンタのカウント値は、各ＦＩＦＯバッファの容量に応じて設定される。
【００４６】
ここでは、ＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６の容量が図１０に示すようになっているとする。この場合、各トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のトランザクション測定用カウンタのカウント値の閾値は、図９に示すように、各ＦＩＦＯの容量に”１”を加えた数とされている。
【００４７】
ＦＩＦＯバッファが詰まっているときに、どの経路に障害が生じるかは、予め、解析できる。図１１に示す条件は、これに基づいて、追加する被疑の条件を設定したものである。
【００４８】
ステップＳ２０８では、被疑解析プログラムは、各トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のトランザクション測定用カウンタのカウント値と、図９に示すような閾値とを比較し、この判定結果に基づいて、図１１に示すような被疑に追加する条件と、タイムアウトが検出されたトランザクションの行き先とを照合して、条件に一致するか否かを判定する。
【００４９】
被疑解析プログラムは、被疑に追加する条件に一致していると判定すると（ステップＳ２０８  Ｙｅｓ）、被疑を追加する（ステップＳ２０９）。そして、被疑解析プログラムは、故障部位を特定し（ステップＳ２１０）、被疑が特定できたところで、保守員が保守を行い（ステップＳ２１１）、通常運用状態に復旧させる。
【００５０】
なお、被疑に追加する条件に一致していなければ（ステップＳ２０８  Ｎｏ）、通常のログ解析を行い（ステップＳ２０５）、その結果から、故障部位を特定し（ステップＳ２１０）、被疑が特定できれば、保守員が保守を行い（ステップＳ２１１）、通常運用状態に復旧させる。
【００５１】
このように、本実施形態では、ＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６に対して、トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６が設けられる。これらトランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６により、ＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６の詰まり具合が検出でき、このＦＩＦＯバッファの詰まり具合の情報を用いることで、タイムアウト障害が発生したときにも、被疑の部位を確実に判定できる。
【００５２】
例えば、前述と同様に、ＣＰＵ１０２でＩ／Ｏ１０５へ行くトランザクションのタイムアウト障害を検出した場合を説明する。
【００５３】
本実施形態では、図８に示したように、ＣＰＵ１０２で障害が発生すると、マネージメントファームウェアはシステムログを採取する（ステップＳ２０１）。このとき、マネージメントファームウェアは、トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のログも採取する（ステップＳ２０２）。被疑解析プログラムは、採取されたログの解析を開始し（ステップＳ２０３）、タイムアウト障害が発生しているか否かを判定する（ステップＳ２０４）。ここでは、Ｉ／Ｏ１０５へのトランザクションのタイムアウト障害を検出したので、被疑解析プログラムは、タイムアウト障害が発生したと判定する（ステップＳ２０４  Ｙｅｓ）。
【００５４】
タイムアウト障害と判断された場合には、被疑解析プログラムは、先ず通常のタイムアウトしたトランザクションの行き先解析を行う（ステップＳ２０６）。解析結果からＩ／Ｏ１０５へ行くトランザクションがタイムアウトしたことが分かるため、被疑解析プログラムは、Ｉ／Ｏ１０５を被疑に追加する。次に、被疑解析プログラムは、ＦＩＦＯバッファの詰まり具合を解析する（ステップＳ２０７）。被疑解析プログラムは、トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のトランザクション測定用カウンタのカウント値と、図９に示した各トランザクション測定用カウンタ閾値とを比較して、ＦＩＦＯバッファの詰まり具合を判定する。前述したように、図９に示した閾値は、図１０に示すＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６の容量に”１”を加えた数である。トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のトランザクション測定用カウンタのカウント値がこれらの閾値を超えていれば、それに対応するＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６が詰まっていると判定できる。
【００５５】
ここで、トランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６のトランザクション測定用カウンタのカウント値が、図１２に示すようになっていたとする。このとき、図１２と図９とを比較すると、ＦＩＦＯバッファ２０３のトランザクション測定用カウンタのカウント値”１２”がその閾値”１１”を超えており、また、ＦＩＦＯバッファ２０５のトランザクション測定用カウンタのカウント値”１２”がその閾値”１１”を超えている。他のＦＩＦＯバッファのトランザクション測定用カウンタのカウント値は閾値を超えていない。
【００５６】
したがって、被疑解析プログラムは、ＦＩＦＯバッファ２０３とＦＩＦＯバッファ２０５でバッファの詰まりが発生していると判定する。被疑解析プログラムは、この解析結果を基に、図１１に示した対応表に従って、被疑を追加する（ステップＳ２０９）。この場合、図１１に示す対応表から、ＦＩＦＯバッファ２０３とＦＩＦＯバッファ２０５でバッファの詰まりが発生しているのは、Ｎｏ２の場合に該当し、図１１の対応表から、被疑に追加するのは、ＣＰＵ１０１からＩ／Ｏ１０５に行くトランザクションである。前述のように、ＣＰＵ１０２でＩ／Ｏ１０５へ行くトランザクションのタイムアウト障害を検出しており、これは、被疑に追加する条件に一致する。
【００５７】
この場合、被疑解析プログラムは、以上の解析を行い、被疑としてタイムアウト障害が発生したＣＰＵ１０２、タイムアウトしたトランザクションの行き先であるＩ／Ｏ１０５、タイムアウト障害の一因であると考えられるＩ／Ｏ１０４を故障部位として特定する（ステップＳ２１０）。
【００５８】
次に、他の例として、ＣＰＵ１０２でＩ／Ｏ１１４行きトランザクションのタイムアウトを検出した場合について説明する。
【００５９】
上述と同様に、ＣＰＵ１０２で障害が発生するとマネージメントファームウェアは、システムログを採取する（ステップＳ２０１）。このときマネージメントファームウェアは、トランザクション測定用回路のログも採取する（ステップＳ２０２）。採取されたログは、被疑解析プログラムにより解析される（ステップＳ２０３）。そして、被疑解析プログラムは、ログ解析でタイムアウト障害であるか否かを判断する（ステップＳ２０４）。
【００６０】
ここでは、ＣＰＵ１０２でＩ／Ｏ１１４行きトランザクションのタイムアウトを検出したので、マネージメントファームウェアは、タイムアウト障害が発生したと判定する。
【００６１】
タイムアウト障害と判断された場合には、被疑解析プログラムは、先ず、通常のタイムアウトしたトランザクションの行き先解析を行う（ステップＳ２０６）。この解析結果からＩ／Ｏ１１４行きのトランザクションがタイムアウトしたことが分かるため、被疑解析プログラムは、Ｉ／Ｏ１１４を被疑に追加する。次にバッファの詰まり具合を解析する（ステップＳ２０７）。
【００６２】
被疑解析プログラムは、図９に示すバッファが詰まっていると判断する基準となる閾値と、採取されたトランザクション測定回路のカウント値とを比較する。ここで、各ＦＩＦＯバッファ２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６に対応するトランザクション測定回路３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６内のトランザクション測定用カウンタのカウント値は、図１２に示すような値であったとする。このときバッファが詰まっていると被疑解析プログラムで判断されるのは、閾値を超えているＦＩＦＯバッファ２０３と２０５となる。
【００６３】
被疑解析プログラムは、この解析結果を基に、図１１を参照し、被疑を追加するかどうか判断する（ステップＳ２０８）。上述のように、ここでは、ＣＰＵ１０２でＩ／Ｏ１１４行きトランザクションのタイムアウトを検出している。図１１におけるＮｏ７がＣＰＵ１０２からＩ／Ｏ１１４行きのトランザクションのタイムアウトの場合に詰まっているバッファである。図１１におけるＮｏ７では、ＦＩＦＯバッファ２１４、２１６が詰まっているとなっているが、各ＦＩＦＯのトランザクション測定用カウンタのカウント値から詰まっていると判定されたバッファは、ＦＩＦＯバッファ２０３と２０５であり、両者は一致していない。
【００６４】
このように、この場合には、被疑に追加する条件に一致しないため被疑の追加は行わない。これはトランザクションの行き先（通過経路）と関係がないバッファの詰まりであったためであり、かつＩ／Ｏ１１４の故障の可能性が高いことを示している。被疑解析プログラムは、以上結果から、被疑としてタイムアウト障害が発生したＣＰＵ１０２、タイムアウトしたトランザクションの行き先であるＩ／Ｏ１１４のみを故障部位として特定する（ステップＳ２１０）。
【００６５】
図１３は、本発明によるデータ処理システムの基本構成を示す概略ブロック図である。
上述した実施形態では、本発明によるデータ処理システムの一実施形態として図７に示す構成について説明したが、本発明によるデータ処理システムの基本構成は、図１３に示すとおりである。
すなわち、本発明によるデータ処理システム１００１は、各ノード中の各バッファ１００３の格納状態を検出するトランザクション測定手段１００２と、タイムアウト障害が発生した場合に、システムログ１００４と共に前記トランザクション測定手段１００２の計測値を取得し、前記システムログ１００４の結果と前記トランザクション測定手段１００２の計測値を基に、被疑の部位を特定する被疑解析手段１００５とを備えることを特徴とする。
【００６６】
上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００６７】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６８】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００６９】
（付記１）
複数のノード間でデータ転送を行うようにしてデータ処理システムであって、
各ノード中の各バッファの格納状態を検出するトランザクション測定手段と、
タイムアウト障害が発生した場合に、障害情報を含むシステムログの情報と前記トランザクション測定手段の計測値からバッファの格納状態の情報を取得し、前記システムログの情報と前記バッファの格納状態の情報を基に、被疑の部位を特定する被疑解析手段と
を備えることを特徴とするデータ処理システム。
【００７０】
（付記２）
前記トランザクション測定手段は、バッファにトランザクションが入力されてから、当該入力トランザクションと同一のトランザクションが前記バッファから出力されるまでのクロック数を計数することを特徴とする付記１に記載のデータ処理システム。
【００７１】
（付記３）
前記被疑解析手段は、前記バッファの格納状態の情報と閾値とを比較し、前記閾値を超える格納状態のバッファに障害が発生した場合に想定される部位を解析して、被疑を追加することを特徴とする付記１又は２に記載のデータ処理システム。
【００７２】
（付記４）
前記閾値は、前記バッファの容量に基づいて設定することを特徴とする付記３に記載のデータ処理システム。
【００７３】
（付記５）
複数のノード間でデータ転送を行うようにしてデータ処理システムの被疑解析方法であって、
障害情報を含むシステムログの情報と各ノード中の各バッファの格納状態の情報を取得し、
タイムアウト障害が発生した場合に、前記システムログの情報と前記各バッファの格納状態の情報を基に被疑の部位を特定する
ことを特徴とするデータ処理システムの被疑解析方法。
【００７４】
（付記６）
バッファにトランザクションが入力されてから、当該入力トランザクションと同一のトランザクションが前記バッファから出力されるまでのクロック数を計数することで、各ノード中の各バッファの格納状態の情報を取得する
ことを特徴とする付記５に記載のデータ処理システムの被疑解析方法。
【００７５】
（付記７）
複数のノード間でデータ転送を行うようにしてデータ処理システムの被疑解析プログラムであって、
障害情報を含むシステムログの情報と各ノード中の各バッファの格納状態の情報を取得するステップと、
タイムアウト障害が発生した場合に、前記システムログの情報と前記各バッファの格納状態の情報を基に被疑の部位を特定するステップと
を含むことを特徴とするデータ処理システムの被疑解析プログラム。
【００７６】
（付記８）
各ノード中の各バッファの格納状態の情報を取得するステップでは、バッファにトランザクションが入力されてから、当該入力トランザクションと同一のトランザクションが前記バッファから出力されるまでのクロック数を計数する
ことを特徴とする付記７に記載のデータ処理システムの被疑解析プログラム。
【００７７】
（付記９）
バッファに入力されるトランザクション情報を取り込んで保持するトランザクション保持レジスタと、
前記トランザクション保持レジスタにトランザクションが取り込まれてから、前記トランザクション保持レジスタに取り込まれたトランザクションと同様のトランザクションが前記バッファから出力されるまで、クロックをカウントするトランザクション測定用カウンタとを備え、
前記トランザクション測定用カウンタのカウント値により前記バッファの格納状態を計測する
ことを特徴とするトランザクション測定回路。
【符号の説明】
【００７８】
１１：トランザクション情報保持レジスタ
１２：トランザクション測定用カウンタ
１３：クリア信号生成回路
１４：インクリメントイネーブル信号生成回路
１５：ホールド信号生成回路
２００、２０１、２０３、２０４、２０５、２０６、２１０、２１１、２１３、２１４、２１５、２１６：ＦＩＦＯバッファ
３００、３０１、３０３、３０４、３０５、３０６、３１０、３１１、３１３、３１４、３１５、３１６：トランザクション測定回路
【図１】
0005911096.tif 000002
【図２】
0005911096.tif 000003
【図３】
0005911096.tif 000004
【図４】
0005911096.tif 000005
【図５】
0005911096.tif 000006
【図６】
0005911096.tif 000007
【図７】
0005911096.tif 000008
【図８】
0005911096.tif 000009
【図９】
0005911096.tif 000010
【図１０】
0005911096.tif 000011
【図１１】
0005911096.tif 000012
【図１２】
0005911096.tif 000013
【図１３】
0005911096.tif 000014