(57)【要約】      （修正有）【課題】膨大なエラーメッセージ間の因果関係を迅速かつ正確に推測する。【解決手段】予め複数の因果関係推定値算出ルールを記憶するステップと、第１のエラーメッセージのＩＤ、第１の時刻、第１のプロセスのＩＤ、第１通信相手又は第１共有相手、第１のプロセス間通信又は第１の共有ファイルの第１生成時刻及び第１消滅時刻を第１の装置から受け取るステップと、第２のエラーメッセージについて第１のエラーメッセージと同様の情報を第２の装置から受け取るステップと、第１のプロセスＩＤと第２のプロセスＩＤが同一であるか、第１のプロセスと第２のプロセスとの間に少なくとも一時的にプロセス間通信が存在したか、少なくとも一時的に共有ファイルが存在したか、第１の時刻と第２の時刻との間にプロセス間通信又は共有ファイルが存在したかに基づいて因果関係推定値算出ルールを選択するステップと、因果関係推定値を算出するステップとを実行させる。【選択図】図１
2005190270.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
予め複数の因果関係推定値算出ルール、を記憶するステップと、
第１のエラーメッセージのＩＤ、前記第１のエラーメッセージが生成された第１の時刻、前記第１のエラーメッセージを生成した第１のプロセスのＩＤ、前記第１のプロセスがコネクトしていた第１のプロセス間通信の第１通信相手又は第１の共有ファイルの第１共有相手、前記第１のプロセス間通信又は前記第１の共有ファイルの第１生成時刻及び第１消滅時刻を第１の装置から受け取るステップと、
第２のエラーメッセージのＩＤ、前記第２のエラーメッセージが生成された第２の時刻、前記第２のエラーメッセージを生成した第２のプロセスのＩＤ、前記第２のプロセスがコネクトしていた第２のプロセス間通信の第２通信相手又は第２の共有ファイルの第２共有相手、前記第２のプロセス間通信又は前記第２の共有ファイルの第２生成時刻及び第２消滅時刻を第２の装置から受け取るステップと、
前記第１のプロセスＩＤと前記第２のプロセスＩＤが同一であるかを判断する、
前記第１通信相手が前記第２のプロセスか又は前記第２通信相手が前記第１のプロセスかに基づいて、前記第１のプロセスと前記第２のプロセスとの間に少なくとも一時的にプロセス間通信が存在したかを判断する、
前記第１共有相手が前記第２のプロセスか又は前記第２共有相手が前記第１のプロセスかに基づいて、前記第１のプロセスと前記第２のプロセスとの間に少なくとも一時的に共有ファイルが存在したかを判断する、
前記第１の時刻、前記第２の時刻、並びに前記第１生成時刻、前記第１消滅時刻、前記第２生成時刻、及び前記第２消滅時刻の内の少なくとも１つの時刻に基づいて、前記第１の時刻と前記第２の時刻との間に前記第１のプロセス間通信若しくは前記第１の共有ファイル又は前記第２のプロセス間通信若しくは前記第２の共有ファイルが存在したかを判断する、
の内の少なくとも１つを実行し、その判断の結果に基づいて適用すべき因果関係推定値算出ルールを選択するステップと、
適用すべき因果関係推定値算出ルールに基づいて、因果関係推定値を算出するステップと、を実行させる因果関係推定プログラム。
【請求項２】
予め同一プロセス内関係強さ係数、及び第１の定数を記憶するステップを、さらに含み、
前記第１のプロセスＩＤと前記第２のプロセスＩＤが同一である場合に選択される因果関係推定値算出ルールが、
因果関係推定値＝（同一プロセス内関係強さ係数）＋（第１の定数）−｜（第１の時刻）−（第２の時刻）｜
である請求項１記載の因果関係推定プログラム。
【請求項３】
予め第１の関係強さ係数、第２の関係強さ係数、及び第１の定数を記憶するステップを、さらに含み、
前記第１のプロセスと前記第２のプロセスとの間に少なくとも一時的にプロセス間通信が存在した場合に選択される因果関係推定値算出ルールが、
因果関係推定値＝（第１の関係強さ係数）＋（第２の関係強さ係数）＋（第１の定数）−｜（第１の時刻）−（第２の時刻）｜
である請求項１記載の因果関係推定プログラム。
【請求項４】
予め第１の関係強さ係数、第２の関係強さ係数、第１の定数、及び第２の定数を記憶するステップを、さらに含み、
前記第１のプロセスと前記第２のプロセスとの間に少なくとも一時的にファイル共有が存在した場合に選択される因果関係推定値算出ルールが、
因果関係推定値＝（第１の関係強さ係数）＋（第２の関係強さ係数）＋（第１の定数）−（第２の定数）＊（並び間隔数）
である請求項１記載の因果関係推定プログラム。
【請求項５】
前記第１のエラーメッセージのエラーメッセージＩＤと、前記第２のエラーメッセージのエラーメッセージＩＤとを記憶装置から読み出すステップと、
前記第１のエラーメッセージＩＤと前記第２のエラーメッセージＩＤとを表示装置に表示する表示信号を出力するステップと、
前記因果関係推定値が閾値以上又は閾値より大である場合に、前記第１のエラーメッセージＩＤと前記第２のエラーメッセージＩＤとを結ぶ線を前記表示装置に表示する表示信号を出力するステップと、
をさらにコンピュータに実行させる請求項１乃至４記載の因果関係推定プログラム。
【請求項６】
前記因果関係推定値の大小に応じて、前記線の太さ、種類、色の種類、又は色の濃さの少なくとも一つを変更する請求項５記載の因果関係推定プログラム。
【請求項７】
予め複数の原因・結果推定ルールを記憶しておくステップと、
前記第１のプロセスＩＤと前記第２のプロセスＩＤが同一か、
前記第１の時刻と前記第２の時刻の間隔は、メッセージ発生時間間隔閾値以上又はより大か、
前記第１のプロセスと前記第２のプロセスが親子プロセスか、
に基づいて適用すべき原因結果推定ルールを選択するステップと、
適用すべき原因結果推定ルールに基づき原因メッセージと結果メッセージを推定するステップと、
原因結果推定結果に基づいて、前記原因メッセージから前記結果メッセージへ向かうことを示す矢印を表示する表示信号を出力するステップと、
をさらにコンピュータに実行させる請求項５乃至６記載の因果関係推定プログラム。
【請求項８】
前記第１のプロセスＩＤと前記第２のプロセスＩＤが同一、又は
前記第１の時刻と前記第２の時刻の間隔がメッセージ発生時間間隔閾値以上又はより大、である場合に選択される原因結果推定ルールが、
発生時刻が古いメッセージが原因、発生時刻が新しいメッセージが結果と推定するものである請求項７記載の因果関係推定プログラム。
【請求項９】
前記第１のプロセスと前記第２のプロセスが親子プロセスである場合に選択される原因結果推定ルールが、
子プロセスが発生したメッセージが原因、親プロセスが発生したメッセージが結果と推定するものである請求項７乃至８記載の因果関係推定プログラム。
【請求項１０】
前記第１のプロセスＩＤと前記第２のプロセスＩＤが同一、又は
前記第１の時刻と前記第２の時刻の間隔は、メッセージ発生時間間隔閾値以上又はより大、ではなく、
前記第１のプロセスと前記第２のプロセスが親子プロセスでない場合に選択される原因結果推定ルールが、
年齢の高いプロセスが発生したメッセージが原因、年齢の低いプロセスが発生したメッセージが結果と推定するものである請求項７乃至９記載の因果関係推定プログラム。
【請求項１１】
記憶手段が、予め複数の因果関係推定値算出ルール、を記憶するステップと、
受信手段が、第１のエラーメッセージのＩＤ、前記第１のエラーメッセージが生成された第１の時刻、前記第１のエラーメッセージを生成した第１のプロセスのＩＤ、前記第１のプロセスがコネクトしていた第１のプロセス間通信の第１通信相手又は第１の共有ファイルの第１共有相手、前記第１のプロセス間通信又は前記第１の共有ファイルの第１生成時刻及び第１消滅時刻を第１の装置から受け取り、
第２のエラーメッセージのＩＤ、前記第２のエラーメッセージが生成された第２の時刻、前記第２のエラーメッセージを生成した第２のプロセスのＩＤ、前記第２のプロセスがコネクトしていた第２のプロセス間通信の第２通信相手又は第２の共有ファイルの第２共有相手、前記第２のプロセス間通信又は前記第２の共有ファイルの第２生成時刻及び第２消滅時刻を第２の装置から受け取るステップと、
選択手段が、前記第１のプロセスＩＤと前記第２のプロセスＩＤが同一であるかを判断する、
前記第１通信相手が前記第２のプロセスか又は前記第２通信相手が前記第１のプロセスかに基づいて、前記第１のプロセスと前記第２のプロセスとの間に少なくとも一時的にプロセス間通信が存在したかを判断する、
前記第１共有相手が前記第２のプロセスか又は前記第２共有相手が前記第１のプロセスかに基づいて、前記第１のプロセスと前記第２のプロセスとの間に少なくとも一時的に共有ファイルが存在したかを判断する、
前記第１の時刻、前記第２の時刻、並びに前記第１生成時刻、前記第１消滅時刻、前記第２生成時刻、及び前記第２消滅時刻の内の少なくとも１つの時刻に基づいて、前記第１の時刻と前記第２の時刻との間に前記第１のプロセス間通信若しくは前記第１の共有ファイル又は前記第２のプロセス間通信若しくは前記第２の共有ファイルが存在したかを判断する、
の内の少なくとも１つを実行し、その判断の結果に基づいて適用すべき因果関係推定値算出ルールを選択するステップと、
算出手段が、適用すべき因果関係推定値算出ルールに基づいて、因果関係推定値を算出するステップと、を含む因果関係推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおいて障害発生時に生成されるエラーメッセージ間の因果関係を迅速かつ正確に理解することを支援する因果関係推定プログラム及び因果関係推定方法に関する。
【背景技術】
【０００２】
コンピュータシステムは拡大を続け、その構造は益々複雑化している。システム内で障害が発生すると、システムを構成する各コンポーネントが膨大な障害メッセージ、エラーメッセージ等を発生する。膨大な障害メッセージ、エラーメッセージ等をシステム管理者が手作業で関連付けてシステム障害の原因を特定することは容易ではない。
【０００３】
システム障害発生時に、さまざまなシステムを構成する各コンポーネントが生成した膨大な障害メッセージ、エラーメッセージ等を一元的に集めＧＵＩ上にリアルタイムに表示するプログラムが存在する（例えば、非特許文献１参照）。
【非特許文献１】”システム管理 Tivoli | 製品 | Tivoli Business Systems Manager”、[online]、「平成１５年１２月１８日検索」、インターネット＜URL: http://www-6.ibm.com/jp/software/tivoli/products/systems_mgr.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
障害メッセージ又はエラーメッセージの依存関係を知ることが困難という課題がある。
【０００５】
マルチベンダーかつ分散協調で構成され稼動している情報システムのハードやソフト（これ以降 “ システム構成要素 ” と呼ぶ）から、運用コンソールに種々雑多なメッセージが次から次へと表示されている。メッセージには、障害あり、警告あり、単なる稼動状況ありで、有用な情報を見分けるのが困難である。
【０００６】
特に、システム構成要素のどこかで障害が起きると、依存関係又は因果関係を有する全てのシステム構成要素から障害メッセージが発生する。現行の障害メッセージにはその依存関係を示す情報は提供されていない。依存関係を把握するには人間の解釈が必要である。
【０００７】
しかし依存関係又は因果関係の把握は運用オペレータには非常に困難であり、当該システムを担当しているSE（システムエンジニア）に頼らざるを得ない。
【０００８】
その結果、担当SE は土日夜中もセンターから呼び出され、その負荷が大きい。障害対応には普通にやっても時間がかかる。場合によっては、重要なメッセージを読み落とし、ユーザの求める障害対応の期待水準を遵守できないこともある。
【０００９】
障害箇所に近い順に時間を追って、影響を受けるシステム構成要素から障害メッセージが発生するとは限らない。また、複数の障害が同時に起きている可能性は常にある。従って、障害箇所に最も近いシステム構成要素の障害メッセージを見分け、これと関連する他のシステム構成要素の障害メッセージをその依存関係又は因果関係で整理することが求められる。それも瞬時に行うことが望ましい。
【００１０】
依存関係の推定には知識と情報が必要である。  
必要な知識（一般則）と、対象の構成情報（個別則）を持っているからこそ、担当SE による依存関係推定が可能である。しかし、一般則とは言え知識をシステム化するのは非常に困難である。
【００１１】
また、実際のシステムは多数の人間・部署の参加で構成され稼動している。個別則である対象システムの構成情報は常に変化していて、全体の最新の詳細な情報を常に現状と一致するように把握しておくことは極めて困難である。 
従って、障害に関する知識や構成情報から障害メッセージの依存関係を推定するのは困難である。
【課題を解決するための手段】
【００１２】
本発明の特徴は、因果関係推定プログラムであって、コンピュータに、
予め複数の因果関係推定値算出ルール、を記憶するステップと、
第１のエラーメッセージのＩＤ、前記第１のエラーメッセージが生成された第１の時刻、前記第１のエラーメッセージを生成した第１のプロセスのＩＤ、前記第１のプロセスがコネクトしていた第１のプロセス間通信の第１通信相手又は第１の共有ファイルの第１共有相手、前記第１のプロセス間通信又は前記第１の共有ファイルの第１生成時刻及び第１消滅時刻を第１の装置から受け取るステップと、
第２のエラーメッセージのＩＤ、前記第２のエラーメッセージが生成された第２の時刻、前記第２のエラーメッセージを生成した第２のプロセスのＩＤ、前記第２のプロセスがコネクトしていた第２のプロセス間通信の第２通信相手又は第２の共有ファイルの第２共有相手、前記第２のプロセス間通信又は前記第２の共有ファイルの第２生成時刻及び第２消滅時刻を第２の装置から受け取るステップと、
前記第１のプロセスＩＤと前記第２のプロセスＩＤが同一であるかを判断する、
前記第１通信相手が前記第２のプロセスか又は前記第２通信相手が前記第１のプロセスかに基づいて、前記第１のプロセスと前記第２のプロセスとの間に少なくとも一時的にプロセス間通信が存在したかを判断する、
前記第１共有相手が前記第２のプロセスか又は前記第２共有相手が前記第１のプロセスかに基づいて、前記第１のプロセスと前記第２のプロセスとの間に少なくとも一時的に共有ファイルが存在したかを判断する、
前記第１の時刻、前記第２の時刻、並びに前記第１生成時刻、前記第１消滅時刻、前記第２生成時刻、及び前記第２消滅時刻の内の少なくとも１つの時刻に基づいて、前記第１の時刻と前記第２の時刻との間に前記第１のプロセス間通信若しくは前記第１の共有ファイル又は前記第２のプロセス間通信若しくは前記第２の共有ファイルが存在したかを判断する、
の内の少なくとも１つを実行し、その判断の結果に基づいて適用すべき因果関係推定値算出ルールを選択するステップと、
適用すべき因果関係推定値算出ルールに基づいて、因果関係推定値を算出するステップと、を実行させることにある。
【００１３】
「プロセス」には、「スレッド」も含まれる。「プロセスＩＤ」は、一つのプロセスと他のプロセスとを識別可能なものであれば何でも良い。
【００１４】
「第１の装置」と「第２の装置」は異なる装置であっても同じ装置であっても良い。
【００１５】
第１の時刻と第２の時刻との間に、第１生成時刻、第１消滅時刻、第２生成時刻、第２消滅時刻のいずれかが存在する場合は、第１の時刻と第２の時刻との間に少なくとも一時的に第１のプロセス間通信若しくは第１の共有ファイル又は第２のプロセス間通信若しくは第２の共有ファイルが存在したものと判断することができる。
【００１６】
また、第１生成時刻と第１消滅時刻との間又は第２生成時刻と第２消滅時刻との間に第１の時刻及び第２の時刻が存在する場合も、第１の時刻と第２の時刻との間に少なくとも一時的に第１のプロセス間通信若しくは第１の共有ファイル又は第２のプロセス間通信若しくは第２の共有ファイルが存在したものと判断することができる。
【００１７】
ファイル共有とは、一方のプロセスが、共有ファイルをオープンし、クローズした後に、他方のプロセスが、共有ファイルをオープンし、クローズする場合と、一方のプロセスが、共有ファイルをオープンし、クローズする前に、他方のプロセスが、共有ファイルをオープンする場合、の両方を含む。
【発明の効果】
【００１８】
本発明の特徴によれば、対象となるシステム構成がどのように変化しても、障害の依存関係がどのようであっても、エラーメッセージ間の因果関係を推定することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面に基づいて本発明の実施例について説明する。実施例は、単なる例に過ぎず、本発明の技術的範囲を限定するものではない。
【００２０】
図１は、本発明の実施例の全体構成を示す。  
第１のＯＳがプロセスＰ１，Ｐ２，Ｐ３を生成する。第１のＯＳは、プロセスＰ１、Ｐ２、Ｐ３のプロセスID、そのプロセス生成時刻、消滅時刻をOSのログファイルOS-LF1に記録する。第1のOSは、プロセスＰ１とプロセスＰ２間に、第1のプロセス間通信を介したデータ交換を仲介する。第1のOSは、前記第1のプロセス間通信のIDおよび生成時刻、消滅時刻、前記第1のプロセス間通信にコネクトしたプロセスのIDおよびそのコネクト開始時刻および終了時刻をOSのログファイルOS-LF1に記録する。
【００２１】
第1のOSは、プロセスＰ２とプロセスＰ３間に、第１のファイルＦ１を介したデータ交換を仲介する。第1のOSは、前記第１のファイルＦ１のIDおよび生成時刻、消滅時刻、前記第１のファイルＦ１にコネクトしたプロセスのIDおよびそのコネクト開始時刻および終了時刻をOSのログファイルOS-LF1に記録する。
【００２２】
プロセスＰ１、プロセスＰ２、プロセスＰ３は、各々が生成するエラーメッセージ、エラーメッセージID、エラーメッセージ生成時刻を各々のログファイルLF１、ログファイルLF２、ログファイルLF３に記録する。
【００２３】
また、第２のＯＳがプロセスＰ４，Ｐ５，Ｐ６を生成する。第２のＯＳは、プロセスＰ４、Ｐ５、Ｐ６のプロセスID、そのプロセス生成時刻、消滅時刻をOSのログファイルOS-LF２に記録する。第２のOSは、プロセスＰ４とプロセスＰ５間に、第２のプロセス間通信を介したデータ交換を仲介する。第２のOSは、前記第２のプロセス間通信のIDおよび生成時刻、消滅時刻、前記第２のプロセス間通信にコネクトしたプロセスのIDおよびそのコネクト開始時刻および終了時刻をOSのログファイルOS-LF２に記録する。
【００２４】
第２のOSは、プロセスＰ５とプロセスＰ６間に、第２のファイルＦ２を介したデータ交換を仲介する。第２のOSは、前記第２のファイルＦ２のIDおよび生成時刻、消滅時刻、前記第２のファイルＦ２にコネクトしたプロセスのIDおよびそのコネクト開始時刻および終了時刻をOSのログファイルOS-LF２に記録する。
【００２５】
プロセスＰ４、プロセスＰ５、プロセスＰ６は、各々が生成するエラーメッセージ、エラーメッセージID、エラーメッセージ生成時刻を各々のログファイルLF４、ログファイルLF５、ログファイルLF６に記録する。
【００２６】
プロセスＰ３とプロセスＰ５は第１のネットワーク１を介して第３のプロセス間通信を行う。第１のOSは、第１のネットワークが提供するプロセス間通信のIDおよび生成時刻、消滅時刻、前記第３のプロセス間通信にコネクトした第１のOS管理下のプロセスのIDおよびそのコネクト開始時刻および終了時刻を第１のOSのログファイルOS-LF１に記録する。第２のOSは、第１のネットワークが提供するプロセス間通信のIDおよび生成時刻、消滅時刻、前記第３のプロセス間通信にコネクトした第２のOS管理下のプロセスのIDおよびそのコネクト開始時刻および終了時刻を第２のOSのログファイルOS-LF２に記録する。
【００２７】
因果関係推定装置１０は、読み取り装置１１、書き込み装置１２、記憶装置１３、中央処理装置１４、出力装置１５、表示装置１６などから構成される。
【００２８】
読み取り装置１１は、ネットワーク１を介して又はネットワーク１を介さずに、OSのログファイルOS-LF-1〜２およびプロセスのログファイルLF１〜６から、記録された内容を読み取る。
【００２９】
書き込み装置１２は、OSのログファイルOS-LF-1〜２およびプロセスのログファイルLF１〜６から読み取った内容を時系列に並べイベントファイルとして記憶装置１３に記憶する。また、書き込み装置１２は、ログファイルLF１〜４から読み取った内容に基づいて、エラーメッセージが生成した時刻、エラーメッセージのＩＤ、エラーメッセージを生成したプロセスのＩＤを、時系列に並べたエラーメッセージ・プロセス関係ファイルを記憶装置１３に記憶する。
【００３０】
記憶装置１３は、イベントファイルやエラーメッセージ・プロセス関係ファイルを記憶する他に、因果関係推定値算出ルールファイル、関係強さ係数・定数ファイル、閾値ファイルなども記憶する。記憶装置として、読み書き可能なランダムアクセスメモリ（ＲＡＭ）、ハードディスク（ＨＤ）やフロッピー（登録商標）ディスク（ＦＤ）などの磁気ディスク、ＤＶＤ−ＲＡＭなどの光ディスクが利用される。
【００３１】
中央処理装置（ＣＰＵ）１４は、記録装置１３の内容から、任意の２つのエラーメッセージに着目し、それらが同じプロセスIDが生成したエラーメッセージか、プロセス間通信を介して情報交換していたか、ファイルを介して情報交換していたかを抽出し、エラーメッセージ生成時刻、エラーメッセージＩＤ、エラーメッセージ生成プロセスＩＤ間の関係を抽出する。また、因果関係推定値算出ルール、各関係強さ係数、各定数等に基づいて、各エラーメッセージ間の因果関係を推定する。
【００３２】
出力装置１５は、中央処理装置１４が推定した因果関係を表示装置１６に表示するための表示信号を出力する。
【００３３】
表示装置１６は、出力装置１５から表示信号を受信して、エラーメッセージやそのＩＤやそれらの間の因果関係を表示する。表示装置１６には、ＣＲＴディスプレイ、ＥＬディスプレイ、液晶ディスプレイ、プラズマディスプレイなどが含まれる。
【００３４】
読み取り装置１１、書き込み装置１２、記憶装置１３、中央処理装置１４、出力装置１５はバス（不図示）を介してデータを送受信することができる。
【実施例１】
【００３５】
（プロセス・ファイル・通信管理機能）
各ＯＳは「プロセス・ファイル・通信管理機能」を有する。  
「プロセス・ファイル・通信管理機能」とは、
・ プロセスからの要求に基づく同一OSでの別プロセスの新規生成かつ消去
・ プロセスからの要求に基づく同一OSでのファイルの新規生成かつ接続（読み出し・書き込み）・切り離し、あるいは既存ファイルとの接続（読み出し・書き込み）・切り離し
・ プロセスからの要求に基づく同一OSでの別のプロセスとの通信の新規生成かつ接続（読み出し・書き込み）・切り離し、あるいは既存通信との接続（読み出し・書き込み）・切り離し
・ プロセスからの要求に基づく、ネットワークが提供する別のOS上のファイルの新規生成かつ接続（読み出し・書き込み）・切り離し、あるいは既存遠隔ファイルとの接続（読み出し・書き込み）・切り離し
・ プロセスからの要求に基づく、ネットワークが提供する別のOS上のプロセスとの通信の新規生成かつ接続（読み出し・書き込み）・切り離し、あるいは既存通信との接続（読み出し・書き込み）・切り離し
を管理する機能である。
【００３６】
これらは、当該OSによって一つのあるいは複数のログファイルに記録される。
【００３７】
扱われるプロセスID、ファイルID、通信IDと共に上記がログファイルに記録される。
【００３８】
（ログファイル・プロセス状況把握機能）
各アプリケーションは「ログファイル」を有するものとする。  
アプリケーションは一つあるいは複数のプロセスから構成されるが、それらに対応して一つのあるいは複数のログファイルが生成され、対応するプロセスからその実行状況（ログ）がログファイルに書き込まれる。
【００３９】
・ 実行状況は、実行状況を示す内容（メッセージ文）とその状況が生じた時刻、これを書き込んだプロセスのID、書き込んだ時刻である。
【００４０】
読み取り装置１１は、これらＯＳあるいはアプリケーションを構成するプロセスのログファイルから、プロセス・ファイル・通信状況を読み取り、書き込み装置１２が、その内容を時系列に並べて記憶装置１３にイベントファイルとして記憶する。
【００４１】
図２に、プロセス、プロセス間通信、ファイル、時刻の関係の一例を示す。図２に示すように、プロセスＰ１は、
時刻Ｔ０１にプロセス間通信ＩＰＣ１へのコネクトを開始し、
時刻Ｔ０４にエラーメッセージＥ１を生成し、
時刻Ｔ１２にエラーメッセージＥ５を生成し、
時刻Ｔ１５にプロセス間通信ＩＰＣ１へのコネクトを終了する。
【００４２】
プロセスＰ２は、
時刻Ｔ０２にプロセス間通信ＩＰＣ１へのコネクトを開始し、
時刻Ｔ０５にファイルＦ１へのコネクトを開始し、
時刻Ｔ０９にエラーメッセージＥ４を生成し、
時刻Ｔ１３にファイルＦ１へのコネクトを終了し、
時刻Ｔ１４にプロセス間通信ＩＰＣ１へのコネクトを終了する。
【００４３】
プロセスＰ３は、
時刻Ｔ０３にエラーメッセージＥ２を生成し、
時刻Ｔ０６にプロセス間通信ＩＰＣ２へのコネクトを開始し、
時刻Ｔ０７にファイルＦ１へのコネクトを開始し、
時刻Ｔ０８にエラーメッセージＥ３を生成し、
時刻Ｔ１０にプロセス間通信ＩＰＣ２へのコネクトを終了し、
時刻Ｔ１１にファイルＦ１へのコネクトを終了する。
【００４４】
読み取り装置１１は、これらの情報を読み取り、
ＣＰＵ１４は、これらを時系列に並べ、
書き込み装置１２は、イベントファイルとして記憶装置１３に書き込む。
【００４５】
図３（ａ）に、イベントファイルの一例を示す。尚この例でプロセスIDは、ネットワークを介したOSが異なる環境全体で個々のプロセスを識別するIDである。図３（ａ）に示すように、
・時刻Ｔ０１、プロセスＰ１がプロセス間通信ＩＰＣ１にコネクト開始
・時刻Ｔ０２、プロセスＰ２がプロセス間通信ＩＰＣ１にコネクト開始
・時刻Ｔ０３、プロセスＰ３がエラーメッセージＥ２発生
・時刻Ｔ０４、プロセスＰ１がエラーメッセージＥ１発生
・時刻Ｔ０５、プロセスＰ２がファイルＦ１にコネクト開始
・時刻Ｔ０６、プロセスＰ３がプロセス間通信ＩＰＣ２にコネクト開始
・時刻Ｔ０７、プロセスＰ３がファイルＦ１にコネクト開始
・時刻Ｔ０８、プロセスＰ３がエラーメッセージＥ３発生
・時刻Ｔ０９、プロセスＰ２がエラーメッセージＥ４発生
・時刻Ｔ１０、プロセスＰ３がプロセス間通信ＩＰＣ２へのコネクト終了
・時刻Ｔ１１、プロセスＰ３がファイルＦ１へのコネクト終了
・時刻Ｔ１２、プロセスＰ１がエラーメッセージＥ５発生
・時刻Ｔ１３、プロセスＰ２がファイルＦ１へのコネクト終了
・時刻Ｔ１４、プロセスＰ２がプロセス間通信ＩＰＣ１へのコネクト終了
・時刻Ｔ１５、プロセスＰ１がプロセス間通信ＩＰＣ１へのコネクト終了
という内容のイベントファイルが得られる。
【００４６】
さらに、ＣＰＵ１４は、イベントファイルに基づいて、エラーメッセージとプロセスとプロセス間通信又はファイルとの関係を解析する。
【００４７】
書き込み装置１２は、解析結果をエラーメッセージ・プロセス関係ファイルとして記憶装置１３に書き込む。
【００４８】
ＣＰＵ１４が行う解析とは、具体的には、
イベント内容を検索し、エラーメッセージを探し出し、
エラーメッセージを生成したプロセスが、プロセス間通信又はファイルへのコネクト中かを判断する。
【００４９】
図３（ａ）のイベントファイルに基づいて、より具体的に説明すると、
時刻Ｔ０３にエラーメッセージＥ２を発見したら、
エラーメッセージＥ２はプロセスＰ３が発生したことから、
プロセスＰ３が時刻Ｔ０３以前にコネクトを開始しているかを調べ、
まだコネクトを開始していないことから、コネクト中ではないと判断する。
【００５０】
その結果、図３（ｂ）に示すエラーメッセージ・プロセス関係ファイルの１行目は、
「発生日時，エラーメッセージＩＤ，プロセスＩＤ」＝「Ｔ０３，Ｅ２，Ｐ３」となる。
【００５１】
次いで、時刻Ｔ０４にエラーメッセージＥ１を発見したら、
エラーメッセージＥ１はプロセスＰ１が発生したことから、
プロセスＰ１が時刻Ｔ０４以前にコネクトを開始しているかを調べ、
既に時刻Ｔ０１においてプロセス間通信ＩＰＣ１へのコネクトを開始していることから、時刻Ｔ０１とＴ０４の間においてプロセス間通信ＩＰＣ１へのコネクトを終了していないかを調べ、
まだ終了していないので、コネクト中であると判断する。
【００５２】
その結果、図３（ｂ）の２行目は、
「発生日時，エラーメッセージＩＤ，プロセスＩＤ，ＩＰＣ ＩＤ」＝「Ｔ０４，Ｅ１，Ｐ１，ＩＰＣ１」となる。
【００５３】
このようにイベントファイル中においてエラーメッセージを検索し、そのエラーメッセージに対応するプロセスを特定し、そのプロセスがプロセス間通信又はファイルへのコネクト中であったかを調べるという処理を繰り返して、図３（ｂ）に示すエラーメッセージ・プロセス関係ファイルを生成する。
【００５４】
同様にして、図４に示すプロセス、プロセス間通信又はファイル、エラーメッセージ関係にあるシステムの状況から、図３（ｃ）に示すエラーメッセージ・プロセス関係ファイルを得る。
【００５５】
このようにして得られたエラーメッセージ・プロセス関係ファイル、及び記憶装置１３に予め記憶されている関係強さ係数ファイル、定数ファイルに基づいて、エラーメッセージ因果関係を推定する。
【００５６】
図５に、本実施例の処理の概要を示す。図５に示すように、まずエラーメッセージ間の因果関係を推定し（ステップＳ１０）、次いで、因果関係を表示装置１６に表示する（ステップＳ２０）。
【００５７】
（因果関係推定の概要）
まず、推定結果の概要を説明する。例えば、図２に示す例における推定結果とは、
「エラーメッセージＥ１が原因で、エラーメッセージＥ５が結果」、
「エラーメッセージＥ３が原因で、エラーメッセージＥ４が結果」、
「エラーメッセージＥ４が原因で、エラーメッセージＥ５が結果」、
「エラーメッセージＥ２が原因で、エラーメッセージＥ３が結果」であると強く推定され、一方、
「エラーメッセージＥ２が原因で、エラーメッセージＥ４が結果」が弱く推定されるということである。
【００５８】
なお、前記の如く、プロセス間通信は抽象化される。プロセス間通信サービスによって、同一ＯＳ内であっても、ネットワークサービスを介してもプロセス間通信は原理的に同様に行われるので、原則として区別しない。
【００５９】
また、プロセス間通信サービスの「生成」と「消滅」。プロセス間通信サービスに対するプロセスによるコネクト（オープン）「開始」と「終了」。これら「生成」、「消滅」、「開始」及び「終了」は独立して成立するものとして抽象化する。
【００６０】
さらに、前記の如く、ファイルもプロセスと同様に扱うことが可能であるので、ファイルも抽象化する。つまり、ファイルの「生成」と「消滅」。そのファイルに対するプロセスによるコネクト（オープン）「開始」と「終了」。これら「生成」、「消滅」、「開始」及び「終了」も独立して成立するものとして抽象化する。
【００６１】
（エラーメッセージ間関係強さ−プロセス間通信又はファイル共有の場合）
プロセスがプロセス間通信又はファイルにコネクトしている間に生じたエラーメッセージの関係強さ係数（第１の関係強さ係数）及び
プロセスがプロセス間通信又はファイルにコネクトしていない間に生じたエラーメッセージの関係強さ係数（第２の関係強さ係数）を予め記憶装置１３に記憶させておく。例えば、第１の関係強さ係数を「２」、第２の関係強さ係数を「１」とする。
【００６２】
図６に、関係強さ係数を求める処理の流れを示す。まず、着目する２つのプロセスを定めた後に、これら２つのプロセスが生成する各エラーメッセージの関係強さ係数を求めるものとする。
【００６３】
図６に示すように、関係強さ係数を求めるエラーメッセージを特定し（ステップＳ１０１）、特定されたエラーメッセージが、プロセス間通信又はファイルにコネクト中に生成されたものかをエラーメッセージ・プロセス関係ファイルに基づいて調べる（ステップＳ１０２）。
【００６４】
エラーメッセージが、プロセス間通信又は共有ファイルにコネクト中に生成した場合は、関係強さ係数を「２」とする（ステップＳ１０３）。
【００６５】
エラーメッセージが、プロセス間通信又は共有ファイルにコネクトしていない間に生成した場合は、関係強さ係数を「１」とする（ステップＳ１０４）。
【００６６】
図３（ｃ）の表に基づいて説明する。エラーメッセージＥ２０，Ｅ５０，Ｅ７０，Ｅ３５は、プロセス間通信ＩＰＣ１又は共有ファイルＦ１にコネクトしている間に生じたエラーメッセージであるから、関係強さ係数は２になる。
【００６７】
エラーメッセージＥ２０，Ｅ５０，Ｅ７０，Ｅ３５以外は、プロセス間通信又は共有ファイルにコネクトしていない間に生じたエラーメッセージであるから、関係強さ係数は１になる。
【００６８】
このような関係強さ係数に基づいて、エラーメッセージ間の関係強さを求める。しかし、対象となるエラーメッセージが同一プロセスによって生成された場合は、後述するように、関係強さ係数に基づかずに、エラーメッセージ間の関係強さを求める。
【００６９】
なお、ファイル共有の場合は、ファイルが生成された後、プロセスがファイルをオープンし、読み書きし、クローズする一連のタスクは、相手プロセスとは非同期に行うことができる。従って、前記の方法は、ファイル共有の場合の方がプロセス間通信の場合よりも、各エラーメッセージ間の関係強さに妥当性がある。
【００７０】
（エラーメッセージ間関係強さ−同一プロセスの場合）
同一プロセスにおけるエラーメッセージ間の関係強さ係数（同一プロセス間関係強さ係数）を予め記憶装置１３に記憶させておく。例えば、同一プロセス間関係強さ係数を「４」とする。
【００７１】
関係強さ係数を求める対象となる２つのエラーメッセージを生成したプロセスをエラーメッセージ・プロセス関係ファイルを参照して特定する。２つのプロセスが同一プロセスであるなら、関係強さ係数は４であるとする。
【００７２】
具体的には、図４に示す例において、プロセスＰ２におけるエラーメッセージＥ４０とＥ５０、Ｅ４０とＥ６０、Ｅ４０とＥ７０の間の関係強さも、エラーメッセージＥ５０とＥ６０、Ｅ５０とＥ７０の間の関係強さも、エラーメッセージＥ６０とＥ７０の間の関係強さも全て「４」とする。
【００７３】
同様に、プロセスＰ３におけるエラーメッセージＥ１０とＥ２０、Ｅ１０とＥ３０、Ｅ１０とＥ３５、Ｅ１０とＥ３６の間の関係強さも、エラーメッセージＥ２０とＥ３０、Ｅ２０とＥ３５、Ｅ２０とＥ３６の間の関係強さも、エラーメッセージＥ３０とＥ３５、Ｅ３０とＥ３６の間の関係強さも、エラーメッセージＥ３５とＥ３６の間の関係強さも、全て「４」とする。
【００７４】
なお、2つのエラーメッセージが別のプロセスから生成された場合は、２つのエラーメッセージの生成時刻間に着目し、その時刻間に、各々を生成したプロセスの間に通信あるいはファイル共有があったか調べる。
【００７５】
２つのエラーメッセージ生成時刻間にプロセス間通信もファイル共有もない場合は、その２つのエラーメッセージ間には因果関係は無いものと見なす。
【００７６】
具体的には、図４に示す例において、エラーメッセージＥ４０の発生時刻とエラーメッセージＥ０の発生時刻との間には、エラーメッセージＥ４０を生成したプロセスＰ２とエラーメッセージＥ０を生成したプロセスＰ３との間に、プロセス間通信もファイル共有も存在しないので、両エラーメッセージ間には因果関係は無いものと見なす。同様に、エラーメッセージＥ３０とＥ６０との間にも、因果関係は無いものと見なす。
【００７７】
この場合に、着目するエラーメッセージの相対する通信あるいはファイル共有と、もう一方のエラーメッセージの相対する通信あるいはファイル共有が同一であるかどうかは問わない。
【００７８】
具体的には、図４に示す例において、エラーメッセージＥ５０とエラーメッセージＥ３５とに着目する。エラーメッセージＥ５０が相対するプロセス間通信ＩＰＣ１ａと、エラーメッセージＥ３５が相対するプロセス間通信ＩＰＣ１ｂとは同一でなくても、そのことをもって因果関係なしとは判断しない。つまり、エラーメッセージＥ３５とＥ５０との間には因果関係があるものと判断する。
【００７９】
着目するエラーメッセージが、そのメッセージを生成したプロセスがプロセス間通信又は共有ファイルにコネクトしていない時間に、生成されたということは、両エラーメッセージ間の因果関係の存在を否定しない。
【００８０】
具体的には、エラーメッセージＥ４０はプロセスＰ２がプロセス間通信にコネクトしていない時間に生成され、同様にエラーメッセージＥ３０はプロセスＰ３がプロセス間通信にコネクトしていない時間に生成されたものであるが、このことは両エラーメッセージ間の因果関係の存在を否定しない。
【００８１】
すなわち、両エラーメッセージ発生時刻間にプロセス間通信もファイル共有も存在しなければ、因果関係の存在が否定される。一方、両エラーメッセージ発生時刻間に「少なくとも一時的に」プロセス間通信又はファイル共有が存在すれば、因果関係の存在が否定されない。
【００８２】
（時間間隔ファクター−同一プロセスの場合）
図７に、時間間隔ファクター又は並び間隔数ファクターを加味して因果関係推定値を算出する処理の流れを示す。
【００８３】
図７に示すように、２つのエラーメッセージが発生した時刻の差又は２つのエラーメッセージが発生した間に存在する他のエラーメッセージの個数を考慮する。
【００８４】
同一プロセス間では、エラーメッセージ間の時間間隔が長くなるとエラーメッセージ間の因果関係は小さくなる。
【００８５】
そこで、２つのエラーメッセージが同一プロセスによって生成された場合（図７，ステップ１１１，ＹＥＳ）、
「因果関係推定値」
＝「エラーメッセージ間関係強さ」＋「時間間隔ファクター」
＝「同一プロセスエラーメッセージ間関係強さ係数」＋「第１定数」−「時間間隔」
とする（ステップＳ１１２）。例えば、単位をミリ秒として、第１定数を１０ミリ秒とする。
【００８６】
エラーメッセージＥ１０とＥ２０の因果関係推定値を求める場合について説明する。
【００８７】
まず、図３（ｃ）の表に基づいて、エラーメッセージＥ１０とＥ２０が共に同一プロセスによって生成されたものかなどを調べる（ステップＳ１１１）。
【００８８】
エラーメッセージＥ１０とＥ２０は、共に同一のプロセスＰ３によって生成されたものであるから、
「因果関係推定値」
＝「同一プロセス間関係強さ係数」＋「第１定数」−「時間間隔」
によって因果関係推定値を求める（ステップＳ１１２）。
【００８９】
エラーメッセージＥ１０とＥ２０との時間間隔が５ミリ秒の場合、
「因果関係推定値」＝４＋１０−５＝９
となる。
【００９０】
同様に、同一プロセスＰ３のエラーメッセージＥ２０とＥ３０との時間間隔が５．５ミリ秒の場合、
「因果関係推定値」＝４＋１０−５．５＝８．５
となる。
【００９１】
同様に、同一プロセスＰ２のエラーメッセージＥ５０とＥ６０との時間間隔が６ミリ秒の場合、
「因果関係推定値」＝４＋１０−６＝８
となる。
【００９２】
（時間間隔ファクター−プロセス間通信の場合）
同期が求められるプロセス間通信においても、エラーメッセージ間の時間間隔が長くなるとエラーメッセージ間の因果関係は小さくなる。
【００９３】
そこで、２つのエラーメッセージを生成したプロセス間にプロセス間通信が存在する場合、
「因果関係推定値」
＝「関係強さ係数の和」＋「第１定数」−「時間間隔」
とする（ステップＳ１１４）。
【００９４】
プロセスＰ２とプロセスＰ３との間にプロセス間通信ＩＰＣ１が生成し、エラーメッセージＥ２０とＥ５０との時間間隔が１ミリ秒の場合、
「因果関係推定値」
＝「エラーメッセージＥ２０の関係強さ係数」＋「エラーメッセージＥ５０の関係強さ係数」＋「第１定数」−「エラーメッセージＥ２０とＥ５０との時間間隔」
＝２＋２＋１０−１＝１３
となる。
【００９５】
また、エラーメッセージＥ５０とＥ３０との時間間隔が４ミリ秒だとすると、
「因果関係推定値」
＝「エラーメッセージＥ５０の関係強さ係数」＋「エラーメッセージＥ３０の関係強さ係数」＋「第１定数」−「エラーメッセージＥ５０とＥ３０との時間間隔」
＝２＋１＋１０−４＝９
となる。
【００９６】
さらに、エラーメッセージＥ４０とＥ３０との時間間隔が１４ミリ秒だとすると、
「因果関係推定値」
＝「エラーメッセージＥ４０の関係強さ係数」＋「エラーメッセージＥ３０の関係強さ係数」＋「第１定数」−「エラーメッセージＥ４０とＥ３０との時間間隔」
＝１＋１＋１０−１４＝−２
となる。
【００９７】
（並び間隔数ファクター−ファイル共有の場合）
同期が求められない、非同期で良いファイル共有では、時間間隔が因果関係に与える影響は、プロセス間通信等において時間間隔が因果関係に与える影響ほど大きくない。時間間隔よりもむしろ２つのエラーメッセージ間に発生した他のエラーメッセージの個数の方が因果関係に大きな影響を与える可能性が高い。
【００９８】
そこで、２つのエラーメッセージを生成したプロセス間に共有ファイルが存在する場合、
「因果関係推定値」
＝「関係強さ係数の和」＋「第１定数」−「第２定数」＊「並び間隔数」
とする（ステップＳ１１６）。
【００９９】
例えば、単位をミリ秒として第２定数を１ミリ秒とする。
【０１００】
「並び間隔数」とは、ファイル共有にある任意の二つのプロセス上のエラーメッセージを、その発生時刻で並べ、着目する二つのエラーメッセージ間に他のエラーメッセージが存在しない場合は「１」、存在する場合はエラーメッセージの個数に１を加えた値とする。具体的には、図３（ｃ）の表から明らかなように、エラーメッセージＥ２０とＥ５０との間には他のエラーメッセージが存在しないので、並び間隔数は「１」となる。エラーメッセージＥ４０とＥ３０との間にはエラーメッセージＥ１０，Ｅ２０，Ｅ５０が存在するので、並び間隔数は「４」となる。
【０１０１】
エラーメッセージＥ２０とＥ５０との「因果関係推定値」は、
「因果関係推定値」
＝「エラーメッセージＥ２０の関係強さ係数」＋「エラーメッセージＥ５０の関係強さ係数」＋「第１定数」−「第２定数」＊「エラーメッセージＥ２０とＥ５０との並び間隔数」
＝２＋２＋１０−１＊１＝１３
となる。
【０１０２】
エラーメッセージＥ４０とＥ３０との「因果関係推定値」は、
「因果関係推定値」
＝「エラーメッセージＥ４０の関係強さ係数」＋「エラーメッセージＥ３０の関係強さ係数」＋「第１定数」−「第２定数」＊「エラーメッセージＥ４０とＥ３０との並び間隔数」
＝１＋１＋１０−１＊４＝８
となる。
【０１０３】
（「時間間隔ファクター」及び「並び間隔数ファクター」における定数について）
前記の実施例では、第１定数を１０ミリ秒とし、第２定数を１ミリ秒とした。しかし、これら定数は、かかる数値に限定されない。
【０１０４】
第１定数は、エラーメッセージ間の因果関係を把握したい対象システムのオンラインレスポンス目標最大値を基準に決めることも出来る。例えば、第１定数はオンラインレスポンス目標最大値の１０倍とする。つまり、オンラインレスポンス目標最大値が１．５ミリ秒であれば、第１定数は１５ミリ秒とする。
【０１０５】
もし、対象システムがバッチシステムのみで構成されている場合は、一般的なオンラインレスポンスの目標最大値の１０倍とすることも出来る。一般的なオンラインレスポンスの目標最大値が２ミリ秒であるなら、第１定数は２０ミリ秒とする。
【０１０６】
定数はシステムの特性によって異なるので、第２定数は、デフォルト値を与えておいて、ユーザが適宜変更可能とすることが好ましい。デフォルト値に基づいて表示されたエラーメッセージ間関係を見た後に、ユーザが第２定数を変更し得ることが好ましい。例えば、デフォルト値を５ミリ秒とし、かかる値に基づいて表示されたエラーメッセージ間関係をユーザが見た後に、第２定数を５ミリ秒から３ミリ秒へ変更し、変更後の第２定数に基づいて新たなエラーメッセージ間関係を表示し得ることが好ましい。
【０１０７】
（因果関係の表示）
図８に因果関係表示処理の流れを示し、図９に因果関係の第１の表示例を示し、図１０に、因果関係の第２の表示例を示す。
【０１０８】
図１０には、図示していないが、関係する２つのエラーメッセージ間には、各々を生成したプロセス間に少なくとも一時的にプロセス間通信サービスが存在する、又は少なくとも一時的にファイル共有が存在する。具体的には、プロセスＰ４とＰ５、プロセスＰ５とＰ６、プロセスＰ６とＰ７、プロセスＰ７とＰ８、及びプロセスＰ８とＰ９の間の関係する２つのエラーメッセージ間には、少なくとも一時的にプロセス間通信サービスが存在する。又はプロセスＰ４とＰ５、プロセスＰ５とＰ６、プロセスＰ６とＰ７、プロセスＰ７とＰ８、及びプロセスＰ８とＰ９間の関係する２つのエラーメッセージ間には、少なくとも一時的にファイル共有が存在する。
【０１０９】
前記の処理によって計算された各エラーメッセージ間の因果関係推定値が、閾値以上（又は閾値より大）か調べる（図８、ステップＳ２０１）。そして、閾値以上（又は閾値より大）という条件を満たすエラーメッセージ間にのみ線を表示する。
【０１１０】
図９（ａ）は閾値を１２とした場合の表示例、図９（ｂ）は閾値を８．６とした場合の表示例、  図９（ｃ）は閾値を７とした場合の表示例を示す。
【０１１１】
つまり、図９（ａ）に示すように、閾値１２以上が表示されるとした場合、因果関係推定値が１３であるエラーメッセージＥ２０−Ｅ５０間にのみ線が表示される。
【０１１２】
また、図９（ｂ）に示すように、閾値８．６以上が表示されるとした場合、
因果関係推定値が１３であるエラーメッセージＥ２０−Ｅ５０間、
同推定値が９であるエラーメッセージＥ１０−Ｅ２０，Ｅ３０−Ｅ５０間
に線が表示される。
【０１１３】
さらに、図９（ｃ）に示すように、閾値７以上が表示されるとした場合、
因果関係推定値が１３であるエラーメッセージＥ２０−Ｅ５０間、
同推定値が９であるエラーメッセージＥ１０−Ｅ２０，Ｅ３０−Ｅ５０間、
同推定値が８．５であるエラーメッセージＥ２０−Ｅ３０間、
同推定値が８であるエラーメッセージＥ５０−Ｅ６０間
に線が表示される。
【０１１４】
因果関係推定値に応じて、線の太さ、種類、色、濃度を変えることが好ましい。例えば、因果関係推定値が大きければ線を太くし、小さければ線を細くする。又は、
因果関係推定値が大きければ実線とし、小さければ点線とする。又は、
因果関係推定値が大きければ線を赤色とし、小さければ線を青色とする。又は、
因果関係推定値が大きければ線を濃い赤色とし、小さければ線を薄い赤色とする。
【０１１５】
（因果関係の表示−原因と結果の推定）
２つのエラーメッセージ間に因果関係があると推定し、それらを線で結ぶだけでなく、さらに、どちらのエラーメッセージが原因で、どちらのエラーメッセージが結果かを推定し、表示することが好ましい。
【０１１６】
例えば、２つのエラーメッセージが共に同一のプロセスによって生成されたものである場合（図８，ステップＳ２０２，ＹＥＳ）、又は同一のプロセスによって生成されたものではないが（ステップＳ２０２，ＮＯ）、２つのエラーメッセージの発生時刻の間隔がメッセージ発生時刻間隔閾値以上である場合（ステップＳ２０４，ＹＥＳ）は、エラーメッセージ発生日時が古いエラーメッセージが原因、エラーメッセージ発生日時が新しいエラーメッセージが結果と推定する（ステップＳ２０３）。
【０１１７】
定数はシステムの特性によって異なるので、第２定数は、デフォルト値を与えておいて、ユーザが適宜変更可能とすることが好ましい。デフォルト値に基づいて表示されたエラーメッセージ間関係を見た後に、ユーザが第２定数を変更し得ることが好ましい。例えば、デフォルト値を５ミリ秒とし、かかる値に基づいて表示されたエラーメッセージ間関係をユーザが見た後に、第２定数を５ミリ秒から３ミリ秒へ変更し、変更後の第２定数に基づいて新たなエラーメッセージ間関係を表示し得ることが好ましい。
【０１１８】
また、２つのエラーメッセージの発生時刻の間隔がメッセージ発生時刻間隔閾値以上ではない場合（ステップＳ２０４，ＮＯ）であって、２つのエラーメッセージを生成したプロセスが親子プロセスの関係にある場合（ステップＳ２０５，ＹＥＳ）は、子プロセスが生成したエラーメッセージが原因、親プロセスが生成したエラーメッセージが結果と推定する（ステップＳ２０６）。
【０１１９】
プロセス間通信の種類によっては、他のプロセスを起動する親プロセスと、他のプロセスによって起動される子プロセスとを区別できるものがある。そのような場合は、エラーメッセージ・プロセス関係ファイルに、プロセスＰ１がプロセスＰ２を起動した、又はプロセスＰ２はプロセスＰ１によって起動されたなどの情報を記憶させておく。かかる情報に基づいて、親子関係を判断する。
【０１２０】
親子プロセスでは、子のエラーメッセージが原因、親のエラーメッセージが結果となることが多い。よって、親子プロセス間においては、子プロセスが原因、親プロセスが結果と推定することが好ましい。
【０１２１】
さらに、２つのエラーメッセージを生成したプロセスが親子プロセスの関係ではない場合（ステップＳ２０５，ＮＯ）は、プロセス年齢の高いプロセスが生成したエラーメッセージが原因、プロセス年齢の低いプロセスが生成したエラーメッセージが結果と推定する（ステップＳ２０７）。
【０１２２】
プロセス年齢が高いプロセスとは、２つのプロセスのプロセス発生日時を比較した場合に、プロセス発生日時が古い方のプロセスのことである。プロセス年齢が低いプロセスとは、プロセス発生日時が新しい方のプロセスのことである。プロセス年齢を比較するためには、各プロセスのプロセス生成時間もシステムイベントファイルに記憶する。
【０１２３】
このようにして、原因と結果を推定したら、原因と推定される側のエラーメッセージから、結果と推定される側のエラーメッセージへ向かう矢印線を表示する（ステップＳ２０８）。
【０１２４】
図１０において、エラーメッセージ間に表示される線は、一端に矢印を有する矢印線である。例えば、エラーメッセージＥ８１とＥ８２との関係において、エラーメッセージＥ８１が原因、エラーメッセージＥ８２が結果と推定される場合、矢印の向きはエラーメッセージＥ８１からＥ８２へ向かう。同様に、エラーメッセージＥ８２が原因、エラーメッセージＥ８８が結果と推定される場合、矢印の向きはエラーメッセージＥ８２からＥ８８へ向かう。
【０１２５】
矢印は、図１０に例示の形状に限定されない。原因と推定される側から、結果と推定される側へ向かうことを表示可能なものであればどのような形状でも良い。
【０１２６】
前記実施例では、第１の関係強さ係数を４、第２の関係強さ係数も４、第３の関係強さ係数を３、第４の関係強さ係数を２としたが、これらの数値に限定されない。第１の関係強さ係数と第２の関係強さ係数を異なる値としても良い。
【０１２７】
ただし、原則として、
第４の関係強さ係数は、第３の関係強さ係数より小さくし、
第３の関係強さ係数は、第１，２の関係強さ係数より小さくする。
【０１２８】
上記の如く、実施例によれば、エラーメッセージ間の因果関係推定値を算出することができる。また、算出された因果関係推定値に基づいて、因果関係が強いと推定されるエラーメッセージ間に線を表示するなどして、因果関係の有無を迅速かつ容易に推定することができる。また、因果関係推定値の大小に基づいて、線の太さ等を変更することによって、因果関係の強弱も迅速かつ容易に推定することができる。さらに、時間間隔、プロセスの親子関係、プロセス生成時刻などに基づいて、エラーメッセージ間の原因・結果関係も迅速かつ容易に推定することができる。
【図面の簡単な説明】
【０１２９】
【図１】実施例の全体構成を示すブロック図である。
【図２】プロセス、プロセス間通信、ファイル、エラーメッセージ、時刻の関係の一例を示す図である。
【図３】（ａ）はイベントファイルの一例を示し、（ｂ）及び（ｃ）はエラーメッセージ・プロセス関係ファイルの一例を示す図である。
【図４】プロセス、プロセス間通信又はファイル、エラーメッセージの関係の他の例を示す図である。
【図５】実施例の処理の概要を示すフローチャートである。
【図６】関係強さ係数を求める処理の流れを示すフローチャートである。
【図７】時間間隔ファクター又は並び間隔数ファクターを加味して因果関係推定値を算出する処理の流れを示すフローチャートである。
【図８】因果関係表示処理の流れを示すフローチャートである。
【図９】因果関係の第１の表示例を示す図である。
【図１０】因果関係の第２の表示例を示す図である。
【符号の説明】
【０１３０】
１…ネットワーク、１０…因果関係推定装置、１１…読み取り装置、
１２…書き込み装置、１３…記憶装置、１４…中央処理装置（ＣＰＵ）、
１５…出力装置、１６…表示装置
【図１】
2005190270.tif 000003
【図２】
2005190270.tif 000004
【図３】
2005190270.tif 000005
【図４】
2005190270.tif 000006
【図５】
2005190270.tif 000007
【図６】
2005190270.tif 000008
【図７】
2005190270.tif 000009
【図８】
2005190270.tif 000010
【図９】
2005190270.tif 000011
【図１０】
2005190270.tif 000012