(57)【特許請求の範囲】
【請求項１】
サーバ・プログラムおよびクライアント・プログラムを含む複数のノードを有する分散コンピューティング環境で障害情報を参照する方法であって、前記複数のノードのうちの１つのノードで初期障害状態が検出されたときに、
前記１つのノードが、前記初期障害状態に関する情報を記録することによって、第１障害レポートを作成するステップと、
前記１つのノードが、前記複数のノードのいずれかのノードからの参照のために、前記１つのノード、および前記１つのノードに関連する記憶装置内で前記第１障害レポートが配置される場所を示す第１識別子を前記第１障害レポートに割り当て、前記第１識別子を含む障害レポートを前記記憶装置に格納するステップと、
前記１つのノードを除く前記複数のノードのいずれかのノードが、前記初期障害状態の結果として生ずる関連障害状態を検出するステップと、
前記１つのノードから送付された前記第１識別子を受領して前記いずれかのノードが、前記関連障害状態に関する情報を記録することによって第２障害レポートを作成するステップと、
前記いずれかのノードが、前記いずれかのノード、および前記いずれかのノードに関連する記憶装置内で前記第２障害レポートが配置される場所を示す第２識別子を前記第２障害レポートに割り当て、前記第１識別子および前記第２識別子を含む第２障害レポートを前記いずれかのノードに関連する記憶装置に格納するステップと
を含む方法。
【請求項２】
前記初期障害状態が、前記１つのノードの第１プログラムで発生し、前記関連障害状態が、前記いずれかのノードの第２プログラムで発生し、前記第１プログラムが、サーバ・プログラムを含み、前記第２プログラムが、クライアント・プログラムを含む、請求項１に記載の方法。
【請求項３】
前記関連障害状態が、第１関連障害状態を含み、前記方法が、ｎ個の追加の関連障害状態について前記作成するステップおよび前記格納するステップを繰り返すステップを含み、各追加の関連障害状態に関する障害レポートが、前記追加の関連障害状態が発生したノード、および該ノードに関連する記憶装置内でその障害レポートが配置される場所を示す識別子と、前記初期障害状態に関係する前記ｎ個の追加の障害状態を含む障害状態のチェーン内の障害状態に関する前の障害レポートの取出のための識別子とを含む、請求項１に記載の方法。
【請求項４】
サーバ・プログラムおよびクライアント・プログラムを含む複数のノードを有する分散コンピューティング環境で障害情報を参照する方法であって、
第１ノードでの第１プログラム障害状態の検出時に、前記第１ノードが前記第１プログラム障害状態に関する情報を記録することによって、第１プログラム障害レポートを作成するステップと、
前記第１ノードが、前記第１ノード、および前記第１ノードに関連する記憶装置内で前記第１プログラム障害レポートが配置される場所を示す第１識別子を前記第１プログラム障害レポートに割り当てるステップと、
前記第１プログラム障害状態に関係する、前記第１ノードと同じまたは前記第１ノードとは異なる第２ノードでの第２プログラム障害状態の検出時に、前記第２ノードが前記第２プログラム障害状態に関する情報を記録することによって第２プログラム障害レポートを作成するステップと、
前記第１ノードが、前記第１識別子を前記第２ノードに送るステップと、
前記第１ノードを除く前記第２ノードが、前記第２ノード、および前記第２ノードに関連する記憶装置内で前記第２プログラム障害レポートが配置される場所を示す第２識別子を前記第２プログラム障害レポートに割り当て、前記第１識別子および前記第２識別子を含む第２プログラム障害レポートを前記第２ノードに関連する記憶装置に格納するステップと
を含む方法。
【請求項５】
前記分散コンピューティング環境内のノードが障害情報をトレースするステップをさらに含み、前記トレースするステップが、前記第２識別子を使用して前記第２ノードから前記第２プログラム障害レポートを取り出すステップと、それから前記第１識別子を突きとめるステップと、前記第１識別子を使用して、前記分散コンピューティング環境の前記第１ノードの前記第１プログラム障害レポートを取り出すステップを含む、請求項４に記載の方法。
【請求項６】
サーバ・プログラムおよびクライアント・プログラムを含む複数のノードを有する分散コンピューティング環境で障害情報を参照するシステムであって、
ノードでの初期障害状態の検出時に、当該ノードにおいて前記初期障害状態に関する情報を記録することによって、第１障害レポートを作成する手段と、
前記複数のノードのいずれかのノードからの参照のために、前記ノード、および前記ノードに関連する記憶装置内で前記第１障害レポートが配置される場所を示す第１識別子を前記第１障害レポートに割り当て、前記第１識別子を含む前記第１障害レポートを前記記憶装置に格納する手段と、
前記初期障害状態の結果として、前記１つのノードを除く前記複数のノードのいずれかのノードで発生する関連障害状態に関する情報を記録することによって第２障害レポートを作成する手段と、
前記いずれかのノード、および前記いずれかのノードに関連する記憶装置内で前記第２障害レポートが配置される場所を示す第２識別子を前記第２障害レポートに割り当て、前記第１識別子および前記第２識別子を含む第２障害レポートを前記いずれかのノードに関連する記憶装置に格納する手段と
を含むシステム。
【請求項７】
前記初期障害状態が、前記ノードの第１プログラムで発生し、前記関連障害状態が、前記いずれかのノードの第２プログラムで発生し、前記第１プログラムが、サーバ・プログラムを含み、前記第２プログラムが、クライアント・プログラムを含む、請求項６に記載のシステム。
【請求項８】
前記関連障害状態が、第１関連障害状態を含み、前記システムが、ｎ個の追加の関連障害状態について、それぞれの障害レポートの作成および識別子の割当を実行する手段を含み、各追加の関連障害状態に関する障害レポートが、前記追加の関連障害状態が発生したノード、および該ノードに関連する記憶装置内でその障害レポートが配置される場所を示す識別子と、前記初期障害状態に関係する前記ｎ個の追加の障害状態を含む障害状態のチェーン内の障害状態に関する前の障害レポートの取出のための識別子とを含む、請求項６に記載のシステム。
【請求項９】
サーバ・プログラムおよびクライアント・プログラムを含む複数のノードを有する分散コンピューティング環境で障害情報を参照するシステムであって、
第１ノードで検出された第１プログラム障害状態に関する情報を記録することによって第１プログラム障害レポートを作成する手段と、
前記第１ノード、および前記第１ノードに関連する記憶装置内で前記第１プログラム障害レポートが配置される場所を示す第１識別子を前記第１プログラム障害レポートに割り当てる手段と、
前記第１プログラム障害状態に関係する、前記第１ノードと同じまたは前記第１ノードとは異なる第２ノードでの第２プログラム障害状態の検出時に、前記第２プログラム障害状態に関する情報を記録することによって第２プログラム障害レポートを作成する手段と、
前記第２ノード、および前記第２ノードに関連する記憶装置内で前記第２プログラム障害レポートが配置される場所を示す第２識別子を前記第２プログラム障害レポートに割り当て、前記第１識別子および前記第２識別子を含む第２プログラム障害レポートを前記第２ノードに関連する記憶装置に格納する手段と
を含むシステム。
【請求項１０】
前記分散コンピューティング環境内で障害情報をトレースする手段をさらに含み、前記トレースする手段が、前記第２識別子を使用して前記第２ノードから前記第２プログラム障害レポートを取り出す手段と、それから前記第１識別子を突きとめる手段と、前記第１識別子を使用して、前記分散コンピューティング環境の前記第１ノードの前記第１プログラム障害レポートを取り出す手段とを含む、請求項９に記載のシステム。
【請求項１１】
請求項１ないし請求項３のいずれかに記載の方法を実行するためのプログラムを記憶したプログラム記憶装置。
【請求項１２】
請求項４または請求項５に記載の方法を実行するためのプログラムを記憶したプログラム記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全般的には、複数の処理ノードを有する分散コンピューティング環境に関し、具体的には、分散コンピューティング環境内の、その環境の複数のノードのうちの同一または異なるノードで発生する複数の関係する障害状態を表す障害情報を参照する技法に関する。
【０００２】
【従来の技術】
分散システムは、複雑で動的なコンポーネント相互依存性に起因して管理が困難であることがしばしばである。マネージャが、分散システムで使用され、システム内のコンポーネントのアクティビティおよび現行状態に関する情報の取得、総合管理ポリシによる決定、およびコンポーネントの挙動を変更する制御処置の実行の責任を負う。一般に、マネージャは、分散システム内で５つの機能すなわち、構成、パフォーマンス、アカウンティング、セキュリティ、および障害管理を実行する。
【０００３】
これらの５つの機能のどれもが、複雑な分散システムで発生する障害の診断に特に適してはいない。手動管理を使用する障害の診断は、時間がかかり、分散システムの詳しい知識を必要とする。また、あるシステムのリソース制限が別のシステムでの性能低下を引き起こす可能性があり、これは分散アプリケーションのアーキテクチャおよびコンポーネントが一緒に働く方法に精通していなければ明白ではないので、分散環境での障害の切りわけは困難である。
【０００４】
分散コンピューティング環境では、多くのソフトウェア・コンポーネントが、エンドユーザに機能を提供するために独立の形で使用される。エンドユーザは、さまざまなコンポーネントの相互依存性を意識せず、その環境が期待される機能を提供することだけを知っていることがしばしばである。コンポーネントは、分散コンピューティング環境のさまざまな計算ノードにまたがって分散される可能性がある。コンポーネントが障害を経験する場合に、この障害は、分散コンピューティング環境全体に波及し、特定の機能について、障害を発生したコンポーネントに依存するコンポーネントの障害を引き起こす可能性がある。この波及効果は、最終的にエンドユーザが期待する機能を拒否されるまで、コンポーネントがそれに依存するコンポーネントの機能に影響しながら継続する。
【０００５】
【発明が解決しようとする課題】
この環境での課題は、許容可能な時間期間内にできる限り問題の根本原因（この場合では元の障害を発生したコンポーネント）の近くまで、症状（この場合では期待される機能の拒否）から障害状態をトレースすることである。この努力を複雑にしているのが、分散コンピューティング環境内に同時に複数の障害状態が存在する可能性があるという事実である。根本原因を正しく識別するために、問題の障害症状に関係する障害状態を識別しなければならず、これらの障害状態に関係する情報を収集しなければならない。関係しない障害状態は、分析から除去しなければならない。というのは、これらの状態の修理が、問題の障害症状の修理につながらないからである。今までは、これらの関係する障害を識別するには、分散コンピューティング環境、その実施形態、およびそのコンポーネントの相互依存性の詳しい知識が必要であった。このレベルの知識がある場合でも、問題判定の努力は、問題の障害状態の根本原因がどこにあるかに関する問題調査者の「最善推測」に基づく非決定的な努力である。分散コンピューティング環境が大きく、複雑になればなるほど、より多くのコンポーネントが環境に導入され、障害の原因がどこにあるかを信頼性のある形で「推測」することがますます困難になる。問題判定の努力を行うのに必要な知識は、分散コンピューティング環境の製造者だけが有し、分散コンピューティング環境管理者が障害を効率的に識別し、解決することが困難になっている。
【０００６】
【課題を解決するための手段】
簡単に要約すると、本発明には、一態様で、複数のノードを有する分散コンピューティング環境で障害情報を参照する方法が含まれる。この方法には、分散コンピューティング環境のノードでの障害状態の検出時に障害状態に関する情報を記録することによって障害レポートを作成するステップと、障害レポートに識別子を割り当て、ノードで障害レポートを記憶するステップとが含まれ、識別子は、障害レポートを作成した分散コンピューティング環境内のノードと、そのノードに関連する記憶装置内で障害レポートが配置される場所を含む障害レポートを一意に識別する。
【０００７】
もう１つの態様では、本発明には、複数のノードを有する分散コンピューティング環境内で障害情報を参照する方法が含まれる。この方法には、第１ノードでの第１プログラム障害状態の検出時に第１プログラム障害レポートを作成するステップと、第１プログラム障害レポートを作成した分散コンピューティング環境内のノードおよびそのノードに関連する記憶装置内で第１プログラム障害レポートが配置される場所を含む第１プログラム障害レポートを一意に識別する第１識別子を第１プログラム障害レポートに割り当てるステップと、第１プログラム障害状態に関係する第２ノードでの第２プログラム障害状態の検出時に第２プログラム障害レポートを作成するステップであって、第２プログラム障害レポートが、第２ノードで第２プログラム障害状態に関する情報を記録することによって作成され、第２ノードおよび第１ノードが、分散コンピューティング環境内の同一ノードまたは異なるノードを含むことができるステップと、第２プログラム障害レポートを作成する分散コンピューティング環境内の第２ノード、第２ノードに関連する記憶装置内で第２プログラム障害レポートが配置される場所、および第２プログラム障害状態に関係する第１プログラム障害状態に関する第１プログラム障害レポートの第１識別子を含む第２プログラム障害レポートを一意に識別する第２識別子を第２プログラム障害レポートに割り当てるステップとが含まれる。
【０００８】
分散コンピューティング環境内で障害情報を参照する、上で要約した方法を実行するために機械によって実行可能な命令の少なくとも１つのプログラムを具体的に実施する、システムおよび機械によって可読の少なくとも１つのプログラム記憶装置も、本明細書に記載され、請求される。
【０００９】
言い換えると、提示されるのは、分散コンピューティング環境内で障害情報を参照する技法である。環境のすべてのコンポーネントからアクセス可能な持続記憶装置を使用する。システム・コンポーネントによって検出され、持続記憶装置に記録される障害のレポートは、障害状態の性質、状態の可能な原因、およびその状態に応答して行われることが推奨される処置を記述することが好ましい。識別子トークンが割り当てられ、これによって、分散コンピューティング環境内でレコードが存在する位置と、レコードが存在するノードの持続記憶装置内の位置を含む、障害状態に関する特定の障害レポートが一意に識別される。この識別子を使用して、障害レポートを、分散コンピューティング環境内のどの位置からでも突きとめることができ、問題判定および解決策分析に使用するために取り出すことができる。この識別子は、コンポーネントの応答情報の一部として、環境の関係するコンポーネントの間で渡される。あるコンポーネントが、別のコンポーネントの障害に起因する障害を経験する場合には、識別子が、第１のコンポーネントの応答情報から取得され、第２のコンポーネントの障害レポートの一部として、記録される情報に含まれる。
【００１０】
本発明の原理によれば、障害レコードを検索するために分散コンピューティング環境問題判定を開始する位置を推測する、以前の必要が、除去される。エンドユーザ・アプリケーションに供給される一意の障害識別子によって、問題判定の努力で、障害レポートが分散コンピューティング環境内のどこにあるかに無関係に障害レポートを突きとめられるようになる。本発明は、調査中の状態に関係する障害レポートを識別する必要をなくす。障害識別子によって、障害レポートが参照され、その障害レポートによって、それに関連する１つ（または複数）の他の障害レポートが参照される。関係するレポートに、別の関係するレポートなどが列挙される。したがって、障害に関係する障害レポートを識別する必要がなくなる。というのは、各障害レポートに、次の関係する障害レポートが明示的に列挙されるからである。
【００１１】
さらに、分散コンピューティング環境の実施形態および相互依存性の詳細な理解は、もはや障害状態のトレースに必要ではなくなる。本発明は、分散コンピューティング環境製造者の介入を必要とするのではなく、問題の判定および解決を実行する能力を分散コンピューティング環境管理者の手に返す。問題判定の努力をどの特定の点から進めるかの推測は、もはや問題ではない。というのは、障害レポートに次の関連する問題が列挙され、したがって、次に調査を進めるべき場所が列挙されるからである。関係するリンクが報告されない場合には、問題判定の努力はその点から開始される。もやは、根本原因から問題症状を分離する必要はない。ある問題症状の障害レポートには、その原因に関するレポートが具体的に列挙されるか、最低限でも、最終的に根本原因につながる関係する障害のリスト内の次のリンクが列挙される。本発明の原理によれば、問題症状は、問題判定の努力の役に立つ出発点になるが、これは、以前のシステムでは、努力に暗影を投ずるのみであった。問題症状が、問題の根本原因ではない場合には、障害レポートに、問題のチェーン・リストへのリンクが含まれ、最終的に、問題判定の努力が根本原因に導かれる。
【００１２】
【発明の実施の形態】
図１は、本発明と共に使用することのできる分散コンピュータ・システム１００の概略図である。分散コンピュータ・システム１００は、米国ニューヨーク州アーモンクのInternational Business Machines Corporationが販売するＩＢＭＲＩＳＣ System/6000 Scalable POWERparallel Systems（ＳＰ）分散コンピュータ・システムとすることができる。 図１に開示された実施形態は、合計８フレームを有し、各フレームが１６個までのノードを有し、合計１２８個までのノードを有するＳＰコンピュータ・システムである。ノード１０６のすべてが、ローカル・エリア・ネットワーク（ＬＡＮ）１０２によって結合される。ノード１０６のそれぞれは、コンピュータ自体であり、当業者に周知の通り、ＲＩＳＣ System/6000ワークステーションとすることができる。
【００１３】
分散コンピュータ・システム１００の１フレーム内のすべてのノードが、１つのＬＡＮセグメントに含まれ、ＬＡＮセグメントは、ＬＡＮゲート１０４を介して他のＬＡＮセグメントによって結合される。やはりＬＡＮ１０２に接続されるのが、コントロール・ワークステーション（ＣＷＳ）１１２であり、これは、分散コンピュータ・システム１００の動作を制御する。コントロール・ワークステーションは、システム共用ディスクと称する、システム・データ・リポジトリ（ＳＤＲ）ファイルが格納される直接アクセス記憶装置（ＤＡＳＤ）１１４を有する。ＳＤＲファイルには、システム内に存在するノードのリストおよびそれらの構成などの情報が含まれ、ノード１０６のそれぞれのリソース定義およびオブジェクト定義が含まれる。各ノード１０６にも、分散コンピュータ・システム１００によって処理されるデータを格納するためのＤＡＳＤ装置１０７が含まれる。
【００１４】
一実施形態では、各フレームのノードが、ＩＢＭ Scalable POWERparallelスイッチ（ＳＰＳ）１０５にも接続される。各フレームのＳＰＳ１０５のそれぞれが、バス１１０によって、他のフレームの隣接するＳＰＳ１０５に接続される。
【００１５】
当技術分野で周知の通り、ＣＷＳ１１２は、ＬＡＮ１０２によって分散コンピュータ・システム１００のフレームにシステム・データ信号およびシステム制御信号を送り、メッセージおよびデータは、ＳＰＳ１０５によってあるノード１０６から別のノード１０６に送ることができる。
【００１６】
本発明に対してより具体的に、図２は、本発明の原理による障害情報参照を使用するための分散コンピューティング環境のノード、ノード・アルファ２００の一実施形態を示す図である。ノード・アルファ２００には、本発明の原理に従って実施される第１障害データ取込（ＦＦＤＣ）インターフェース２２０と通信する１つまたは複数のアプリケーション・プログラム２１０が含まれる。ＦＦＤＣインターフェース２２０は、一例ではＡＩＸエラー・ロギング・サブシステム２３０を介してＡＩＸエラー・ログ持続記憶装置２４０へ、または、第１障害データ取込エラー・スタック持続記憶装置２５０へ、障害レポートを格納し、取り出す。代替実施形態では、ＡＩＸエラー・ログ持続記憶装置２４０および第１障害データ取込エラー・スタック持続記憶装置２５０に、ノード・アルファ２００内の同一の記憶装置を含めることができる。第１障害データ取込エラー・スタック持続記憶装置２５０は、通常はＡＩＸエラー・ログ持続記憶装置２４０に送られないはずの情報を格納することができる。ＡＩＸエラー・ロギング・サブシステム２３０およびＡＩＸエラー・ログ持続記憶装置２４０は、International Business Machines Corporationが提供するＡＩＸ Operating Systemと共に入手可能なコンポーネントである。
【００１７】
本発明によれば、障害を検出するハードウェア・デバイス・ドライバおよびソフトウェア・コンポーネントが、本明細書で第１障害データ取込（ＦＦＤＣ）と称する、明示的に障害の持続的記録のために供給されるソフトウェア機能を使用して、障害の持続的記録を行う。ＦＦＤＣは、ノード・アルファ２００がプログラム障害を最初に検出したノードである場合に、そのプログラム障害に初期障害状態または関連障害状態のどちらが含まれる場合でも、障害レポートを作成する。本明細書で使用する「関連障害状態」は、分散コンピューティング環境の同一ノードまたは異なるノードのいずれかでの、別の障害状態の発生から生じる障害である。
【００１８】
障害レコードを作成する時に、ＦＦＤＣシステム・コンポーネントが、十分な情報を提供し、その結果、１）障害が適当に記述され、その結果、後の分析の努力で障害状態の性質および範囲が理解されるようになり、２）分散コンピューティング環境製造者にとって重要な具体的な詳細が記録され、その結果、製造者が、その状態が存在するようになった理由を理解でき、したがって、分散コンピューティング環境設計の欠陥のすべてを識別でき、修理できるようになることが好ましい。
【００１９】
ＦＦＤＣインターフェース２２０は、特定の障害レポートごとに一意のトークンを計算する。このトークンを、本明細書では識別子またはＦＦＤＣ障害識別子（ＦＦＤＣ  ＩＤ）と称するが、これによって、以下の情報がカプセル化されることが好ましい。
障害レポート上で障害が検出された分散コンピューティング環境内の計算ノード位置が記録される。
障害レポートの格納に使用された持続記憶装置。
レコードが存在する持続記憶装置内の特定の位置。
障害レポートが記録された時刻。
【００２０】
ＦＦＤＣ障害識別子は、障害情報を持続記憶装置に記録する前に、ＦＦＤＣソフトウェアによって生成される。ＦＦＤＣは、その後、障害情報自体の一部としてＦＦＤＣ障害識別子を組み込み、障害情報およびそのＦＦＤＣ障害識別子を持続記憶装置に記録する。ＦＦＤＣ障害識別子は、その後、サービス・コンポーネント、たとえばハードウェア・デバイス・ドライバまたはソフトウェア・コンポーネントに送り返され、そのサービス・コンポーネントは、このトークンをクライアントに供給するか、障害報告情報の一部として使用する。
【００２１】
図３は、図２のＦＦＤＣインターフェース２２０、ＡＩＸエラー・ロギング・サブシステム２３０、ＡＩＸエラー・ログ持続記憶装置２４０、および第１障害データ取込エラー・スタック持続記憶装置２５０を含む、やはり符号２００で示される代替のノード・アルファを示す図である。さらに、図３のノード・アルファ２００内のアプリケーション・プログラムは、サーバ・プログラムまたはサービス・アプリケーション・プログラム２１４およびクライアント・アプリケーション・プログラム２１２によって置換されている。クライアント・アプリケーション・プログラム２１２およびサービス・アプリケーション・プログラム２１４の両方が、ＦＦＤＣインターフェース２２０と直接にインターフェースすることができる。さらに、クライアント・アプリケーション・プログラム２１２は、サービス・アプリケーション・プログラムを介してＦＦＤＣインターフェースと間接的にインターフェースすることができる。たとえば、サービスが障害を経験し、ＦＦＤＣインターフェース２２０から受け取る障害情報をクライアント・アプリケーション・プログラム２１２に返すことができる。
【００２２】
図４は、複数のノードすなわち、ノード・アルファ４００、ノード・ベータ４０１、ノード・ガンマ４０２、およびノード・デルタ４０３を有する分散コンピューティング環境を示す図である。ノード・アルファ４００、ノード・ベータ４０１、ノード・ガンマ４０２、およびノード・デルタ４０３のそれぞれには、ノード間の分散通信およびデータ受け渡しを処理する分散アプリケーション・コンポーネント４０５が含まれる。各ノードのＦＦＤＣインターフェース４２０は、互いに直接には通信しない。各ノードには、さらに、アプリケーション・プログラム４１０ならびに、ＡＩＸエラー・ロギング（Elog）サブシステム４３０、ＡＩＸエラー・ログ記憶装置４４０、およびＦＦＤＣエラー・スタック記憶装置４５０が含まれる。各ＦＦＤＣインターフェース４２０は、その特定のノードの持続記憶装置への情報の記録だけに関係する。やはり、ＦＦＤＣインターフェースは、本発明の原理に従う、障害レポートの形での障害情報の記録および一意の識別子の割当の責任を負う。一意の識別子は、分散アプリケーション・コンポーネントを使用してノード間で転送することができる。一実施形態では、分散アプリケーション・コンポーネント４０５に、ＩＢＭ社のParallel System Support Program（ＰＳＳＰ）ソフトウェア、バージョン３．１を含めることができる。
【００２３】
図５は、本発明の原理による第１障害データ取込（ＦＦＤＣ）インターフェース論理５２０を使用する、分散コンピューティング環境のノード・アルファ５００の一実施形態を示す図である。この例では、サービス・アプリケーション・プログラム５１４での初期エラー状態または初期障害状態が発生したと仮定する。やはり、「初期障害状態」には、障害のチェーンの最初の障害または根本障害が含まれ、初期障害状態に関係し、その後に発生する各障害を、「関連障害状態」と称する。ＦＦＤＣインターフェース５２０は、サービス・アプリケーション・プログラム５１４から保存された障害情報から障害レコードを作成する。この障害レコードは、その後、持続記憶装置すなわち、この実施形態では、たとえばその情報がシステム操作員に使用可能にされたかどうかに応じて、ＡＩＸエラー・ロギング・サブシステム５３０を介してＡＩＸエラー・ログ持続記憶装置５４０または直接に第１障害データ取込エラー・スタック持続記憶装置５５０のいずれかに記録される。障害位置識別子（ＦＦＤＣ  ＩＤ）は、ＦＦＤＣインターフェース５２０によってサービス・アプリケーション・プログラム５１４に供給され、サービス・アプリケーション・プログラム５１４は、この識別子を、この場合ではやはりノード・アルファ５００に存在するクライアント・アプリケーション・プログラム５１２に返すことができる。ＦＦＤＣ  ＩＤまたはアプリケーション障害レコードを供給するほかに、サービス・アプリケーション・プログラムは、クライアント・アプリケーション・プログラムに、サービス・アプリケーション・プログラム内でエラーが発生していることの表示も供給する。
【００２４】
図６は、図５のノード・アルファで持続記憶装置に格納するための障害レコードを作成する論理の一実施形態を示す図である。まず、障害が、ノードでＦＦＤＣインターフェースの上の層で検出される（５６０）。障害状態に関係するデータを収集し（５６２）、ＦＦＤＣインターフェースを介して記録する（５６４）。
【００２５】
ＦＦＤＣインターフェースを介するデータのこの記録には、障害状態に関係する障害データの収集（５６６）と、障害が関連障害状態である場合の、関係する障害レコードからのＦＦＤＣ  ＩＤの収集（５６８）が含まれる。新しいレコードの障害位置識別子を作成し（５７０）、障害データ、新しいレコードのＦＦＤＣ  ＩＤおよび、供給される場合に関係障害からのＦＦＤＣ  ＩＤから、障害レコード自体を作成する（５７２）。ＦＦＤＣインターフェースは、その後、データを持続記憶装置のどこに格納するかを選択する（５７４）すなわち、データを（この例では）ＦＦＤＣエラー・スタック（５７６）とＡＩＸエラー・ログ（５７８）のどちらに記録するかを選択する。新しい障害レポートのＦＦＤＣ  ＩＤ（５８０）を、ＦＦＤＣインターフェースによって返して（５６４）クライアント・プログラムに障害表示を転送する（５８２）。
【００２６】
図７は、サービス・アプリケーション・プログラム６１４内の障害状態に応答してクライアント・アプリケーション・プログラム６１２内で関連障害状態が発生したと仮定される、分散コンピューティング環境のノード６００を示す図である。クライアント・アプリケーション・プログラム６１２からの障害情報が、第１障害データ取込（ＦＦＤＣ）インターフェース６２０に転送されて、第１障害データ取込エラー・スタック持続記憶装置６５０またはＡＩＸエラー・ロギング・サブシステム６３０を介するＡＩＸエラー・ログ持続記憶装置６４０への格納のためのもう１つの障害レコードの作成に使用される。新しい障害位置識別子ＦＦＤＣ  ＩＤが、最終的にＦＦＤＣインターフェース６２０によってクライアント・アプリケーション・プログラムに返される。関連障害状態の障害情報の受取と共に、ＦＦＤＣインターフェースは、サービス・アプリケーション・プログラム６１４で発生した初期障害状態に関する障害レポートの位置を識別する、サービス・アプリケーション・プログラム６１４からの障害位置識別子（ＦＦＤＣ  ＩＤ）を受け取る。この新しいＦＦＤＣ  ＩＤは、クライアント・アプリケーション・プログラムに転送され、このクライアント・アプリケーション・プログラム自体は、（たとえば）分散コンピューティング環境の別のノードに存在する、クライアントに対するサーバ・プログラムとすることができる。そのような場合には、エラー表示が、クライアント・アプリケーション・プログラム６１２の障害レコードの障害位置識別子（ＦＦＤＣ  ＩＤ）と共に、他のノードのクライアント・アプリケーションに送られる。
【００２７】
図８は、本発明の第１障害データ取込インターフェース論理を使用する、図７のノードで発生する関連障害状態を記録する論理流れの例を示す図である。関連障害状態を検出し（６６０）、サーバ・プログラムの障害位置識別子（ＦＦＤＣＩＤ）を、サーバ・プログラムから取得する（６６１）。関連障害状態に関係するデータを収集し（６６２）、ＦＦＤＣ論理を使用して障害レコードを作成する（６６４）。
【００２８】
ＦＦＤＣ論理は、関連障害に関係するデータ（６６６）ならびに関係する障害レコードからのＦＦＤＣ  ＩＤ（６６８）を使用してデータ・レコードを作成する。新しい障害位置識別子を割り当て（６７０）、障害データ、レコードのＦＦＤＣ  ＩＤ、および前の関係する障害からのＦＦＤＣ  ＩＤを使用して、新しい障害レコードを作成する（６７２）。記憶装置を選択する（６７４）が、これには、エラー・スタック（６７６）またはＡＩＸエラー・ログ（６７８）を含めることができる。インターフェース論理（６６４）を介して新しいＦＦＤＣ  ＩＤを返して（６８０）、障害表示と共にノード外（この例では）のクライアント・プログラムに転送する（６８２）。
【００２９】
図９は、リモート・ノードからノード・ベータ７００に受け取られる障害通知の例を示す図である。この例では、分散アプリケーション・コンポーネント７１３が、障害通知を受け取り、障害情報を第１障害データ取込（ＦＦＤＣ）インターフェース７２０に供給する。障害情報のほかに、リモート・ノードのコンポーネントからの障害位置識別子も受け取られ、その情報が、ノード・ベータ７００で発生する関連障害状態の障害レコードの作成に使用される。障害レコードは、やはり、たとえば操作員がサービスまたは交換部品を要求するためにエラーについて現在知る必要があるかどうかに応じて、エラー・ロギング・サブシステム７３０を介してＡＩＸエラー・ログ持続記憶装置７４０にまたは第１障害データ取込エラー・スタック持続記憶装置７５０に記録される。ＦＦＤＣインターフェース７２０は、新しい関連障害状態の新しい識別子を返す。この新しいＦＦＤＣ識別子は、エラー表示と共に、たとえば分散コンピューティング環境の別のノードで稼動する、クライアント・アプリケーションに転送される。
【００３０】
図１０は、図９に示された関連障害状態を記録する一実施形態の流れ図である。リモート・コンポーネントから障害通知を受け取る（７６０）が、これには障害位置識別子が含まれる（７６１）。ノード・ベータ７００（図９）で発生している関連障害状態に関係するデータを収集する（７６２）。この情報を一緒に、障害レポート内の障害データの記録のためにＦＦＤＣインターフェースに転送する（７６４）。障害レポートは、ノード・ベータでの障害に関係するデータ（７６６）を、リモート・コンポーネントから受け取ったＦＦＤＣ  ＩＤ（７６８）と組み合わせ、ノード・ベータで作成される新しい障害レコードに新し障害位置識別子を割り当てる（７７０）ことによって構成される。障害レコードは、関連障害状態データ、新しい障害レコードのＦＦＤＣ  ＩＤ、およびリモート・コンポーネントから受け取った関係する障害からのＦＦＤＣ  ＩＤから作成される（７７２）。ＦＦＤＣインターフェースは、その後、記憶媒体を選択する（７７４）が、これには、上で説明したように、ＦＦＤＣエラー・スタック（７７６）またはＡＩＸエラー・ログ（７７８）への障害レコードの記録を含めることができる。記録の後に、ノード・ベータで格納された関連障害レコードの障害位置識別子（７８０）を障害表示と共にクライアント・プログラムに転送するためにＦＦＤＣインターフェースを介して返す（７８２）。
【００３１】
上で説明した発明は、分散コンピューティング環境での障害の診断および解決での前述の問題を解決するのに使用される。これらの問題の解決における問題点には、下記が含まれることを想起されたい。
エンドユーザが見る症状が、問題自体の根本原因であることがほとんどない。
症状は、通常は、分散コンピューティング環境の依存コンポーネントでの他の障害によって引き起こされた障害によって引き起こされる。
関係する障害を自動的に識別できない限り、分散コンピューティング環境の実施形態およびコンポーネント相互依存性の詳しい理解が、これらの問題を解決する方法を知るのに必要である。この情報は、分散コンピューティング環境製造者だけが知っている（問題解決を顧客の手から奪う）。
関係する障害のレコードを識別しなければならず、関係しない障害レコードを分析に含めてはならない。
障害レコードが、分散コンピューティング環境全体に分散している。
【００３２】
要約すると、本発明の使用を介して、初期障害状態を検出する分散コンピューティング環境コンポーネントが、この障害に関する情報を持続記憶装置に記録する。このコンポーネントは、ＦＦＤＣソフトウェアに障害情報を供給し、ＦＦＤＣソフトウェアは、この障害レポートを識別する一意のトークン（ＦＦＤＣ障害識別子）を計算する。ＦＦＤＣソフトウェアは、その後、このレコードのＦＦＤＣ障害識別子と、コンポーネントによって供給された障害情報を組み合わせて障害レポートにし、このレポートを持続記憶装置に記録する。コンポーネントは、障害を示すソフトウェア・エラー・コードを供給するが、障害情報の一部としてこのトークンを依存コンポーネントに供給する。
【００３３】
依存コンポーネントは、その後、障害を発生したコンポーネントに要求する機能が、それ自体の機能を送達するのに必要であったので、障害を経験する可能性がある。依存コンポーネントは、それ自体の障害状態に関する情報も持続記憶装置に記録し、記録される障害情報の一部として、障害を発生したコンポーネントからのＦＦＤＣ障害識別子を供給する。それを行う際に、依存コンポーネントは、それ自体の障害状態と、それを引き起こした障害を発生したコンポーネントの元の障害状態との間のリンクを確立する。依存コンポーネントは、この情報をＦＦＤＣソフトウェアにサブミットし、ＦＦＤＣソフトウェアは、依存コンポーネントの障害レポートを識別する新しいＦＦＤＣ識別子を計算する。ＦＦＤＣソフトウェアは、新しいＦＦＤＣ識別子、依存コンポーネントの障害情報、および元の障害を発生したコンポーネントの関係するＦＦＤＣ障害識別子を、単一の障害レポートに組み込み、このレポートを持続記憶装置に記録する。依存コンポーネントは、その後、ＦＦＤＣソフトウェアから、それ自体のレコード（元の障害を発生したコンポーネントのレコードではなく）のＦＦＤＣ識別子を受け取る。依存コンポーネントは、障害を示すソフトウェア・エラーを供給するが、それ自体のクライアントにこのＦＦＤＣ識別子を供給する。
【００３４】
分散コンピューティング環境の次のコンポーネントは、依存コンポーネントを元の障害を発生したコンポーネントであるかのように扱って、上の段落で輪郭を示したステップを繰り返す。次のコンポーネントは、ＦＦＤＣ障害識別子および障害情報をＦＦＤＣソフトウェアに供給し、ＦＦＤＣソフトウェアは、新しいコンポーネントのレポートの新しいＦＦＤＣ障害識別子を計算し、新しい障害レコード内のすべての情報を持続記憶装置に記録し、ＦＦＤＣ障害識別子を新しいコンポーネントに与える。新しいコンポーネントは、この新しいＦＦＤＣ障害識別子を、その障害情報の一部としてクライアントに供給し、このサイクルが繰り返される。
【００３５】
この方法を使用して、分散コンピューティング環境のコンポーネントが、関係する障害を一緒にリンクする。別のコンポーネントの障害に起因する障害が発生する時には、必ず、関係するコンポーネントの障害レポートへのリンクが確立される。
【００３６】
前述の図では、ノード・アルファで実行中のコンポーネントが、障害状態を検出する。そのコンポーネントは、この障害状態を持続記憶装置に記録する際に、その障害レポートだけを識別する一意のトークンを得る。このトークンは、分散コンピューティング環境内のどこからでも、この障害に関する正確な障害レポートを突きとめるのに使用することができる。ノード・アルファのコンポーネントは、このトークン（ＦＦＤＣ障害識別子）を、それのサービスを要求したものと同一のノードのコンポーネントに供給する。この障害のゆえに、クライアント・アプリケーションも障害を経験する。クライアントは、障害情報およびサービスのＦＦＤＣ障害識別子をＦＦＤＣソフトウェアに供給し、ＦＦＤＣソフトウェアは、サービスのＦＦＤＣ識別子を障害情報の一部として記録する。これによって、クライアントの障害状態の間のリンクが確立される。新しいＦＦＤＣ障害識別子が、クライアントの障害のために作成され、ＦＦＤＣによってクライアントに供給される。クライアントは、この新しいＦＦＤＣ障害識別子を、ノード・ベータで実行中の、アルファで実行中のコンポーネントにサービスを要求したコンポーネントに供給する。このシナリオが繰り返され、ベータのコンポーネントがノード・アルファからのＦＦＤＣ障害識別子をその障害レポートに記録し、これによって、ベータの障害状態とノード・アルファでの出来事の間のリンクが確立される。新しいＦＦＤＣ障害識別子が、ベータの障害レポートのために作成され、ベータの障害応答の一部としてエンドユーザ・アプリケーションに返される。
【００３７】
エンドユーザ・アプリケーションは、ＦＦＤＣ障害識別子をノード・ベータから受け取った時に、関係する障害状態のリストの初期リンクを有する。このＦＦＤＣ障害識別子は、その後、他のＦＦＤＣソフトウェア・ユーティリティが、その識別子に関する正確な障害レポートを取り出し、関係する障害の識別子を取得し、その障害レポートも取得するのに使用される。次の障害レポートに、別の関連障害レポートへのリンクも含まれる場合、そのレポートも取得され、このサイクルは、根本原因の障害が取得されるまで繰り返される。
【００３８】
図１１は、各ノードが本発明のＦＦＤＣインターフェース論理８２０を実施する複数のノード８００、８０１、８０２、および８０３を有する分散コンピューティング環境の例である。各ノードには、上で説明したＡＩＸエラー・ロギング・サブシステム８３０、ＡＩＸエラー・ログ記憶装置８４０、およびＦＦＤＣエラー・スタック記憶装置８５０も含まれる。これらのノードは、ＦＦＤＣコマンド８１５および各ノードのＲシェル８１７を使用して通信する。Ｒシェル８１７は、ＵＮＩＸオペレーティング・システムで使用可能なリモート・シェル・コマンドであり、リモート・ノードでコマンドを実行するジョブ許可を提供する。分散アプリケーションが障害通知を受け取ったと仮定すると、エンドユーザ・アプリケーション８１１は、分散アプリケーション・コンポーネント８１３によって、障害について知らされ、上で説明したように、障害位置識別子（ＦＦＤＣ  ＩＤ）を与えられる。この障害位置識別子ＦＦＤＣ  ＩＤは、その後、ＦＦＤＣコマンド８１５およびＲシェル８１７コマンドを介して要求元ノードに転送することができる。この実施形態では、エンドユーザ・アプリケーション８１１は、本発明の原理に従って連鎖された識別子を使用して障害状態の完全なリストを取り出し、分散コンピューティング環境の適当なノード８００、８０１、８０２、または８０３からレポートを取り出すことができる。
【００３９】
図１２および１３は、障害レポートを取り出すための一実施形態を示す図である。根本原因までの障害状態の症状のトレースは、分散アプリケーションを呼び出し（８６２）、アプリケーションが成功裡に完了したかどうかを判定するために待機する（８６４）ことによって開始することができる（８６０）。成功裡に完了した場合、処理を単純に終了する（８９６）。障害状態が発生した場合、障害位置識別子をアプリケーション状況から取得し（８６６）、第１データ取込障害レポート・コマンドを呼び出して（８６７）、分散システムのノードから障害レポート情報を収集する。
【００４０】
図１３からわかるように、まず、ローカルＦＦＤＣエラー・スタックから障害レポートを取り出し（８６８）、これを使用して、次の障害レポートに関する位置情報を得る（８７０）。次の障害レポートがローカル・ノード上に記録されているかどうかを問い合わせる（８７２）。そうである場合には、ＦＦＤＣインターフェースは、レポートがＡＩＸエラー・ログまたはＦＦＤＣエラー・スタックのどちらに配置されたかを判定する。次のレポートを、適当な持続記憶装置から取り出す（８７６および８７８、または、８８０および８８２）。その代わりに、次のレポートがリモート・ノード上にある場合には、リモート・ノードに送られる障害レポート・コマンドを使用して、リモート・ノードの第１障害データ取込インターフェースを使用する（８９０）。障害レポートが、リモート・ノードから返される（８９２）。障害レポート（８９２、８８２、または８７８）から関係するＦＦＤＣ  ＩＤを取り出し（８８４）、ＦＦＤＣインターフェースによって生成されるレポートで使用するために障害レポートを準備する（８８６）。障害レポートは、ＦＦＤＣインターフェース（図１３）に転送されるが、レポートを転送する前に、関係するＦＦＤＣ  ＩＤがレポート内で見つかるかどうかを判定する（８８８）。そうである場合には、処理がループ・バックして、そのＦＦＤＣ  ＩＤに関係する障害レポートを取得する（８６８）。障害レポートが、クライアント・プログラムに返され、推奨される処置を実行するために調べられ（８９４）、その後、トレース処理が終了する（８９６）。
【００４１】
上で述べた本発明の障害情報参照機能を、下でさらに要約する。当業者は、図面に示された２つのソフトウェア・ユーティリティによって供給される障害レコードの持続記憶が、例にすぎないことに留意されたい。ＡＩＸエラー・ログは、ＩＢＭ社のＡＩＸ Operating Systemの一部として供給され、第１障害データ取込エラー・スタックは、本発明の一部として供給される新しい持続記憶テーブルである。
【００４２】
一意の障害識別子は、文字列として供給することができ、下の情報からＦＦＤＣユーティリティによって計算することができる。
障害レポートが記録された日付および時刻。
情報の記録に使用された持続記憶装置の表示（たとえば、ＡＩＸエラー・ログおよびＦＦＤＣエラー・スタック）。
ＡＩＸエラー・ログ装置が使用された時にはこの記録を行うのに使用されたエラー情報テンプレート、ＦＦＤＣエラー・スタック装置が使用された時にはＦＦＤＣエラー・スタック・ファイルのｉ−ノード番号。
ＩＰｖ４フォーマットまたはＩＰｖ６フォーマットのいずれかの、計算ノードのＩＰアドレス。
【００４３】
このトークンは、表示可能文字だけで構成され、この情報をすべての端末装置またはテキスト・ファイルに表示することが可能であり、このデータをシステム・コンポーネント間で伝送することができる。
【００４４】
ソフトウェア・コンポーネント、アプリケーション、およびハードウェア・デバイス・ドライバは、コンポーネント始動時に実行環境を初期設定する。情報は、ＦＦＤＣユーティリティによる便利で効率的な取出を可能にし、障害レポートを生成する必要が生じた時に必ずこの情報を継続的に取り出す必要をなくすために、プロセスの環境内に格納される。コンピュータ・ノードのＩＰアドレスおよび使用されるＦＦＤＣエラー・スタック（ある場合）は、この環境データに含まれる。
【００４５】
障害状態が検出された時に、ソフトウェア・コンポーネント、アプリケーション、またはハードウェア・デバイス・ドライバは、ＦＦＤＣユーティリティに下記の情報を供給する。
障害レポートの記録に使用される持続記憶装置の表示（たとえば、ＡＩＸエラー・ログまたはＦＦＤＣエラー・スタック）。
エラー情報テンプレート（ＡＩＸエラー・ログの場合）または記述メッセージ（ＦＦＤＣエラー・スタックの場合）を介する、障害状態の記述。ＡＩＸエラー・ログが持続記憶装置として選択された時には、エラー情報テンプレートは、少なくとも４つの詳細データ・フィールドを指定し、その最初の３つがＦＦＤＣユーティリティによる使用のために予約されることが期待される。
問題調査者による使用を目的とする、障害の詳細。
前に報告された障害がこの障害状態の出現に影響した場合の、任意選択のＦＦＤＣ障害識別子。
【００４６】
ＦＦＤＣユーティリティは、下記に基づいて、この障害レポートの一意のＦＦＤＣ障害識別子を計算する。
起動中にコンポーネントによってセット・アップされる環境情報すなわち、計算ノードのＩＰアドレスおよびＦＦＤＣエラー・スタック・ファイルのｉ−ノード番号（ＦＦＤＣエラー・スタックがこのコンポーネントによって使用される持続記憶装置である場合）。
エラー情報テンプレート識別子（ＡＩＸエラー・ログがこのコンポーネントによって使用される持続記憶装置である場合）。
現在の日付および時刻。
【００４７】
障害情報をＡＩＸエラー・ログに記録する時に、コンポーネントによって供給される前に報告された障害のＦＦＤＣ障害識別子が含まれる。この識別子は、たとえば第３詳細データ・フィールドに記録される。
【００４８】
障害情報をＦＦＤＣエラー・スタックに記録する時に、障害レポートおよび任意選択の関係する障害のＦＦＤＣ障害識別子が、その目的のために予約されたレコード・フィールドに記録される。
【００４９】
ＦＦＤＣユーティリティは、障害レポートを適当な持続記憶装置に記録し、新たに作成されたレコードのＦＦＤＣ障害識別子を、障害を報告したコンポーネントに供給する。コンポーネントは、このＦＦＤＣ障害識別子を、障害報告情報の一部として、障害状態を知らせるためにそのクライアントに通常供給する障害表示またはメッセージまたは戻りコードと共に、そのクライアントに供給することが期待される。
【００５０】
コンポーネントが、可変量の障害情報をそのクライアントに送る能力を有しない（たとえば、終了状況だけを親シェルまたはスクリプトに供給するコマンド）場合、コンポーネントは、このＦＦＤＣ障害識別子を標準エラー装置に表示する。コンポーネントのクライアントは、コンポーネントからの標準エラー出力を解析することによってＦＦＤＣ障害識別子を得る。
【００５１】
障害状態の根本原因を見つけるために、症状の障害レポートのＦＦＤＣ障害識別子が、ＦＦＤＣエンドユーザ・ユーティリティに供給される。このユーティリティは、ＦＦＤＣ障害識別子を解釈して、下記を判定する。
分散コンピューティング環境のどの計算ノードに障害レポートがあるか。
その計算ノードのどの持続記憶装置が障害レポートの記録に使用されているか。
障害情報の記録にどのエラー情報テンプレートが使用されたか（ＡＩＸエラー・ログが持続記憶装置である場合）。
その計算ノードのどのファイルがＦＦＤＣエラー・スタック情報の格納に使用されているか（ＦＦＤＣエラー・スタックが持続記憶装置である場合）。
持続記憶装置への記録が行われた日付および時刻。
【００５２】
この情報を取得した後に、ユーティリティは、ＦＦＤＣ障害識別子によって示される計算ノードの持続記憶装置から障害レポートを取り出す。ＦＦＤＣ障害識別子自体は、その障害状態の特定のレコードを識別するための検索キーとして使用され、ＦＦＤＣ障害識別子は、障害レポートに記録される情報に含まれる。ＡＩＸエラー・ログから障害レポートを取得するには、ＡＩＸオペレーティング・システム・コマンド「errpt」を使用し、ＦＦＤＣエラー・スタック装置から障害レポートを取得するには、ＦＦＤＣエンドユーザ・コマンド「fcstkrpt」を使用する。ＡＩＸコマンド「rsh」は、障害のレコードが、ＦＦＤＣエンド・ユーザが実行中のシステムに存在しない場合に、分散コンピューティング環境内のリモート・ノードから情報を取得するのに使用される。
【００５３】
ＦＦＤＣエンドユーザ・ユーティリティによって得られた障害レポートは、エンドユーザの確立したロケールを使用して、ＦＦＤＣユーティリティ・ユーザに供給される。このレポートに、関係する障害または関連障害のＦＦＤＣ障害識別子が含まれる場合には、このＦＦＤＣ障害識別子が、障害レポートの内容から取得される。前にリストしたステップが繰り返され、下記の条件の１つが満足されるまで障害レポートが取得される。
障害レポートによって参照される障害レポートがこれ以上存在しない。そのレポートに、障害レポート内の関連ＦＦＤＣ障害識別子がリストされていない。
ＦＦＤＣ障害識別子の障害レポートを取得することができない。
【００５４】
したがって、障害レポートのリストが、エンドユーザに提供される。ユーザは、エンドユーザの視点から気付かれた障害症状につながる障害のシーケンスを理解することができる。問題判定の努力は、エンドユーザの障害症状から開始し、その障害がどこから発したかを「推測」しようとするのではなく、出発点としてユーティリティから得られた最後の障害レポートを使用することによって開始することができる。
【００５５】
たとえば、本発明は、たとえばコンピュータ使用可能媒体を有する、製造品（たとえば、１つまたは複数のコンピュータ・プログラム製品）に含めることができる。この媒体は、たとえば、本発明の機能を提供し促進するコンピュータ可読プログラム・コード手段をその中に実施される。製造品は、コンピュータ・システムの一部として含めるか、別々に販売することができる。
【００５６】
さらに、本発明の機能を実行するために機械によって実行可能な少なくとも１つの命令のプログラムを具体的に実施する、機械によって可読の少なくとも１つのプログラム記憶装置を提供することができる。
【００５７】
本明細書で示された流れ図は、例として提供される。これらの図または本明細書に記載のステップ（または動作）に対する、本発明の主旨から逸脱しない変形形態がありえる。たとえば、場合によっては、ステップを異なる順序で実行することができ、ステップの追加、削除、または変更を行うことができる。これらの変形形態のすべてが、請求項に記載の本発明の一部を含むと見なされる。
【図面の簡単な説明】
【図１】本発明の原理による障害情報参照機能を使用する分散コンピューティング環境の一実施形態を示す図である。
【図２】本発明の原理による第１障害データ取込インターフェース論理を使用する分散コンピューティング環境の１ノードのブロック図である。
【図３】サーバ・アプリケーション・プログラムとクライアント・アプリケーション・プログラムの両方を有し、やはり本発明の原理による第１障害データ取込インターフェース論理を使用する分散コンピューティング環境の１ノードのブロック図である。
【図４】各処理ノードが分散アプリケーション・コンポーネントを使用して他の処理ノードと通信し、各処理ノードに本発明の原理による第１障害データ取込（ＦＦＤＣ）インターフェース論理が含まれる、複数の処理ノードを有する分散コンピューティング環境の図である。
【図５】本発明の原理による第１障害データ取込インターフェース論理を使用し、サービス・アプリケーション・プログラムでの初期エラーが仮定される、分散コンピューティング環境の１ノードのブロック図である。
【図６】本発明の第１障害データ取込インターフェース論理を使用して、図５の初期プログラム障害状態を記録するための一実施形態の流れ図である。
【図７】関連障害状態がクライアント・アプリケーション・プログラムで発生した場合の、本発明の第１障害データ取込インターフェース論理を有する分散コンピューティング環境のノードを示す図である。
【図８】第１障害データ取込インターフェース論理を使用して図７の関連障害状態に関する情報を記録するための一実施形態の流れ図である。
【図９】本発明の原理による第１障害データ取込インターフェース論理を使用して、分散システムのリモート・ノード上のコンポーネントからの障害通知に応答してノードで関連障害状態を記録する、分散コンピューティング環境のノードを示す図である。
【図１０】本発明の第１障害データ取込インターフェース論理を使用して図９の関連障害状態を記録するための一実施形態の流れ図である。
【図１１】各ノードが本発明の第１障害データ取込（ＦＦＤＣ）インターフェース論理を使用し、これを使用して本発明の技法を使用して根本原因まで障害の症状をトレースすることができる、分散コンピューティング環境の一実施形態を示す図である。
【図１２】本発明の第１障害データ取込インターフェース論理および割り当てられた識別子を使用して、根本原因まで障害の症状をトレースするための一実施形態の流れ図である。
【図１３】本発明の第１障害データ取込インターフェース論理および割り当てられた識別子を使用して、根本原因まで障害の症状をトレースするための一実施形態の流れ図である。
【符号の説明】
１００  分散コンピュータ・システム
１０２  ローカル・エリア・ネットワーク（ＬＡＮ）
１０４  ＬＡＮゲート
１０５  ＩＢＭ Scalable POWERparallelスイッチ（ＳＰＳ）
１０６  ノード
１０７  ＤＡＳＤ装置
１１０  バス
１１２  コントロール・ワークステーション（ＣＷＳ）
１１４  直接アクセス記憶装置（ＤＡＳＤ）
２００  ノード・アルファ
２１０  アプリケーション・プログラム
２１２  クライアント・アプリケーション・プログラム
２１４  サービス・アプリケーション・プログラム
２２０  第１障害データ取込（ＦＦＤＣ）インターフェース
２３０  ＡＩＸエラー・ロギング・サブシステム
２４０  ＡＩＸエラー・ログ持続記憶装置
２５０  第１障害データ取込エラー・スタック持続記憶装置
【図１】
0004215384.tif 000002
【図２】
0004215384.tif 000003
【図３】
0004215384.tif 000004
【図４】
0004215384.tif 000005
【図５】
0004215384.tif 000006
【図６】
0004215384.tif 000007
【図７】
0004215384.tif 000008
【図８】
0004215384.tif 000009
【図９】
0004215384.tif 000010
【図１０】
0004215384.tif 000011
【図１１】
0004215384.tif 000012
【図１２】
0004215384.tif 000013
【図１３】
0004215384.tif 000014