(57)【特許請求の範囲】
【請求項１】
所定のアプリケーションが実行される複数のアプリケーション実行手段と、
該アプリケーションで発生した例外の発生情報を順次蓄積する例外情報蓄積手段と、
前記アプリケーション実行手段に設けられ、前記アプリケーションに例外が発生したことを検知する例外発生検知手段と、
該例外発生検知手段により例外が発生したことが検知されたときに、前記例外情報蓄積手段に発生情報を伝達する例外情報伝達手段と、
前記例外情報蓄積手段に蓄積された発生情報を絞り込む情報絞り込み手段と、
該情報絞り込み手段により絞り込まれた発生情報を表示する情報表示手段と、
を含んで構成され、
前記発生情報は、少なくとも、例外が発生した前記アプリケーションが実行されていたアプリケーション実行手段を特定する例外発生場所情報と、例外が発生した時刻を特定する例外発生時刻情報と、例外が発生した前記アプリケーションが実行されていたアプリケーション実行手段を呼び出していた他のアプリケーション実行手段を特定する情報交換先情報と、が関連付けられて構成される一方、
前記情報絞り込み手段は、絞り込みを開始する起点となるアプリケーション実行手段を設定させる一方、設定されたアプリケーション実行手段を呼び出していた他のアプリケーション実行手段を検索すると共に、検索された他のアプリケーション実行手段を新たな起点としてこれを呼び出していた他のアプリケーションを順次検索することで、前記情報交換先情報により特定されるアプリケーション実行手段の呼び出し関係を順次辿って、発生情報を絞り込むこと
を特徴とするネットワークコンピューティング環境におけるトラブルシューティング装置。
【請求項２】
前記各アプリケーション実行手段における時刻を取得する第１の時刻取得手段と、
前記ネットワークコンピューティング環境における統一時刻を取得する第２の時刻取得手段と、
を備え、
前記例外発生時刻情報は、
前記第１の時刻取得手段により取得された時刻と、
前記第２の時刻取得手段により取得された統一時刻と、
を含んだ構成である請求項１記載のネットワークコンピューティング環境におけるトラブルシューティング装置。
【請求項３】
前記第２の時刻取得手段は、
前記例外情報蓄積手段における時刻を取得する第３の時刻取得手段と、
前記アプリケーション実行手段に設けられ、前記例外発生検知手段により例外の発生が検知されたときに、当該例外情報蓄積手段に対して時刻返送要求を送信する時刻返送要求送信手段と、
前記例外情報蓄積手段に設けられ、前記時刻返送要求を受信したときに、該時刻返送要求を送信した前記アプリケーション実行手段に対して第３の時刻取得手段により取得された時刻を返送する時刻返送手段と、
前記時刻返送要求を送信してから時刻が返送されるまでの時間を計測する返送時間計測手段と、
前記時刻返送手段により返送された時刻及び返送時間計測手段により計測された時間に基づいて、前記統一時刻を算出する統一時刻算出手段と、
を含んだ構成である請求項２記載のネットワークコンピューティング環境におけるトラブルシューティング装置。
【請求項４】
所定のアプリケーションが実行される複数のコンピュータからなるネットワークコンピューティング環境において、前記コンピュータが、前記アプリケーションに例外が発生したことを検知する例外発生検知工程と、該例外発生検知工程により例外が発生したことを検知したときに、エラー情報ファイルに例外の発生情報を伝達して蓄積する例外情報伝達工程と、を夫々実行すると共に、他のコンピュータが、前記エラー情報ファイルに蓄積された発生情報を絞り込む情報絞り込み工程と、該情報絞り込み工程により絞り込まれた発生情報をモニタに表示する情報表示工程と、を夫々実行し、
前記発生情報は、少なくとも、例外が発生した前記アプリケーションが実行されていたコンピュータを特定する例外発生場所情報と、例外が発生した時刻を特定する例外発生時刻情報と、例外が発生した前記アプリケーションが実行されていたコンピュータを呼び出していたコンピュータを特定する情報交換先情報と、が関連付けられて構成される一方、
前記情報絞り込み工程は、絞り込みを開始する起点となるコンピュータを設定させる一方、設定されたコンピュータを呼び出していたコンピュータを検索すると共に、検索されたコンピュータを新たな起点としてこれを呼び出していたコンピュータを順次検索することで、前記情報交換先情報により特定されるコンピュータの呼び出し関係を順次辿って、発生情報を絞り込むこと
を特徴とするネットワークコンピューティング環境におけるトラブルシューティング方法。
【請求項５】
所定のアプリケーションが実行される複数のコンピュータからなるネットワークコンピューティング環境において、前記コンピュータが、前記アプリケーションに例外が発生したことを検知する例外発生検知機能と、該例外発生検知機能により例外が発生したことを検知したときに、エラー情報ファイルに例外の発生情報を伝達して蓄積する例外情報伝達機能と、を夫々実現すると共に、他のコンピュータが、前記エラー情報ファイルに蓄積された発生情報を絞り込む情報絞り込み機能と、該情報絞り込み機能により絞り込まれた発生情報をモニタに表示する情報表示機能と、を夫々実現し、
前記発生情報は、少なくとも、例外が発生した前記アプリケーションが実行されていたコンピュータを特定する例外発生場所情報と、例外が発生した時刻を特定する例外発生時刻情報と、例外が発生した前記アプリケーションが実行されていたコンピュータを呼び出していたコンピュータを特定する情報交換先情報と、が関連付けられて構成される一方、
前記情報絞り込み機能は、絞り込みを開始する起点となるコンピュータを設定させる一方、設定されたコンピュータを呼び出していたコンピュータを検索すると共に、検索されたコンピュータを新たな起点としてこれを呼び出していたコンピュータを順次検索することで、前記情報交換先情報により特定されるコンピュータの呼び出し関係を順次辿って、発生情報を絞り込むこと
を特徴とするネットワークコンピューティング環境におけるトラブルシューティングプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のコンピュータにより構築されるネットワークコンピューティング環境において発生した例外の発生原因を迅速に究明するトラブルシューティング技術に関する。
【０００２】
【従来の技術】
従来から、複数のコンピュータを利用して、大規模なネットワークコンピューティング環境が構築されてきた。ネットワークコンピューティング環境の代表的なものは、クライアント／サーバシステムである。これから急速に普及するであろうと予測されるネットワークコンピューティング環境では、異機種／ＯＳ／言語で開発された分散アプリケーションが、相互に連携し合い、１つの処理を行なう。
【０００３】
ところで、現在の技術では、アプリケーションに例外が発生することを完全に防止することは不可能である。このため、現在では、各アプリケーション毎にエラーログを残し、このエラーログを専門家が解析することで、例外の発生原因等を究明している。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来では、エラーログは各アプリケーション固有のものであるため、ネットワークコンピューティング環境においては、次のような問題点があった。
(1) 例外が発生したアプリケーションを特定するためには、複数のコンピュータに分散されたエラーログを調査しなければならず、その探求に多大な労力が必要であった。
【０００５】
(2) エラーログには、例外が発生したときの状態、例えば、通信状態が記録されていなかった。このため、専門家が各アプリケーション固有のエラーログに基づいて、例外が発生したときの状態を推測しなければならず、その推測にも多大な労力が必要であった。
そこで、本発明は以上のような従来の問題点に鑑み、ネットワークコンピューティング環境において発生した例外を一括して収集することで、例外の発生原因究明を迅速に行えるようにしたトラブルシューティング技術を提供することを目的とする。
【０００６】
【課題を解決するための手段】
このため、請求項１記載の発明は、所定のアプリケーションが実行される複数のアプリケーション実行手段と、該アプリケーションで発生した例外の発生情報を順次蓄積する例外情報蓄積手段と、前記アプリケーション実行手段に設けられ、前記アプリケーションに例外が発生したことを検知する例外発生検知手段と、該例外発生検知手段により例外が発生したことが検知されたときに、前記例外情報蓄積手段に発生情報を伝達する例外情報伝達手段と、前記例外情報蓄積手段に蓄積された発生情報を絞り込む情報絞り込み手段と、  該情報絞り込み手段により絞り込まれた発生情報を表示する情報表示手段と、を含んで構成され、前記発生情報は、少なくとも、例外が発生した前記アプリケーションが実行されていたアプリケーション実行手段を特定する例外発生場所情報と、例外が発生した時刻を特定する例外発生時刻情報と、例外が発生した前記アプリケーションが実行されていたアプリケーション実行手段を呼び出していた他のアプリケーション実行手段を特定する情報交換先情報と、が関連付けられて構成される一方、前記情報絞り込み手段は、絞り込みを開始する起点となるアプリケーション実行手段を設定させる一方、設定されたアプリケーション実行手段を呼び出していた他のアプリケーション実行手段を検索すると共に、検索された他のアプリケーション実行手段を新たな起点としてこれを呼び出していた他のアプリケーションを順次検索することで、前記情報交換先情報により特定されるアプリケーション実行手段の呼び出し関係を順次辿って、発生情報を絞り込むことを特徴とする。
【０００７】
かかる構成によれば、ネットワークコンピューティング環境を構成するアプリケーションで例外が発生すると、例外発生検知手段によりその例外発生が検知される。例外発生検知手段により例外発生が検知されると、アプリケーション実行手段から例外情報蓄積手段に例外情報が伝達される。伝達された例外情報は、例外情報蓄積手段に蓄積される。即ち、複数のアプリケーションが相互に連携し合うことで１つの処理を行うシステムであっても、発生情報は各アプリケーション実行手段毎に蓄積されず、外付けされた例外情報蓄積手段において一括して収集される。
【０００９】
このとき、例外情報蓄積手段に蓄積される発生情報には、例外発生場所情報、例外発生時刻情報及び情報交換先情報が含まれる。従って、一括して収集された発生情報を解析することで、どのアプリケーションにおいて例外が発生したか、どのような通信状態で例外が発生したか、或いは、いつ例外が発生したかを把握することができる。このため、従来のように、各アプリケーション実行手段毎に残されたエラーログを一々調べる必要がなく、例外の発生原因の解析が容易に行われる。
また、発生情報は、情報交換先情報により特定されるアプリケーション実行手段の呼び出し関係を順次辿って、自動的に絞り込まれる。そして、絞り込まれた発生情報は、人間が視覚によって把握できるように表示される。
【００１０】
請求項２記載の発明は、前記各アプリケーション実行手段における時刻を取得する第１の時刻取得手段と、前記ネットワークコンピューティング環境における統一時刻を取得する第２の時刻取得手段と、を備え、前記例外発生時刻情報は、前記第１の時刻取得手段により取得された時刻と、前記第２の時刻取得手段により取得された統一時刻と、を含んだ構成とした。
【００１１】
かかる構成によれば、例外発生時刻情報には、アプリケーション実行手段における例外発生時刻と、ネットワークコンピューティング環境における例外発生時刻と、の２種類の時刻が含まれる。従って、各アプリケーション実行手段における時刻が相違していても、ネットワークコンピューティング環境における例外発生時刻をキーとして発生情報をソートすることによって、システムで統一された時刻に発生情報が整列される。このため、例外発生の時系列的な関連付けが可能となる。
【００１２】
請求項３記載の発明は、前記第２の時刻取得手段は、前記例外情報蓄積手段における時刻を取得する第３の時刻取得手段と、前記アプリケーション実行手段に設けられ、前記例外発生検知手段により例外の発生が検知されたときに、当該例外情報蓄積手段に対して時刻返送要求を送信する時刻返送要求送信手段と、前記例外情報蓄積手段に設けられ、前記時刻返送要求を受信したときに、該時刻返送要求を送信した前記アプリケーション実行手段に対して第３の時刻取得手段により取得された時刻を返送する時刻返送手段と、前記時刻返送要求を送信してから時刻が返送されるまでの時間を計測する返送時間計測手段と、前記時刻返送手段により返送された時刻及び返送時間計測手段により計測された時間に基づいて、前記統一時刻を算出する統一時刻算出手段と、を含んだ構成とした。
【００１３】
かかる構成によれば、ネットワークコンピューティング環境における例外発生時刻は、時刻返送要求を送信してから時刻が返送されるまでの時間と、時刻返送要求に対して返送された時刻と、に基づいて算出される。従って、システムの統一時刻を取得することを目的として、時計サーバを新たに設ける必要がない。
【００１５】
請求項４記載の発明は、所定のアプリケーションが実行される複数のコンピュータからなるネットワークコンピューティング環境において、前記コンピュータが、前記アプリケーションに例外が発生したことを検知する例外発生検知工程と、該例外発生検知工程により例外が発生したことを検知したときに、エラー情報ファイルに例外の発生情報を伝達して蓄積する例外情報伝達工程と、を夫々実行すると共に、他のコンピュータが、前記エラー情報ファイルに蓄積された発生情報を絞り込む情報絞り込み工程と、該情報絞り込み工程により絞り込まれた発生情報をモニタに表示する情報表示工程と、を夫々実行し、前記発生情報は、少なくとも、例外が発生した前記アプリケーションが実行されていたコンピュータを特定する例外発生場所情報と、例外が発生した時刻を特定する例外発生時刻情報と、例外が発生した前記アプリケーションが実行されていたコンピュータを呼び出していたコンピュータを特定する情報交換先情報と、が関連付けられて構成される一方、前記情報絞り込み工程は、絞り込みを開始する起点となるコンピュータを設定させる一方、設定されたコンピュータを呼び出していたコンピュータを検索すると共に、検索されたコンピュータを新たな起点としてこれを呼び出していたコンピュータを順次検索することで、前記情報交換先情報により特定されるコンピュータの呼び出し関係を順次辿って、発生情報を絞り込むことを特徴とする。
【００１６】
かかる構成によれば、ネットワークコンピューティング環境を構成するアプリケーションで例外が発生すると、例外発生検知工程によりその例外発生が検知される。例外発生検知工程により例外発生が検知されると、コンピュータからエラー情報ファイルに発生情報が伝達される。伝達された発生情報は、エラー情報ファイルに蓄積される。即ち、複数のアプリケーションが相互に連携し合うことで１つの処理を行うシステムであっても、発生情報は各コンピュータにおいて蓄積されず、外付けされたエラー情報ファイルにおいて一括して収集される。
このとき、エラー情報ファイルに蓄積される発生情報には、例外発生場所情報、例外発生時刻情報及び情報交換先情報が含まれる。従って、一括して収集された発生情報を解析することで、どのアプリケーションにおいて例外が発生したか、どのような通信状態で例外が発生したか、或いは、いつ例外が発生したかを把握することができる。このため、従来のように、各コンピュータ毎に残されたエラーログを一々調べる必要がなく、例外の発生原因の解析が容易に行われる。
また、発生情報は、情報交換先情報により特定されるコンピュータの呼び出し関係を順次辿って、自動的に絞り込まれる。そして、絞り込まれた発生情報は、人間が視覚によって把握できるようにモニタに表示される。
【００１７】
請求項５記載の発明は、所定のアプリケーションが実行される複数のコンピュータからなるネットワークコンピューティング環境において、前記コンピュータが、前記アプリケーションに例外が発生したことを検知する例外発生検知機能と、該例外発生検知機能により例外が発生したことを検知したときに、エラー情報ファイルに例外の発生情報を伝達して蓄積する例外情報伝達機能と、を夫々実現すると共に、他のコンピュータが、前記エラー情報ファイルに蓄積された発生情報を絞り込む情報絞り込み機能と、該情報絞り込み機能により絞り込まれた発生情報をモニタに表示する情報表示機能と、を夫々実現し、前記発生情報は、少なくとも、例外が発生した前記アプリケーションが実行されていたコンピュータを特定する例外発生場所情報と、例外が発生した時刻を特定する例外発生時刻情報と、例外が発生した前記アプリケーションが実行されていたコンピュータを呼び出していたコンピュータを特定する情報交換先情報と、が関連付けられて構成される一方、前記情報絞り込み機能は、絞り込みを開始する起点となるコンピュータを設定させる一方、設定されたコンピュータを呼び出していたコンピュータを検索すると共に、検索されたコンピュータを新たな起点としてこれを呼び出していたコンピュータを順次検索することで、前記情報交換先情報により特定されるコンピュータの呼び出し関係を順次辿って、発生情報を絞り込むことを特徴とする。
【００１８】
ここで、「記録媒体」とは、各種情報を確実に記録でき、かつ、必要に応じて確実に取り出すことが可能なものをいい、具体的には、紙カード（パンチカード）、紙テープ、磁気テープ、磁気ディスク、磁気ドラム、ＩＣカード、ＣＤ−ＲＯＭ等が該当する。
かかる構成によれば、例外発生検知機能と、例外情報伝達機能と、情報絞り込み機能と、情報表示機能と、を実現するためのネットワークコンピューティング環境におけるトラブルシューティングプログラムがコンピュータ読取可能な記録媒体に記録される。従って、各機能を実現するためのプログラムを記録した記録媒体があれば、例えば、一般的な電子計算機に対して、各機能を持たせることができ、本発明に係るトラブルシューティング装置が容易に構築される。
【００１９】
【発明の実施の形態】
以下、添付された図面を参照して本発明を詳述する。
図１は、単一階層のクライアント／サーバシステムに対して、本発明に係るトラブルシューティング装置を適用した一実施形態を示している。
クライアント／サーバシステム１０（アプリケーション実行手段）は、少なくとも１つのクライアント１２と、１つのサーバ１４と、を含んで構築される。クライアント１２とサーバ１４とは、図示しない通信回線により接続され、例えば、一種の通信プロトコルであるＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）のソケットを介して、情報交換が行われる。クライアント１２は、クライアント／サーバシステム１０の利用者に対して、対話型のユーザインターフェースを提供する。サーバ１４は、クライアント１２からの処理要求に応じて、例えば、図示しないデータベースを検索し、検索結果をクライアント１２に返送する。即ち、クライアント／サーバシステム１０には、クライアント１２とサーバ１４とが協働して所定の適用業務を行うプログラム（アプリケーション）がインストールされている。
【００２０】
また、本発明に係るトラブルシューティング装置の特徴として、クライアント／サーバシステム１０に、階層構造の集計サーバ２０が外付けされる。集計サーバ２０は、少数のクライアント／サーバシステム１０により構築される比較的小規模なネットワークコンピューティング環境では、１つの集計サーバのみからなる１階層構造が採用される。一方、多数のクライアント／サーバシステム１０により構築される比較的大規模なネットワークコンピューティング環境では、複数の集計サーバからなる多階層構造が採用される。なお、図１に示すネットワークコンピューティング環境では、２つの集計サーバ２２，２４からなる２階層構造が採用される。以下の説明では、図１における下位階層の集計サーバ２２を「１次集計サーバ」、上位階層の集計サーバ２４を「２次集計サーバ」と呼ぶことにする。
【００２１】
さらに、１次集計サーバ２２或いは／及び２次集計サーバ２４には、例外解析用のクライアント（以下「解析クライアント」という）３０が接続される。
そして、クライアント１２或いはサーバ１４と１次集計サーバ２２との間、１次集計サーバ２２と２次集計サーバ２４との間、１次集計サーバ２２或いは／及び２次集計サーバ２４と解析クライアント３０との間は、図示しない通信回線により夫々接続され、ＴＣＰ／ＩＰのソケット等を介して情報交換が行われる。
【００２２】
なお、クライアント１２、サーバ１４、１次集計サーバ２２、２次集計サーバ２４及び解析クライアント３０は、少なくとも中央処理装置（ＣＰＵ）とメモリとを備えた電子計算機により夫々構成され、メモリに記憶されたプログラムによって所定の適用業務を行う。かかるプログラムにより、例外発生検知手段、例外発生検知工程、例外発生検知機能、第２の時刻取得手段、時刻返送要求送信手段、時刻返送手段、返送時間計測手段、統一時刻算出手段、情報絞り込み手段、情報絞り込み工程及び情報絞り込み機能が実現される。
【００２３】
クライアント１２及びサーバ１４には、エラーストリームライブラリ１６（例外情報伝達手段、例外情報伝達工程、例外情報伝達機能）と、プロパティファイル１８と、が夫々備えられる。エラーストリームライブラリ１６は、クライアント１２或いはサーバ１４において例外、例えば、プログラム障害が発生したときに、自動的に起動される。そして、自動起動されたエラーストリームライブラリ１６は、１次集計サーバ２２にエラー情報を送信する。プロパティファイル１８には、エラー情報の送信先である１次集計サーバ２２のアドレス、及び、通信ポート番号等の通信条件が格納される。即ち、クライアント１２或いはサーバ１４において例外が発生すると、エラーストリームライブラリ１６が自動的に起動され、プロパティファイル１８に格納されている通信条件に従って、１次集計サーバ２２にエラー情報が送信される。
【００２４】
一方、エラー情報を収集する１次集計サーバ２２には、エラー情報ファイル２６（例外情報蓄積手段）と、プロパティファイル２８と、が備えられる。エラー情報ファイル２６には、クライアント１２或いはサーバ１４から送信されたエラー情報が格納される。プロパティファイル２８には、クライアント１２或いはサーバ１４において発生した例外を解析するための解析クライアント３０のアドレス、エラー情報の転送先である２次集計サーバ２４のアドレス、及び、通信ポート番号等の通信条件が格納される。なお、１次集計サーバ２２から２次集計サーバ２４に転送されるエラー情報は、クライアント１２或いはサーバ１４から送信されたエラー情報のうち、後述する詳細情報を除いた基本情報である。
【００２５】
２次集計サーバ２４には、１次集計サーバ２２と同様に、エラー情報ファイル２６と、プロパティファイル２８と、が備えられる。エラー情報ファイル２６には、１次集計サーバ２２から転送されたエラー情報が格納される。プロパティファイル２８には、解析クライアント３０のアドレス、及び、通信ポート番号等の通信条件が格納される。
【００２６】
解析クライアント３０には、エラー情報を表示するモニタ３２（情報表示手段）と、プロパティファイル３４と、例外解析のための各種プログラム（図示せず）と、操作入力手段としてのキーボード等の入力装置（図示せず）と、が備えられる。プロパティファイル３４には、エラー情報の取得先としての１次集計サーバ２２及び２次集計サーバ２４のアドレス、及び、通信ポート番号等の通信条件が格納される。
【００２７】
次に、かかる構成からなるトラブルシューティング装置の作用について、図１を参照しつつ説明する。
クライアント１２からサーバ１４に対して処理要求が送信され（処理(a) ）、かつ、サーバ１４上で例外が発生すると（処理(b) ）、エラーストリームライブラリ１６が自動起動され、エラー情報が生成される（処理(c) ）。そして、プロパティファイル１８に格納された通信条件に基づいて、エラー情報の送信先アドレス及び通信ポート番号等が決定され（処理(d) ）、１次集計サーバ２２にエラー情報が送信される（処理(e) ）。
【００２８】
一方、サーバ１４に対して処理要求を送信したクライアント１２においては、処理要求に対する応答がないため、例えば、タイムアウトに起因する例外が発生する（処理(f) ）。このため、サーバ１４で例外が発生したのと同様に、エラーストリームライブラリ１６が自動起動され、エラー情報が生成される（処理(g) ）。そして、プロパティファイル１８に格納された通信条件に基づいて、エラー情報の送信先アドレス及び通信ポート番号等が決定され（処理(h) ）、１次集計サーバ２２にエラー情報が送信される（処理(i) ）。
【００２９】
エラー情報を受信した１次集計サーバ２２においては、受信したエラー情報がエラー情報ファイル２６に格納される（処理(j) ）。そして、プロパティファイル２８に格納された通信条件に基づいて、エラー情報の転送先アドレス及び通信ポート番号等が決定され（処理(k) ）、２次集計サーバ２４に詳細情報を除いたエラー情報（以下「基本エラー情報」という）が転送される（処理(l) ）。
【００３０】
基本エラー情報を受信した２次集計サーバ２４においては、受信した基本エラー情報がエラー情報ファイル２６に格納される（処理(m) ）。
１次集計サーバ２２及び２次集計サーバ２４に集計されたエラー情報を解析する場合には、解析クライアント３０において、エラー情報の解析が行われる。即ち、プロパティファイル３４に格納された通信条件に基づいて、基本エラー情報の取得先である２次集計サーバ２４のアドレス及び通信ポート番号等が決定され（処理(n) ）、通信回線を介して２次集計サーバ２４から基本エラー情報が取得される（処理(o) ）。そして、取得された基本エラー情報は、整理された後、モニタ３２に表示される（処理(p) ）。また、詳細なエラー情報を参照する場合には、プロパティファイル３４に格納された通信条件に基づいて、詳細エラー情報の取得先である１次集計サーバ２２のアドレス及び通信ポート番号等が決定され（処理(q) ）、１次集計サーバ２２から詳細エラー情報が取得される（処理(r) ）。そして、取得された詳細エラー情報は、整理された後、モニタ３２に表示される（処理(s) ）。
【００３１】
トラブルシューティング装置で使用される通信データは、オブジェクト指向の「クラス」によって識別されるフォーマットが採用されている。
通信データの基本フォーマットは、図２に示すように、クラス識別部と、固有データ部と、を含んで構成される。クラス識別部には、通信データの種別を特定するクラスのクラス名長（固定長）と、クラス名（可変長）と、が設定される。このようにすれば、クラス名の長短に関わらず、クラス識別部が必要最小限のバイト数で記述でき、通信データの低減を図ることができる。また、固有データ部には、クラス識別部に設定されたクラスに対応して、可変長の固有データが設定される。従って、通信データを受信したときには、クラス識別部に設定されたクラスに基づいて処理すべき内容を決定し、必要に応じて固有データ部を参照して処理を行えばよい。
【００３２】
通信データがエラー情報である場合には、図３に示すように、通信データの固有データ部に各種情報が設定される。エラー情報は、大別して、基本情報と詳細情報とから構成される。
基本情報は、発生ホストアドレス（例外発生場所情報）と、例外発生時刻（例外発生時刻情報）と、呼び出しホストアドレス（情報交換先情報）と、スレッド情報と、詳細情報データ長と、予備情報と、を含んで構成される。発生ホストアドレスには、例外が発生したクライアント１２或いはサーバ１４（以下「ホスト」という）を特定するアドレス、例えば、ＴＣＰ／ＩＰの場合にはインターネットアドレスが設定される。例外発生時刻には、例外が発生したときのホスト上の時刻（以下「ホスト時刻」という）と、後述する処理によってホスト時刻を集計サーバ２０上の時刻に変換した統一時刻と、が設定される。ホスト時刻は、ホストの内部時計（第１の時刻取得手段）により取得され、統一時刻は、後述する処理を実現するプログラムにより取得される。呼び出しホストアドレスには、例外が発生したときに、例外が発生したホスト（即ち、サーバ１４）を呼び出していたホスト、具体的には、クライアント１２を特定するアドレスが設定される。なお、クライアント１２で例外が発生したときには、呼び出しホストアドレスは設定されず、例えば、「NULL」が設定される。スレッド情報には、例外が発生したホストにおいて、例外が発生したスレッドを特定するスレッドの識別子が設定される。詳細情報データ長には、可変長である詳細情報のデータ長が設定される。予備情報には、本実施形態では何も設定されていないが、将来の拡張に対応するための情報が設定可能となっている。
【００３３】
一方、詳細情報は、システム情報と、スタック情報と、ユーザ定義情報と、を含んで構成される。システム情報には、例外が発生したホストのハードウエア情報、ＯＳ（Operating System）名、ＯＳのバージョン情報、適用業務の処理を行ったユーザのアカウント名等が設定される。スタック情報には、例外が発生したプログラムの関数及びこの関数を呼び出した関数の階層情報が設定される。ユーザ定義情報には、ユーザが自由に定義できる情報が設定される。
【００３４】
ここで、統一時刻の算出方法について、図４を参照しつつ説明する。
統一時刻を算出する理由は、各ホスト及び集計サーバ２０の時刻は必ずしも同一ではなく、エラー情報を収集した時刻を統一しておかなければ、システム全体で発生したエラー情報を時系列にソートすることができないからである。エラー情報を受信した集計サーバ２０上の時刻を使用することも考えられるが、エラー情報はネットワークを経由して伝達されるために時間のずれが発生し、例外の発生時刻が必ずしもシステム全体で統一されない。
【００３５】
なお、図４に示す例では、説明を簡略化するために、ホスト及び集計サーバ２０上の時刻を「分：秒」で表わすこととする。
ホストにおいて、例外がホスト上の時刻ＡＴＥ（１０：０２）に発生したと仮定する。例外が発生したホストでは、前述したように、エラーストリームライブラリ１６が自動起動され、エラー情報が生成される。このとき、統一時刻を算出するため、ホストから集計サーバ２０に対して、ホスト上の時刻ＡＴ０（１０：０３）に時刻通知要求が送信される（時刻返送要求送信手段に相当）。時刻通知要求を受信した集計サーバ２０は、時刻通知要求を受信した集計サーバ２０上の時刻ＢＴ１（１０：０１）を迅速にホストに返送する（時刻返送手段に相当）。時刻ＢＴ１は、集計サーバ２０の内部時計（第３の時刻取得手段）により取得される。ホストでは、返送された時刻ＢＴ１を受信したホスト上の時刻ＡＴ２（１０：０９）、時刻ＡＴＥ、時刻ＡＴ０、時刻ＡＴ２及び時刻ＢＴ１に基づいて、以下に示す手順により、例外が発生した統一時刻を算出する。
【００３６】
先ず、時刻ＡＴ０及びＡＴ２に基づいて次式により、集計サーバ２０が時刻通知要求を受信したと推定されるホスト上の時刻ＡＴ１を算出する。
0003897897.tif 000002
次に、ホスト上の時刻と集計サーバ２０上の時刻とのずれを、
ＢＴ１−ＡＴ１＝１０：０１−１０：０６＝−００：０５
と仮定する。その後、次式により、統一時刻ＢＴＥs を算出する。
【００３７】
0003897897.tif 000003
なお、時刻ＡＴ２から時刻ＡＴ０を減算する処理が返送時間計測手段に相当し、統一時刻ＢＴＥs を算出する処理が統一時刻算出手段に相当する。
【００３８】
このように、ホスト上の時刻を集計サーバ２０上の時刻に変換するようにすれば、時計サーバがなくとも、時計サーバ並みの正確さをもって時刻の統一が可能となる。即ち、時計サーバを追加することによる、システム構築コストの増加を防止することができる。また、ネットワークコンピューティング環境で発生した例外に対して、統一した時刻で昇順或いは降順にソートすることができるので、例外の順序付けが可能となる。このため、例外発生要因の探索が、迅速かつ容易に行えるようになる。
【００３９】
次に、トラブルシューティング装置を実現するための具体的な手法について説明する。
ホスト上のエラーストリームライブラリ１６から集計サーバ２０にエラー情報を送信するため、次のようなエラーストリームクラス「ERCErrorStream」が定義される。なお、エラーストリームクラスは、本実施形態ではＪＡＶＡによって記述されているが、ＪＡＶＡに限らず他の言語、例えば、ＣＯＢＯＬ，Ｃ＋＋等を使用しても何ら差し支えない（以下同様）。
0003897897.tif 000004
エラーストリームクラスのコンストラクタ及びメソッドは、次のような機能を有する。
【００４０】
0003897897.tif 000005
かかるエラーストリームクラスは、次のプログラム例に示すように、ホスト上の各アプリケーションで例外が発生したときに生成され、集計サーバ２０にエラー情報を送信する。なお、エラーストリームクラスの構築、及び、エラー情報の送信処理は、例えば、各アプリケーションの作成者等によって、予めアプリケーションに組み込まれていなければならない。
0003897897.tif 000006
なお、上記プログラムにおけるcatch() 文が、例外発生検知手段、例外発生検知工程、例外発生検知機能に相当する。
【００４１】
次に、クライアント１２がＪＡＶＡアプレットで実現されている場合について、図５を参照しつつ説明する。なお、先の実施形態（図１参照）と同一構成には、同一符号を付すことで、その説明は省略するものとする。
ＪＡＶＡアプレットには、ＪＡＶＡアプレットが動作するコンピュータの資源に直接アクセスできないという制限がある。このため、例外が発生したコンピュータ上で、エラーログを残したり、或いは、エラー情報をモニタ等に出力することができない。かかる制限下でエラー情報を収集するため、本実施形態では、１次集計サーバ２２をクライアント／サーバシステム１０のサーバ１４上に構築する構成を採用した。
【００４２】
即ち、サーバ１４のデータベース４０には、クライアント１２から参照等されるＨＴＭＬ（Hypertext Markup Language ）ファイル４２と、ＪＡＶＡアプレット４４と、が蓄積されている。クライアント１２からサーバ１４に対してＨＴＭＬファイル４２の参照要求があると、サーバ１４は、参照対象であるＨＴＭＬファイル４２と共にＪＡＶＡアプレット４４をクライアント１２に返送する（処理(a) ）。その後、クライアント１２に返送されたＪＡＶＡアプレット４４は、クライアント１２に作り込みのプログラムと同様に動作する。
【００４３】
このとき、ＪＡＶＡアプレット４４は、ＪＡＶＡアプレット４４を返送したサーバ１４とのみ通信ができる。この特性を利用し、クライアント１２で例外が発生したとき（処理(b) ）、ＪＡＶＡアプレット４４を介してエラー情報がサーバ１４、即ち、１次集計サーバ２２に送信されるようにする（処理(c) ）。そして、１次集計サーバ２２は、先の実施形態と同様に、基本エラー情報を２次集計サーバ２４に転送する（処理(d) ）。
【００４４】
かかる構成を実現するため、次のようなアプレットエラーストリーム「ERCAppletErrorStream」クラスが定義される。
0003897897.tif 000007
アプレットエラーストリームクラスのコンストラクタは、次のような機能を有する。
【００４５】
0003897897.tif 000008
なお、アプレットエラーストリームクラスは、エラーストリームクラスを継承したものであるので、その使用方法は、先のエラーストリームクラスと同様である。
【００４６】
また、分散呼出しされる場合の処理として、ＵＮＩＸ系の分散呼出しの標準プロトコルであるＣＯＲＢＡ環境における実施形態について説明する。
即ち、分散呼出しシステムを構築する場合、リモートメソッドとして直接呼び出される部分に、呼び出しホスト名を登録することにより呼び出し元を辿ることが可能となる。ＣＯＲＢＡ環境の場合には、Context オブジェクトまたは独自の方法（引数渡し等）によって、ＣＯＲＢＡクライアント、ＣＯＲＢＡサーバに自ホスト名を転送する必要がある。ＣＯＲＢＡサーバは、そのホスト情報を利用してホストのアドレスをpushClientHostメソッドを利用して登録する。
【００４７】
ＣＯＲＢＡ環境におけるプログラム例は、次のようになる。
0003897897.tif 000009
ここに、通常の処理が記述される
0003897897.tif 000010
次に、解析クライアント３０におけるエラー情報の解析手法について説明する。
【００４８】
解析クライアント３０において、エラー情報の解析を開始すると、モニタ３２には、図６（Ａ）に示すようなエラー情報表示画面５０が表示される。エラー情報表示画面５０は、一覧表示ウインドウ５２と、基本情報表示ウインドウ５４と、詳細情報表示ウインドウ５６と、を含んで構成される。一覧表示ウインドウ５２には、エラー情報を自動解析した結果の一覧、即ち、解析済みのホストが表示される。なお、図６（Ａ）の一覧表示ウインドウ５２は、エラー情報の解析を開始した直後の画面構成を表わしているため、解析済みのホストがない状態である。基本情報表示ウインドウ５４には、例外が発生したホスト名、例外発生時刻、呼び出しホスト名が表示される。例外が発生したホスト名は、エラー情報の発生ホストアドレスから取得され、また、呼び出しホスト名は、エラー情報の呼び出しホストアドレスから取得される。詳細情報表示ウインドウ５６には、エラー情報の詳細情報、即ち、システム情報、スタック情報、ユーザ定義情報が表示される。
【００４９】
エラー情報表示画面５０において、メニュー「処理」５８からサブメニュー「自動解析」５８ａが選択されると、図６（Ｂ）に示すような解析条件設定画面６０が表示される。解析条件設定画面６０は、解析開始ホスト設定部６２と、解析開始時刻設定部６４と、解析時間間隔設定部６６と、「開始」ボタン６８と、「キャンセル」ボタン７０と、を含んで構成される。解析開始ホスト設定部６２では、エラー情報の解析を開始する起点のホストが設定される。解析開始時刻設定部６４では、統一時刻をキーとしてソートされたエラー情報の中から、エラー情報の解析を開始する時刻が設定される。即ち、設定された解析開始時刻以後のエラー情報のみが解析対象となる。解析時間間隔設定部６６では、解析開始時刻設定部６４で設定された解析開始時刻を起点として、解析が行われる時間間隔が設定される。即ち、設定された時間間隔内、例えば、５秒間のエラー情報のみが解析対象となる。「開始」ボタン６８が押されると、設定された解析開始ホスト、解析開始時刻及び解析時間間隔を解析条件として、エラー情報の解析が開始される。「キャンセル」ボタン７０が押されると、解析条件の設定が中止され、図６（Ａ）に示すエラー情報表示画面５０に戻る。なお、エラー情報の解析手法に関しては、後述する。
【００５０】
解析条件設定画面６０において、「開始」ボタン６８が押されると、設定された解析条件に従ってエラー情報の解析が自動的に行われ、図６（Ｃ）に示すように、解析結果が一覧表示ウインドウ５２に追加される。この状態で、例えば、一覧表示ウインドウ５２から「ホストＡ」が選択されると、ホストＡに関連する解析結果が基本情報表示ウインドウ５４及び詳細情報表示ウインドウ５６に夫々表示される。基本情報表示ウインドウ５４及び詳細情報表示ウインドウ５６に表示される解析結果は、統一時刻をキーとしてソートされた状態で表示されるため、例外の解析が容易に行われるようになる。即ち、基本情報表示ウインドウ５４に時系列的に表示された基本情報をトレースすることで、どのホストにおいて例外が発生したかが容易に特定される。そして、例外が発生したホストにおける詳細情報を検討することで、例外が発生したスレッド等が容易に特定される。
【００５１】
ここで、エラー情報の解析手法について、図７のフローチャートを参照しつつ説明する。なお、以下説明する処理が、情報絞り込み手段、情報表示手段を実現する。
ステップ１（図では、「Ｓ１」と略記する。以下同様）では、エラー情報の解析結果が登録される配列の初期化が行われる。即ち、エラー情報の解析結果が登録されていない状態に配列を初期化する。なお、配列は、メモリ上に構築してもよいし、或いは、ファイル上に構築してもよい。
【００５２】
ステップ２では、図６（Ｂ）に示した解析条件設定画面６０により、解析条件（解析開始ホスト、解析開始時刻、解析時間間隔）が入力される。
ステップ３では、集計サーバ２０上のエラー情報ファイル２６に集計されたエラー情報が、統一時刻をキーとして昇順或いは降順にソートされる。昇順にソートされるか、或いは、降順にソートされるかは、ユーザが任意に選択できるようにしてもよい。
【００５３】
ステップ４では、設定された解析条件のうち、解析開始ホストを解析起点ホストとし、解析起点ホストを呼び出したホスト（以下「呼び出しホスト」という）を検索する。例えば、ホストＡがホストＢから呼び出されたときに例外が発生した場合には、解析起点ホストをホストＡに設定すると、呼び出しホストはホストＢになる。一方、解析起点ホストをホストＢに設定すると、ホストＢを呼び出したホストは存在しないため、呼び出しホストはＮＵＬＬとなる。
【００５４】
ステップ５では、呼び出しホストがＮＵＬＬであるか否か、即ち、呼び出しホストが存在するか否かが判断される。そして、呼び出しホストがＮＵＬＬのときには、呼び出しホストが存在しないと判断してステップ１０へと進み（Ｙｅｓ）、呼び出しホストがＮＵＬＬでないときには、ステップ６へと進む（Ｎｏ）。
ステップ６では、統一時刻をキーとしてソートされたエラー情報の中から、所定の検索条件を満たしたエラー情報の検索が行われる。検索条件は、解析情報設定画面６０（図６（Ｂ）参照）において設定された解析開始ホスト、解析開始時刻及び解析時間間隔に基づいて決定される。即ち、解析開始時刻及び解析時間間隔から、解析対象となるエラー情報の時間的な範囲が決定される。そして、かかる時間的な範囲内におけるエラー情報の中から、解析開始ホスト及び呼び出しホストの呼び出し関係が設定され、かつ、配列にかかる呼び出し関係が未登録であるエラー情報が検索される。
【００５５】
ステップ７では、検索が成功したか否かが判断される。そして、検索が成功したときにはステップ８へと進み（Ｙｅｓ）、検索が失敗、即ち、検索が完了したときにはステップ１０へと進む（Ｎｏ）。
ステップ８では、検索結果（具体的には、解析起点ホスト、例外発生時刻及び呼び出しホストの関係）が配列に登録される。
【００５６】
ステップ９では、呼び出しホストが解析起点ホストとされ、ステップ４へと戻る。即ち、ステップ９以降の処理では、呼び出しホストを解析起点ホストとし、エラー情報の解析が続行される。
ステップ１０では、解析済みのホストが一覧表示ウインドウ５２に表示されると共に、配列に登録された検索結果が基本情報ウィンドウ５４に表示される。
【００５７】
以上説明したステップ１〜ステップ１０の処理によれば、エラー情報の解析を開始する起点となるホスト及び時間的な解析範囲を設定するだけで、関連があるエラー情報のみが自動的に検索され、その検索結果がモニタ３２上に表示される。従って、例外が発生したホストを探求する手間が大幅に低減し、プログラム障害等の例外の発生原因究明を容易に行うことができる。
【００５８】
かかるエラー情報の解析を、具体例をもって説明する。
例えば、図８に示すような多階層のネットワークコンピューティング環境があったと仮定する。ネットワークコンピューティング環境は、ホストＡを最上位階層とし、ホストＡの下位階層にホストＢ〜Ｄ、ホストＢ〜Ｄの下位階層にホストＥ〜Ｊ、ホストＥ〜Ｊの下位階層にホストＫ〜Ｖがある４階層構造とする。ホストＫからホストＥを呼び出すときに例外が発生し、例外がホストＢからホストＡを呼び出すときまで波及したとする。このとき、ホストＫ→ホストＥ→ホストＢ→ホストＡという呼び出し関係において、エラー情報が夫々収集される。
【００５９】
そこで、エラー情報の解析を行う場合には、エラー情報表示画面５０の基本情報表示ウインドウ５４に表示されたエラー情報の中から、エラー解析を行う解析開始ホストを選択する。前記呼び出し関係においては、ホストＡを解析開始ホストとすればよい。すると、前述したフローチャートの処理により、ホストＫ→ホストＥ、ホストＥ→ホストＢ、ホストＢ→ホストＡの呼び出し関係が設定されたエラー情報が抽出される。抽出されたエラー情報を見れば、例外はホストＫにおいて発生したことが一目して把握できる。従って、エラー情報の解析を極めて容易に行うことができるのである。
【００６０】
解析されたエラー情報の詳細情報をさらに参照する場合には、基本情報表示ウィンドウ５４に表示される基本情報の中から、詳細情報を参照したい基本情報を選択する。すると、選択されたエラー情報の詳細情報が、詳細情報表示ウインドウ５６に表示される。
詳細情報のユーザ定義情報を表示するため、利用者定義のＪＡＶＡクラスを利用してモニタ３２上に表示するプラグイン機能が準備されている。解析クライアント３０では、かかるプラグイン機能によりユーザ定義情報が表示される。
【００６１】
プラグイン機能が使用する利用者定義のＪＡＶＡクラスをプラグインクラスと呼ぶ。エラーストリームライブラリ１６によって、エラー情報を送信するアプリケーションを作成した場合には、アプリケーション作成者は、ユーザ定義情報をモニタ３２上に表示する処理を定義したプラグインクラスを作成し、解析クライアント３０に登録しなければならない。
【００６２】
実際にプラグインクラスを作成する場合には、次のようなプラグイン「ERCPlugin 」インターフェースを実装する。
0003897897.tif 000011
プラグインインターフェースのメソッドは、次のような機能を有する。
【００６３】
(1) public void setProperty(java.io.ObjectInputStream in);
機能  引数のストリームからユーザ定義情報を復元する
引数  in：変数を格納したストリーム
(2) public  java.awt.Frame creatFrame();
機能  復元されたユーザ定義情報を表示するフレームを作成する
引数  なし
かかるプラグインの作成例を次に示す。
0003897897.tif 000012
以下は、SampleClass 型のユーザ定義情報を表示するプラグインクラスの定義例である。
0003897897.tif 000013
0003897897.tif 000014
機種に依存しないＪＡＶＡにより定義されたプラグイン機能を備えることで、相違するＯＳ等により構成されるネットワークコンピューティング環境においても、同一のプラグイン機能によりユーザ定義情報が表示できるようになる。
【００６４】
なお、かかる機能を実現するプログラムを、例えば、紙カード（パンチカード）、紙テープ、磁気テープ、磁気ディスク、磁気ドラム、ＩＣカード、ＣＤ−ＲＯＭ等の記録媒体に記録しておけば、本発明に係るトラブルシューティングプログラムを流通させることができる。そして、かかる記録媒体を取得した者は、容易にトラブルシューティング装置を構築することができる。
【００６５】
【発明の効果】
以上説明したように、請求項１又は請求項４に記載の発明によれば、発生情報は一括して収集されるので、分散された各アプリケーションの発生情報を一々調べる必要がなく、例外の発生原因究明のための労力を大幅に低減することができる。
【００６６】
このとき、発生情報には、例外発生場所情報、例外発生時刻情報及び情報交換先情報が含まれるので、どのアプリケーションで例外が発生したか等が判断でき、例外の発生原因の解析を容易に行うことができる。また、発生情報が自動的に絞り込まれ、その結果が表示されるので、例外の発生原因の解析を自動で行うことができる。
請求項２記載の発明によれば、例外発生時刻情報には、ネットワークコンピューティング環境における例外発生時刻が含まれるので、システムで統一された時刻に発生情報を整列することができる。このため、例外発生の時系列的な関連付けが可能となり、例外の発生原因の解析をより容易に行うことができる。
【００６７】
請求項３記載の発明によれば、ネットワークコンピューティング環境における時刻を取得することを目的として、時計サーバを新たに設ける必要がなく、システムの構築コストを低減することができる。
【００６８】
請求項５記載の発明によれば、請求項１又は請求項４記載の発明の効果に加えて、本発明に係るトラブルシューティングプログラムを市場に流通させることができる。従って、かかるプログラムを記録した媒体を取得した者は、一般的な電子計算機を利用してトラブルシューティング装置を容易に構築することができる。
【図面の簡単な説明】
【図１】トラブルシューティング装置の一実施形態を示すシステム構成図である。
【図２】通信データのフォーマットの説明図である。
【図３】エラー情報の説明図である。
【図４】統一時刻の算出原理の説明図である。
【図５】トラブルシューティング装置の他の実施形態を示すシステム構成図である。
【図６】エラー情報の自動解析を行う手順を説明する図であり、（Ａ）はエラー情報表示画面、（Ｂ）は解析条件設定画面、（Ｃ）は解析結果が表示された画面である。
【図７】エラー情報の自動解析処理を説明するフローチャートである。
【図８】エラー情報の自動解析を具体例をもって説明するためのネットワークコンピューティング環境の構成図である。
【符号の説明】
１０・・・クライアント／サーバシステム
１２・・・クライアント
１４・・・サーバ
１６・・・エラーストリームライブラリ
２０・・・集計サーバ
２２・・・１次集計サーバ
２４・・・２次集計サーバ
２６・・・エラー情報ファイル
３２・・・モニタ
【図１】
0003897897.tif 000015
【図２】
0003897897.tif 000016
【図３】
0003897897.tif 000017
【図４】
0003897897.tif 000018
【図５】
0003897897.tif 000019
【図６】
0003897897.tif 000020
【図７】
0003897897.tif 000021
【図８】
0003897897.tif 000022