(57)【特許請求の範囲】
【請求項１】
第１の装置および第２の装置に接続される特定装置であって、
プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、前記第１の装置との間の通信を制御し、前記第２の装置との間の通信を制御するインターフェースとを備え、
前記メモリは、前記第１の装置が受信した第１のリクエスト集合と、前記第１の装置からの要求により前記第２の装置で処理された第２のリクエスト集合と、を記憶し、
前記プロセッサは、
前記第１のリクエスト集合の中の調査対象リクエストと同一種別である同種別リクエスト群を前記第１のリクエスト集合の中から取得し、
前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記第１の装置から前記第２の装置に送信されてから前記第２の装置から前記第１の装置にレスポンスが送信されるまでの処理期間中に前記第１の装置から前記第２の装置に送信され前記第２の装置から前記第１の装置にレスポンスが送信された、前記調査対象リクエストの種別とは異なる他の種別のリクエストを、前記第１のリクエスト集合の中から取得し、
前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得された前記他の種別のリクエストとの組み合わせを生成し、
生成された組み合わせの集合の中から、ある組み合わせ内の前記異なる種別のリクエストと一致する他の組み合わせを削除し、
削除後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記処理期間中に前記第２の装置で処理された第２のリクエストを前記第２のリクエスト集合から取得し、
前記削除後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得した前記第２のリクエストとの相関値を算出し、
算出結果を出力する、
ことを特徴とする特定装置。
【請求項２】
前記プロセッサは、
前記調査対象リクエストおよび前記同種別リクエスト群のうち、特定された前記他の種別のリクエストの個数が所定数以上、または、昇順で所定順位以下のリクエストを削除する第１の削除処理を実行し、
前記第１の削除処理後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得された前記他の種別のリクエストとの組み合わせを生成し、
生成された組み合わせの集合の中から、ある組み合わせ内の前記異なる種別のリクエストと一致する他の組み合わせを削除する第２の削除処理を実行し、
前記第２のリクエストを前記第２のリクエスト集合から取得する処理では、前記第２の削除処理後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記処理期間中に前記第２の装置で処理された第２のリクエストを前記第２のリクエスト集合から取得し、
前記第２のリクエストとの相関値を算出する処理では、前記第２の削除処理後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得した前記第２のリクエストとの相関値を算出する、
ことを特徴とする請求項１に記載の特定装置。
【請求項３】
前記プロセッサは、
前記同種別リクエスト群の各リクエストについて、当該リクエストの処理期間の期間長と、前記他の種別のリクエストの個数と、の間に所定強度以上の相関の有無を判定し、
所定強度以上の相関がない場合、前記他の種別のリクエストとの組み合わせを生成する、
ことを特徴とする請求項２に記載の特定装置。
【請求項４】
前記プロセッサは、
前記所定強度以上の相関有りと判定された場合、前記同種別リクエスト群のうち、前記処理期間の期間長がしきい値を超過する同種別リクエストを取得し、
前記第２のリクエストを前記第２のリクエスト集合から取得する処理では、前記処理期間の期間長がしきい値を超過する同種別リクエストについて、前記処理期間中に前記第２の装置で処理された第２のリクエストを前記第２のリクエスト集合から取得する、
ことを特徴とする請求項３に記載の特定装置。
【請求項５】
前記プロセッサは、
前記処理期間中に前記第２の装置で処理された第２のリクエストから、前記同種別リクエストが前記第１の装置に受信される前から前記第２の装置で処理されたリクエストを削除する、
ことを特徴とする請求項１に記載の特定装置。
【請求項６】
前記プロセッサは、
前記処理期間中に前記第２の装置で処理された第２のリクエストから、処理期間の期間長が一定時間未満のリクエストを削除する、
ことを特徴とする請求項１に記載の特定装置。
【請求項７】
前記プロセッサは、
前記第１のリクエスト集合の中から操作入力により前記調査対象リクエストを選択することを特徴とする請求項１に記載の特定装置。
【請求項８】
前記メモリには、前記第１のリクエスト集合のリクエスト数に対する前記第２の装置の経時的な負荷変動の予測値を示す予測情報が記憶されており、
前記プロセッサは、
現在時刻における負荷変動の予測値を前記予測情報から特定し、
特定した前記負荷変動の予測値に応じて前記第２の装置による処理間隔を変更する、
ことを特徴とする請求項１に記載の特定装置。
【請求項９】
第１の装置および第２の装置に接続される特定装置に実行させる特定プログラムであって、
前記特定装置は、プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、前記第１の装置との間の通信を制御し、前記第２の装置との間の通信を制御するインターフェースとを備え、
前記メモリは、前記第１の装置が受信した第１のリクエスト集合と、前記第１の装置からの要求により前記第２の装置で処理された第２のリクエスト集合と、前記第１のリクエスト集合内の第１のリクエストについて前記第１のリクエストと同一種別である同種別リクエスト群が対応付けられた対応情報と、前記第１のリクエストと前記第２のリクエスト集合内の第２のリクエストと前記第２のリクエストの出現数とを関連付けた計数情報と、を記憶し、
前記プロセッサに、
前記第１のリクエスト集合の中から前記対応情報に追加されていない第１の追加対象リクエストを選択させ、
選択した前記第１の追加対象リクエストについて、前記第１の装置から前記第２の装置に送信されてから前記第２の装置から前記第１の装置にレスポンスが送信されるまでの処理期間中に前記第１の装置から前記第２の装置に送信され前記第２の装置から前記第１の装置にレスポンスが送信された、前記第１の追加対象リクエストの種別とは異なる他の種別のリクエストを、前記第１のリクエスト集合および前記対応情報の各々の中から取得させ、
前記第１のリクエスト集合から取得された前記他の種別のリクエストと前記対応情報から取得された前記他の種別のリクエストとが重複するか否かを判定させ、
重複していない場合、前記対応情報に、前記第１の追加対象リクエストおよび前記第１のリクエスト集合から取得された前記他の種別のリクエストを追加させ、
前記第１の追加対象リクエストの処理期間中に前記第２の装置で処理された第２の追加対象リクエストと当該第２の追加対象リクエストの出現数とを、前記第２のリクエスト集合から特定させ、
前記第１の追加対象リクエストと前記第２の追加対象リクエストと前記第２の追加対象リクエストの出現数とに基づいて、前記計数情報を更新させる、
ことを特徴とする特定プログラム。
【請求項１０】
前記プロセッサに、
前記対応情報に追加された前記第１の追加対象リクエストについて、前記第１の追加対象リクエストの種別とは異なる他の種別のリクエストの個数を前記対応情報から計数させ、
計数結果が所定数以上である場合、前記対応情報に追加された前記第１の追加対象リクエストおよび前記第１のリクエスト集合から特定された前記他の種別のリクエストを前記対応情報から削除させ、
前記計数情報から前記出現数を減算することにより前記計数情報を更新させる、
ことを特徴とする請求項９に記載の特定プログラム。
【請求項１１】
前記プロセッサに、
前記対応情報に記憶されている前記第１の追加対象リクエストの種別とは異なる他の種別のリクエストの個数がしきい値以上である場合、前記他の種別のリクエストの重複判定を実行させ、しきい値未満の場合、前記他の種別のリクエストの重複判定を実行させないことを特徴とする請求項９に記載の特定プログラム。
【請求項１２】
前記プロセッサに、
前記第１のリクエスト集合に記憶されている前記第１の追加対象リクエストの種別とは異なる他の種別のリクエストの個数が、前記対応情報に記憶されている前記第１の追加対象リクエストの種別とは異なる他の種別のリクエストの個数より大きいか否かを判定させ、
大きい場合、前記他の種別のリクエストの重複判定を実行させ、大きくない場合、前記他の種別のリクエストの重複判定を実行させないことを特徴とする請求項９に記載の特定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムで起きた性能障害の原因候補を特定する特定装置、特定方法、および特定プログラムに関する。
【背景技術】
【０００２】
計算機システムの性能管理は、運用部門の重要な役割の一つである。運用部門は、（Ａ）計算機システムがエンドユーザへ提供するサービスの性能劣化を検知し、（Ｂ）その原因を特定し、対処する。【０００３】
（Ａ）を実現する技術にエンドユーザモニタリング技術がある。この技術は、エンドユーザから計算機システムへの処理要求を監視し、処理要求の遅延を検知する技術である。計算機システムがＷｅｂシステムの場合、エンドユーザから計算機システムへ送られたＨＴＴＰリクエストのパケットを監視し、処理要求パケットとその応答パケットの時間差から応答時間を求め、遅延の有無を検出する。【０００４】
（Ｂ）の性能障害の原因を特定する作業は、特に性能障害が起きやすいデータベースに対して行われることが多い。運用管理者は、データベースに送られた処理要求（ＳＱＬ文）を監視し、その実行時間の記録から、性能障害の原因と思われるＳＱＬ文を特定する。【０００５】
（Ａ）のＨＴＴＰリクエスト監視と、（Ｂ）のＳＱＬ文監視がそれぞれ個別に行われるため、両者を関連づけられない。このため、（Ａ）でＨＴＴＰリクエストの遅延を検知しても、遅延を発生させたＳＱＬ文を効率的に特定できない。【０００６】
これに対し、特許文献１の分析装置は、第一の組におけるリクエストとレスポンスとの間に、第二の組が存在する確率を算出し、算出された確率に基づいて、所定の第一の組に対応する第二の組を抽出する。すなわち、特許文献１の分析装置は、事前に関連のある情報同士を定義したモデルを用いることなく、確率に基づいて、所定の第一の組に対応する第二の組を抽出する。そのため、特許文献１の分析装置は、システムの仕様変更などにより、新たな第一の組と第二の組との対応が発生しても、この新たな第一の組と第二の組とを紐付ける。【０００７】
このように、特許文献１には、それぞれ独立に計測したＨＴＴＰリクエストとＳＱＬリクエストとが同じ期間に観測される確率（すなわち相関性）を計算する。あるＨＴＴＰリクエストの処理期間中に、特定のＳＱＬ文が現れる確率が高い場合、両者の間に関連性があるとする。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１９８８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＨＴＴＰリクエストおよびＳＱＬ文は、１秒間に数十〜数百個処理されることがあるため、その記録量が膨大になる。そのため、ＨＴＴＰリクエストとＳＱＬ文との確率を総当り的に計算すると、大量のデータ読み込みと膨大な計算が必要になる。このような計算を現実的な時間で実行する場合、計算負荷が増大するという問題がある。このような問題は、ＨＴＴＰリクエストとＳＱＬ文との関係に限らず、独立して観測される複数のデータ間で生じる。【００１０】
本発明は、独立して観測される複数のデータの対応関係を求める計算量を削減することを目的とする。
【課題を解決するための手段】
【００１１】
本願において開示される発明の一側面となる特定装置、特定方法、および特定プログラムは、第１の装置および第２の装置に接続される特定装置、特定方法、および特定プログラムであって、プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、前記第１の装置との間の通信を制御し、前記第２の装置との間の通信を制御するインターフェースとを備え、前記メモリは、前記第１の装置が受信した第１のリクエスト集合と、前記第１の装置からの要求により前記第２の装置で処理された第２のリクエスト集合と、を記憶し、前記プロセッサは、前記第１のリクエスト集合の中の調査対象リクエストと同一種別である同種別リクエスト群を前記第１のリクエスト集合の中から取得し、前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記第１の装置から前記第２の装置に送信されてから前記第２の装置から前記第１の装置にレスポンスが送信されるまでの処理期間中に前記第１の装置から前記第２の装置に送信され前記第２の装置から前記第１の装置にレスポンスが送信された、前記調査対象リクエストの種別とは異なる他の種別のリクエストを、前記第１のリクエスト集合の中から取得し、前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得された前記他の種別のリクエストとの組み合わせを生成し、生成された組み合わせの集合の中から、ある組み合わせ内の前記異なる種別のリクエストと一致する他の組み合わせを削除し、削除後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記処理期間中に前記第２の装置で処理された第２のリクエストを前記第２のリクエスト集合から取得し、前記削除後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得した前記第２のリクエストとの相関値を算出し、算出結果を出力する、ことを特徴とする。
【発明の効果】
【００１２】
本発明の代表的な実施の形態によれば、独立して観測される複数のデータの対応関係を求める計算量を削減することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態における性能障害の原因候補の特定例を示す説明図である。
【図２】実施例１にかかる監視システムのシステム構成図である。
【図３】図１に示したＨＴＴＰ監視データテーブルの記憶内容例を示す説明図である。
【図４】ＳＱＬ監視データテーブルの記憶内容例を示す説明図である。
【図５】監視設定テーブルの記憶内容例を示す説明図である。
【図６】ＨＴＴＰ監視プログラムの動作処理手順例を示すフローチャートである。
【図７】ＳＱＬ文特定プログラムが表示装置に表示する画面例を示す説明図である。
【図８】ＳＱＬ文特定プログラムによる処理手順例を示すフローチャートである。
【図９】図８に示したエントリ削除処理（ステップＳ８０６）の詳細な処理手順例を示すフローチャートである。
【図１０】実施例２にかかる監視システムのシステム構成図である。
【図１１】実施例２にかかる監視システムで利用するテーブルの記憶内容例を示す説明図である。
【図１２】実施例２にかかるＳＱＬ文特定プログラムによるＳＱＬ文特定処理の詳細な処理手順例を示すフローチャートである。
【図１３】図１２に示したＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）の詳細な処理手順例を示すフローチャート（前半）である。
【図１４】図１２に示したＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）の詳細な処理手順例を示すフローチャート（後半）である。
【図１５】図１３に示した第１の更新処理（ステップＳ１３１０）の詳細な処理手順例を示すフローチャートである。
【図１６】図１４に示した第２の更新処理（ステップＳ１４０４）の詳細な処理手順例を示すフローチャートである。
【図１７】実施例２にかかるＨＴＴＰ監視プログラムによるＳＱＬ文特定プログラム８２の起動処理の詳細な処理手順例を示すフローチャートである。
【図１８】実施例３にかかる監視システムのシステム構成図である。
【図１９】図１８に示したベースラインテーブルの記憶内容例を示す説明図である。
【図２０】ＳＱＬ文監視プログラムによる監視モード変更処理手順の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以後の説明では「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、ＤＢ、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等について「ａａａ情報」と呼ぶことがある。
【００１５】
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いるが、これらについてはお互いに置換が可能である。
【００１６】
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御デバイス）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
【００１７】
また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。この場合、プログラム配布サーバはプロセッサと記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムを記憶している。そして、配布プログラムをプロセッサが実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布する。
【００１８】
なお、本実施の形態にかかる監視計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインターフェースやイーサーネットインターフェースを入出力デバイスとし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示を代替してもよい。
【００１９】
以後、監視対象である計算機システムを監視し、本願発明の表示用情報を表示する一つ以上の計算機の集合を監視システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は監視計算機が管理システムである、また、監視計算機と表示用計算機の組み合わせも監視システムである。また、監視処理の高速化や高信頼化のために複数の計算機で監視計算機と同等の処理を実現してもよく、この場合は当該複数の計算機（表示を表示用計算機が行う場合は表示用計算機も含め）が監視システムである。
【００２０】
本発明の実施の形態にかかる性能障害の原因候補を特定する特定装置、特定方法、および特定プログラムについて説明する。
【００２１】
本実施の形態は、第１のリクエストの一例であるＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）リクエストと第２のリクエストの一例であるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文との対応を、より少ない計算量で精度良く求め、遅延したＨＴＴＰリクエストを起点として効率的に原因候補のＳＱＬ文を特定する。具体的には、背景技術の項で説明した従来方式は、総当り的にＨＴＴＰリクエストとＳＱＬ文の相関関係を求めるのに対し、本実施の形態は、一部の期間に限定することで計算量を大幅に削減する。
【００２２】
＜性能障害の原因候補の特定例＞
図１は、本発明の実施の形態における性能障害の原因候補の特定例を示す説明図である。図１において、左端の縦線は時間軸であり、上から下に向かって時間経過を示す。また、左列は、ある期間に計測されたＨＴＴＰリクエストであり、中列は、左列と同期間に計測されたＳＱＬ文であり、右列は、左列および中列における各期間を相関関係の計算に使用するか否かを示す。
【００２３】
左列の「＃１」の囲みは、「ある期間」を示す。図１では、４つの期間、すなわち＃１、＃２、＃３、および＃４を図示しており、期間＃１を例にとった表記説明は、他の期間＃２、＃３、および＃４にも共通である。
【００２４】
左列＃１の囲みは、２つのＨＴＴＰリクエスト、すなわち、Ｈ１とＨ２という種類のＨＴＴＰリクエストが、期間＃１に平行して処理されたことを示している。ここで、Ｈ１およびＨ２は、ＨＴＴＰリクエストの種別、つまり、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）やそれに類する識別情報など、ＨＴＴＰリクエストの種別を識別可能な情報を簡略的に表現した符号である。なお、この例では、図１中濃いハッチがかかったＨＴＴＰリクエストＨ１が遅延（性能障害）を示す。
【００２５】
以下、遅延が発生して性能障害の原因を特定したいＨＴＴＰリクエスト（ここではＨ１）をターゲットＨＴＴＰリクエスト、それ以外のＨＴＴＰリクエスト（ここではＨ２、Ｈ３、…）を外乱ＨＴＴＰリクエストと表記する。
【００２６】
中列も前述のＨＴＴＰ監視データと同様に、期間＃１中に、二つのＳＱＬ文、すなわち、Ｓ１およびＳ２という種別のＳＱＬ文が、平行して処理されたことを示している。ここで、Ｓ１は、ＨＴＴＰリクエストＨ１の処理中にＤＢＭＳ（ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）で処理されたＳＱＬ文とする。またＨ２、Ｓ２の関係も同様とする。
【００２７】
このように、ＨＴＴＰリクエストとＳＱＬ文の間には、処理上の対応関係が存在するが、ＨＴＴＰリクエストとＳＱＬ文をそれぞれ個別に計測した場合、一般的に、両者を結びつける情報を得ることはできない。そのため、時間的な相関性によって両者を結びつける技術の必要性が生じる。すなわち、ＨＴＴＰリクエストＨ１の処理中に、ＤＢＭＳでＳ１というＳＱＬ文が処理されていることが統計的に多い場合、Ｈ１とＳ１に処理上の関係性があるものと推測できる。
【００２８】
しかしながら、統計的な手法でＨＴＴＰリクエストとＳＱＬ文との間の相関性計算には、膨大な計算量を要する。図１には、簡単のため、ＨＴＴＰリクエストおよびＳＱＬ文ともに少数のケースを図示しているが、実際にはそれぞれ秒間数十個〜数百個の場合がありうる。本実施の形態も、ＨＴＴＰリクエストとＳＱＬ文との間の時間的な相関性で両者の関連性を推測するが、次の手法によって相関計算に用いる期間を限定し、計算量を削減する。
【００２９】
手法１：外乱ＨＴＴＰリクエストが少ない期間を選択する。
【００３０】
特定装置は、ターゲットＨＴＴＰリクエストと同時に処理されていた外乱ＨＴＴＰリクエストが少ない期間を選択して相関計算を行う。たとえば、ターゲットＨＴＴＰリクエストのみが処理されていた期間であれば、同期間に計測されたＳＱＬ文はターゲットＨＴＴＰリクエストと関連がある確率は高い。逆に、外乱ＨＴＴＰリクエストが多数ある期間の場合、同期間に計測されるＳＱＬ文も多数あることが多い。当該期間での相関計算は、正しくターゲットＨＴＴＰリクエストとＳＱＬ文との関係が得られる確率は低くなる。
【００３１】
期間＃２は、外乱ＨＴＴＰリクエストが多数あるケースを示している。このケースでは、ターゲットＨＴＴＰリクエストＨ１の他、３個の外乱ＨＴＴＰリクエストＨ３、Ｈ４、Ｈ５処理される。ＳＱＬ文も同様に、ターゲットＨＴＴＰリクエストと関連のあるＳＱＬ文（Ｓ１）と、それ以外のＳＱＬ文（Ｓ３、Ｓ４、Ｓ５）が処理される。期間＃２について機械的に相関性を計算すると、次のようになる。
【００３２】
下記は、期間＃２についてのＨＴＴＰリクエストとＳＱＬ文との相関性が正しい確率を示す。たとえば、以下に示すように、Ｈ１→Ｓ１の相関性が正しい確率が１/１６、Ｈ１→Ｓ３の相関性が正しい確率が１/１６、Ｈ１→Ｓ４、Ｈ１→Ｓ５も同様である。
【００３３】
ＨＴＴＰリクエスト→ＳＱＬ文：左の組み合わせの相関性が正しい確率
Ｈ１            →Ｓ１    ：１/１６
Ｈ１            →Ｓ３    ：１/１６
Ｈ１            →Ｓ４    ：１/１６
Ｈ１            →Ｓ５    ：１/１６
Ｈ３            →Ｓ１    ：１/１６
Ｈ３            →Ｓ３    ：１/１６
Ｈ３            →Ｓ４    ：１/１６
Ｈ３            →Ｓ５    ：１/１６
Ｈ４            →Ｓ１    ：１/１６
Ｈ４            →Ｓ３    ：１/１６
Ｈ４            →Ｓ４    ：１/１６
Ｈ４            →Ｓ５    ：１/１６
Ｈ５            →Ｓ１    ：１/１６
Ｈ５            →Ｓ３    ：１/１６
Ｈ５            →Ｓ４    ：１/１６
Ｈ５            →Ｓ５    ：１/１６
【００３４】
上記から、正しい相関性Ｈ１→Ｓ１が得られている確率は１／１６となる。一方、同じ計算を期間＃１で行った場合は、下記のようになる。
【００３５】
ＨＴＴＰリクエスト→ＳＱＬ文：左の組み合わせの相関性が正しい確率
Ｈ１            →Ｓ１    ：１/４
Ｈ１            →Ｓ２    ：１/４
Ｈ２            →Ｓ１    ：１/４
Ｈ２            →Ｓ２    ：１/４
【００３６】
期間＃１での計算では、正しい相関性Ｈ１→Ｓ１が得られる確率は１／４となり、期間＃２よりも大きな値を得られることが分かる。また、計算量も期間＃２より少ないことが分かる。しかしながら、この計算方法は、正しくない相関性も強化してしまう。たとえば、期間＃１の例では、正しくない相関性Ｈ１→Ｓ２の確率１／４を計算結果に反映してしまう。もし、期間＃１と同じＨＴＴＰリクエストＨ１、Ｈ２が計測された期間＃３を相関計算に用いた場合、Ｈ１→Ｓ２という正しくない相関性が更に強化されてしまう。これを避けるために、次の手法が追加される。
【００３７】
手法２：  外乱ＨＴＴＰリクエストの種別を不揃いにする。
【００３８】
すなわち、期間＃１（Ｈ１、Ｈ２）を相関計算に用いた場合、同じＨＴＴＰリクエストが計測された期間＃３（Ｈ１、Ｈ２）を相関計算に用いない。これにより、正しくない相関性が強化されることを回避する。以上の手法を整理すると、相関計算に用いる期間は次のようになる。ここで、左端の×印は、相関計算に用いない期間であることを示している。
【００３９】
期間＃１：    （Ｈ１、Ｈ２）
×期間＃２：    （Ｈ１、Ｈ３、Ｈ４、Ｈ５）
×期間＃３：    （Ｈ１、Ｈ２）
期間＃４：    （Ｈ１、Ｈ６）
【００４０】
すなわち、期間＃２は、外乱ＨＴＴＰリクエストが多いため手法１により除外される。また、期間＃３は、期間＃１と外乱ＨＴＴＰリクエストが同じであるため手法２により除外される。したがって、本実施の形態の手法は、ターゲットＨＴＴＰリクエストＨ１以外のＨＴＴＰリクエストの数が少なく、また、外乱ＨＴＴＰリクエストの種別が揃わないように期間を選択する。これにより、効率的かつ精度良く、ＨＴＴＰリクエストＨ１とＨＴＴＰリクエストＨ１に相関のあるＳＱＬ文との相関性が表れやすくする。
【００４１】
したがって、処理性能に遅延を示したＨＴＴＰリクエストの原因候補となるＳＱＬ文の特定に必要な計算量を削減することができる。また、計算に必要なデータ読み込み量も同時に削減することができる。また、計算量を削減することで、計算機１台で多数の計算機システムを監視することができる。また、処理性能に遅延を示したＨＴＴＰリクエストの原因となるＳＱＬ文を特定しやすい期間を、意図的に現出することができる。以下、本実施の形態の実施例について説明する。なお、以下に示す各実施例では、手法１および手法２を適用した例について説明するが、手法１および手法２のうち手法１のみ、または手法２のみを適用することとしてもよい。
【００４２】
（実施例１）
＜監視システム＞
図２は、実施例１にかかる監視システムのシステム構成図である。ネットワークシステム１は、監視計算機１０とその監視対象である計算機システム９５とを含む。監視計算機１０と計算機システム９５の各構成要素（後述）は、たとえば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）９０で接続される。
【００４３】
監視計算機１０は、プロセッサ１１、メモリ１２、表示Ｉ／Ｆ１４、およびネットワーク（ＮＷ）Ｉ／Ｆ１６から構成される。プロセッサ１１は、メモリ１２に格納されたＨＴＴＰ監視プログラム８０、ＳＱＬ文監視プログラム８１、およびＳＱＬ文特定プログラム８２を実行する。また、メモリ１２には、各プログラムが読み書きするＨＴＴＰ監視データテーブル２０、ＳＱＬ監視データテーブル３０、および監視設定テーブル４０が格納される。
【００４４】
表示Ｉ／Ｆ１４は、表示装置１５と接続される。各プログラムが運用管理者と入出力を行うための画面は、表示Ｉ／Ｆを介して表示装置１５に表示される。ＮＷＩ／Ｆ１６は、ＬＡＮ９０に接続される。各プログラムは、ＮＷＩ／Ｆ１６を介して、計算機システム９５の構成要素と通信する。
【００４５】
計算機システム９５は、スイッチ９２、Ｗｅｂ／ＡＰサーバ９３、データベース（ＤＢ）サーバ９４を含む。スイッチ９２、Ｗｅｂ／ＡＰサーバ９３、ＤＢサーバ９４は、ＬＡＮ９０に接続され、相互に通信する。Ｗｅｂ／ＡＰサーバ９３は、Ｗｅｂサーバまたはアプリケーションサーバのいずれか、または両機能を有するサーバである。Ｗｅｂ／ＡＰサーバ９３は複数台あってもよい。端末９１は、ブラウザを用いて、計算機システム９５へＨＴＴＰリクエストを送信する。ＨＴＴＰリクエストはスイッチ９２を通り、Ｗｅｂ／ＡＰサーバ９３、ＤＢサーバ９４の順に処理される。処理された結果は、再度スイッチ９２を通り、端末９１が使用するブラウザへ返される。
【００４６】
ＨＴＴＰ監視プログラム８０は、スイッチ９２を通過するパケットをキャプチャし、ＨＴＴＰリクエストの応答時間を計測する（詳細は後述）。計測結果は、ＨＴＴＰ監視データテーブル２０に格納される。
【００４７】
ＳＱＬ文監視プログラム８１は、ある監視間隔で、定期的にＤＢサーバ９４で実行されたＳＱＬ文の性能を監視する。その監視結果はＳＱＬ監視データテーブル３０に格納される。ＳＱＬ文特定プログラム８２は、運用管理者とインタラクションし、遅延したＨＴＴＰリクエストの原因となるＳＱＬ文の絞込み作業を支援する。
【００４８】
＜各テーブルの記憶内容例＞
図３は、図１に示したＨＴＴＰ監視データテーブル２０の記憶内容例を示す説明図である。ＨＴＴＰ監視データテーブル２０は、ＨＴＴＰ監視プログラム８０が計測したＨＴＴＰリクエストに関する情報を記録するテーブルである。ＨＴＴＰ監視データテーブル２０の各エントリ２８（２８ａ〜２８ｌ、…）は、ＨＴＴＰ監視プログラム８０が計測した以下の情報２１〜２７を含む。
【００４９】
ＨＴＴＰリクエスト識別子２１とは、各ＨＴＴＰリクエストに付与された一意識別子である。処理ホスト別ＨＴＴＰリクエスト同実行数２２とは、当該ＨＴＴＰリクエスト処理中に同時実行されていたＨＴＴＰリクエストの数を処理ホスト２３別に集計した値である。処理ホスト２３とは、当該ＨＴＴＰリクエストが送信されたＷｅｂ／ＡＰサーバ９３のホスト情報である。ＨＴＴＰリクエスト種別識別子２４とは、当該ＨＴＴＰリクエストの種類の一意識別子である。ＨＴＴＰリクエスト種別識別子２４は、ＨＴＴＰリクエストのＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）でもよいし、ＵＲＩの一部、または、ＵＲＩを基に生成したハッシュ値などでもよい。図３では、簡単のため、Ｈ１やＨ２といった表記が用いられる。
【００５０】
開始時刻２５とは、当該ＨＴＴＰリクエストが計算機システム９５で処理が開始された時刻である。たとえば、当該ＨＴＴＰリクエストを、ＨＴＴＰ監視プログラム８０がキャプチャした時刻である。終了時刻２６とは、当該ＨＴＴＰリクエストが計算機システム９５で処理が終了した時刻である。たとえば、当該ＨＴＴＰリクエストが計算機システム９５で処理された応答メッセージをＨＴＴＰ監視プログラム８０がキャプチャした時刻である。
【００５１】
しきい値超過２７とは、終了時刻２６から開始時刻２５を減算して得られた当該ＨＴＴＰリクエストの応答時間が、所定のしきい値を超過したか否かを示すフラグである。図３では、超過した場合に「Ｙ」、超過していなければ「Ｎ」が記録される。しきい値は静的な一定のしきい値でもよいし、後述する実施例３で後述するベースライン監視による動的なしきい値でもよい。
【００５２】
図４は、ＳＱＬ監視データテーブル３０の記憶内容例を示す説明図である。ＳＱＬ監視データテーブル３０は、監視計算機１０が計測したＳＱＬ文に関する情報を記録するテーブルである。ＳＱＬ監視データテーブル３０の各エントリ３９（３９ａ〜３９ｌ、…）は、監視計算機１０が計測した、Ｗｅｂ／ＡＰサーバ９３からＤＢサーバ９４へ実行要求された個々のＳＱＬ文に関する情報３１〜３８を含む。
【００５３】
ＳＱＬ識別子３１とは、当該ＳＱＬの種別を表す一意識別子である。ＳＱＬ識別子３１は、実際に実行要求されたＳＱＬ文でもよいし、ＳＱＬ文の一部でもよいし、または、ＳＱＬ文を基に生成されたハッシュ値でもよい。開始時刻３１とは、当該ＳＱＬの処理が開始された時刻である。終了時刻３３とは、当該ＳＱＬの処理が終了した時刻である。
【００５４】
要求元ホスト３４とは、当該ＳＱＬ文の実行を要求したＷｅｂ／ＡＰサーバ９３のホスト情報である。トランザクションＩＤ３５とは、当該ＳＱＬ文が属するＤＢサーバ９４（より具体的にはＤＢサーバ９４上で動作するＤＢＭＳ）によって付与されたトランザクションの識別子である。同一トランザクションに属するＳＱＬ文には、同じトランザクションＩＤ３５が付与される。すべてのＳＱＬ文にトランザクションＩＤ３５が付与されるわけではないため、トランザクションＩＤ３５は空欄の場合がある。
【００５５】
プロセッサ時間３６、Ｉ／Ｏ待ち時間３７、ロック待ち時間３８は、当該ＳＱＬ文の処理時間の内訳の時間である。ＤＢＭＳによっては、これらの時間情報を計測できない場合がある。また、これらの時間以外に、ＳＱＬ文の処理時間の内訳を示す時間情報をＳＱＬ監視データテーブル３０に格納してもよい。
【００５６】
図５は、監視設定テーブル４０の記憶内容例を示す説明図である。監視設定テーブル４０は、計算機システム９５別の監視設定情報を記録するテーブルである。ＨＴＴＰ監視プログラム８０およびＳＱＬ文監視プログラム８１は、監視設定テーブル４０から監視設定情報にしたがい、計算機システム９５を監視する。監視設定テーブル４０の各エントリには、それぞれ一つの監視設定情報が記録される。
【００５７】
システム４１とは、当該エントリに記録された監視設定情報が適用される計算機システム９５を示す情報である。図５では、「システムＡ」に監視設定情報が適用される。監視対象４２とは、監視設定情報の監視対象（ＨＴＴＰリクエストやＤＢＭＳ、あるいは図示しないが、サーバのプロセッサ使用率など）である。「システムＡ」の場合、ＨＴＴＰリクエストおよびＤＢＭＳが監視対象となる。
【００５８】
監視プロパティ：値４３とは、監視設定情報のプロパティ名とその値とを示す情報である。監視プロパティには、監視間隔と監視対象がある。図５では、例として、システムＡの全ＨＴＴＰリクエストをリアルタイムに監視すること、ＤＢＭＳへ実行要求されたＳＱＬ文を１秒間隔で監視することが規定される。
【００５９】
＜ＨＴＴＰ監視プログラム８０の動作処理手順＞
図６は、ＨＴＴＰ監視プログラム８０の動作処理手順例を示すフローチャートである。ＨＴＴＰ監視プログラム８０は、計算機システム９５が処理するＨＴＴＰリクエストの応答時間を計測し、その結果をＨＴＴＰ監視データテーブル２０へ格納する。
【００６０】
ＨＴＴＰ監視プログラム８０は、端末９１からＷｅｂ／ＡＰサーバ９３へ送信されたＨＴＴＰリクエストのパケットをキャプチャする（ステップＳ６０１）。端末９１から送信されたＨＴＴＰリクエストは、スイッチ９２によってＷｅｂ／ＡＰサーバ９３へ送られる。このとき、スイッチ９２は、パケットを複製してミラーポートへ送る。ＨＴＴＰ監視プログラム８０は、ＮＷＩ／Ｆ１６から、その複製されたパケットをキャプチャする。この場合、ＨＴＴＰ監視プログラム８０は、ＨＴＴＰリクエストへの応答メッセージとつき合わせて応答時間等を算出するために、キャプチャしたＨＴＴＰリクエストをメモリ１２に記録する。
【００６１】
ＨＴＴＰ監視プログラム８０は、端末９１が処理要求したＨＴＴＰリクエストに対して、計算機システム９５が返却する応答メッセージのパケットをキャプチャする（ステップＳ６０２）。端末９１が処理要求したＨＴＴＰリクエストは、Ｗｅｂ／ＡＰサーバ９３およびＤＢサーバ９４で処理され、応答メッセージが生成される。応答メッセージは、Ｗｅｂ／ＡＰサーバから９３から端末９１へ送信される。このとき、ＨＴＴＰリクエストと同様に、応答メッセージもスイッチ９２を通過する。ＨＴＴＰ監視プログラム８０は、ステップＳ６０１と同様に、応答メッセージのパケットをキャプチャする。
【００６２】
ＨＴＴＰ監視プログラム８０は、ＨＴＴＰリクエストの応答時間を算出する（ステップＳ６０３）。ＨＴＴＰ監視プログラム８０は、ステップＳ６０１で一時的に記録したＨＴＴＰリクエストのパケットと、ステップＳ６０２で取得した、それに対する応答メッセージとの計測時刻の差分を、ＨＴＴＰリクエストの応答時間として算出する。
【００６３】
ＨＴＴＰ監視プログラム８０は、その時点で平行に処理されていたＨＴＴＰリクエストの数、すなわち、処理ホスト別ＨＴＴＰリクエスト同時実行数を計算する（ステップＳ６０４）。ＨＴＴＰ監視プログラム８０は、ステップＳ６０１において一時記憶域に記録されたＨＴＴＰリクエストを、同ＨＴＴＰリクエストのヘッダから取得した送信先ホストごとにグルーピングし、その個数を処理ホスト別ＨＴＴＰリクエスト同時実行数として算出する。
【００６４】
ＨＴＴＰリクエスト同時実行数の算出は、別の方法でもよい。たとえば、ＨＴＴＰ監視プログラム８０が、一定期間（たとえば１秒）に一時記憶域に記録されたＨＴＴＰリクエスト数の最大値をＨＴＴＰリクエスト同時実行数として求め、この数を、この期間中に処理された全ＨＴＴＰリクエストのＨＴＴＰリクエスト同時実行数としてもよい。
【００６５】
ＨＴＴＰ監視プログラム８０は、ＨＴＴＰ監視データテーブル２０に新規のエントリを追加し、ＨＴＴＰリクエストのデータを記録する（ステップＳ６０５）。ＨＴＴＰ監視プログラム８０は、新規エントリ作成時に、ＨＴＴＰ監視データテーブル２０内で一意な識別子を生成し、ＨＴＴＰリクエスト識別子２１として記録する。また、ＨＴＴＰ監視プログラム８０は、ステップＳ６０４で算出した値を、処理ホスト別ＨＴＴＰリクエスト同時実行数２２に格納する。
【００６６】
また、ＨＴＴＰ監視プログラム８０は、ステップＳ６０１で一時記憶域に保存したＨＴＴＰリクエストのヘッダから送信先ホストおよびＵＲＬを取得し、それぞれ処理ホスト２３、ＨＴＴＰリクエスト種別識別子２４として記録する。前述の通り、ＨＴＴＰリクエスト種別識別子２４は、ＵＲＬそのままでもよいし、ＵＲＬを元に生成した別の識別子でもよい。
【００６７】
また、ＨＴＴＰ監視プログラム８０は、ステップＳ６０１でＨＴＴＰリクエストをキャプチャした時刻を開始時刻２５とし、また、ステップＳ６０２で応答メッセージをキャプチャした時刻を終了時刻２６として記録する。また、応答時間に対してしきい値が設けられている場合、ＨＴＴＰ監視プログラム８０は、ステップＳ３で求めた応答時間が、そのしきい値を超過している場合、しきい値超過２７に「Ｙ」を、超過してなければ「Ｎ」を記録する。
【００６８】
次に、ＳＱＬ文監視プログラム８１の動作を説明する。ＳＱＬ文監視プログラム８１は、ある監視間隔でＤＢサーバ９４から監視データの取得を要求する。ＳＱＬ文監視プログラム８１は、監視設定テーブル４０のエントリ４４ｃを読み込む。したがって、監視間隔は、図５に示す監視設定テーブル４０に格納される。監視データを要求されたＤＢサーバ９４は、要求時点で動作していたＳＱＬ文に関する情報をＳＱＬ文監視プログラム８１へ返却する。ＳＱＬ文監視プログラム８１は、ＳＱＬ監視データテーブル３０に取得した情報を格納する。フローチャートの説明に先立ち、想定する運用管理者の操作例について説明する。
【００６９】
図７は、ＳＱＬ文特定プログラム８２が表示装置１５に表示する画面例を示す説明図である。運用管理者は、この画面を操作し、原因ＳＱＬ文を特定したい遅延ＨＴＴＰリクエストを指定する。ＳＱＬ文特定プログラム８２は、指定された遅延ＨＴＴＰリクエストの原因ＳＱＬ文の候補を特定し、その結果を画面に表示する。
【００７０】
図７の画面例は、上下２つのペインで構成される。上部ペインは、遅延ＨＴＴＰリクエスト一覧１００を表示する。ＳＱＬ文特定プログラム８２は、ＨＴＴＰ監視データテーブルを参照し、しきい値超過２７が「Ｙ」であるエントリを取得し、それぞれを画面上の遅延ＨＴＴＰリクエスト一覧１００のエントリ１０１（１０１ａ〜１０１ｃ）に表示する。運用管理者は、表示されたエントリ１０１から原因ＳＱＬ文を特定したいエントリを決め、チェックボックス１０２をチェックする。図７の画面例では、エントリ１０１ａについてチェックされている。
【００７１】
ＳＱＬ文特定プログラム８２は、運用管理者がチェックした遅延ＨＴＴＰリクエスト（以下、単に「調査対象」と称す）を受領し、その原因ＳＱＬ文を少数の候補に絞り込む。この絞り込み処理が、後述する図８のフローチャートに相当する。画面の下部ペインは、ＳＱＬ文特定プログラム８２が絞り込んだ、原因ＳＱＬリスト１０３を表示する。原因ＳＱＬリスト１０３の各行には、原因ＳＱＬエントリ１０４が表示される。各原因ＳＱＬエントリ１０４には、そのＳＱＬ文が原因であることの確からしさを示すレーティング１０５が含まれる。運用管理者は、レーティング１０５を参考に、遅延を引き起こした原因ＳＱＬ文を認識する。次に、ＳＱＬ文特定プログラム８２の動作を図８のフローチャートで説明する。
【００７２】
図８は、ＳＱＬ文特定プログラム８２による処理手順例を示すフローチャートである。ＳＱＬ文特定プログラム８２は、運用管理者が画面上でＨＴＴＰリクエストが指定されるのを待ち受ける（ステップＳ８０１：Ｎｏ）。図７に示したようにチェックボックスにチェックを入力することによりＨＴＴＰリクエストが指定された場合（ステップＳ８０１：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、指定された調査対象の情報を取得する（ステップＳ８０２）。以下では、調査対象の種別が「Ｈ１」であるものとする。
【００７３】
つぎに、ＳＱＬ文特定プログラム８２は、調査対象の遅延と処理ホスト別ＨＴＴＰリクエスト同時実行数との強い相関性の有無を調べる（ステップＳ８０２）。強い相関性の有無は、一般的な相関度計算の手法を用いてよい。たとえば、ＳＱＬ文特定プログラム８２は、調査対象と同種別のＨＴＴＰリクエストが過去に処理された期間の期間長と、同期間の処理ホスト別ＨＴＴＰリクエスト同時実行数と、の相関係数を計算する。調査対象と同種別のＨＴＴＰリクエストが過去に処理された期間の期間長とは、調査対象と同種別のＨＴＴＰリクエストについて終了時刻から開始時刻を減算した時間である。そして、ＳＱＬ文特定プログラム８２は、計算した相関係数がしきい値を超過する場合、強い相関性があると判定する手法でもよい。
【００７４】
このあと、ＳＱＬ文特定プログラム８２は、強い相関性があるか否かを判断する（ステップＳ８０３）。強い相関性がある場合（ステップＳ８０３：Ｙｅｓ）、ステップＳ８０４へ進み、強い相関性がない場合（ステップＳ８０３：Ｎｏ）、ステップＳ８０３へ進む。上述した「手法１：外乱ＨＴＴＰリクエストが少ない期間を選択する。」の効果が低い場合には、手法１の適用を除外するためである。
【００７５】
調査対象の遅延が、計算機システム９５のＨＴＴＰリクエスト数が多い場合（換言すれば、処理ホスト別ＨＴＴＰリクエスト同時実行数が多い場合）にのみ起きるのであれば、処理ホスト別ＨＴＴＰリクエスト同時実行数が少ない期間を選択する手法１の効果は小さいことになる。ステップＳ８０３およびステップＳ８０４はオプショナルであり、ＳＱＬ文特定プログラム８２は、必ずしも実行する必要はない。
【００７６】
強い相関性がある場合（ステップＳ８０３：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、調査対象と同種別のＨＴＴＰリクエスト（本例ではＨＴＴＰリクエスト種別識別子２４が「Ｈ１」）であり、かつ、しきい値超過２７が「Ｙ」であるＨＴＴＰリクエスト監視データテーブル２０から取得する（ステップＳ８０４）。ステップＳ８０４のあとは、ステップＳ８０７に移行する。
【００７７】
一方、強い相関性がない場合（ステップＳ８０３：Ｎｏ）、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ監視データテーブル２０を参照し、調査対象と同種別のＨＴＴＰリクエスト（本例ではＨＴＴＰリクエスト種別識別子２４が「Ｈ１」）のエントリ（以下、「同種別ＨＴＴＰリクエスト」と記す）を、処理ホスト別ＨＴＴＰリクエスト同時実行数２２が少ない順に取得する（ステップＳ８０５）。
【００７８】
たとえば、調査対象が「Ｈ１」である場合、ＳＱＬ文特定プログラム８２は、ＨＴＴＰリクエスト種別識別子が「Ｈ１」であるエントリ２８ａ、２８ｃ、２８ｅ、２８ｉ、２８ｋを取得する。取得するエントリは、たとえば、処理ホスト別ＨＴＴＰリクエスト同時実行数２２が少ない順に上位Ｘ番目までのエントリや、処理ホスト別ＨＴＴＰリクエスト同時実行数２２の値が所定数以下のエントリなどが挙げられる。
【００７９】
つぎに、ＳＱＬ文特定プログラム８２は、エントリ削除処理を実行する（ステップＳ８０６）。エントリ削除処理（ステップＳ８０６）は、上述した手法２：「外乱ＨＴＴＰリクエストの種別を不揃いにする。」にしたがい、ステップＳ８０５で取得した同種別ＨＴＴＰリクエストの集合から、外乱ＨＴＴＰリクエストの組み合わせが同一であるエントリを削除する処理である。
【００８０】
具体的には、ＳＱＬ文特定プログラム８２は、ステップＳ８０５で取得した同種別ＨＴＴＰリクエストと同一期間に処理されており、かつ、処理ホスト２３が同一であるＨＴＴＰリクエスト（外乱ＨＴＴＰリクエスト）のエントリをＨＴＴＰ監視データテーブル２０から取得する。これにより、調査対象と同種別ＨＴＴＰリクエストと、取得した外乱ＨＴＴＰリクエストとの「組」が形成される。
【００８１】
たとえば、ステップＳ８０５で取得された同種別ＨＴＴＰリクエストのエントリ２８ａを例に挙げる。エントリ２８ａの処理期間（４時０分０秒．０００〜４時０分１０秒．０００）を期間＃１とすると、期間＃１で処理されたＨＴＴＰリクエストのエントリ２８ｂを外乱ＨＴＴＰリクエストとして取得する。エントリ２８ｂのＨＴＴＰリクエスト種別識別子は「Ｈ２」である。
【００８２】
これにより、期間＃１において、（Ｈ１、Ｈ２）の組が形成される。同様に、ステップＳ８０５で取得された同種別ＨＴＴＰリクエストのエントリ２８ｅを例に挙げると、（Ｈ１、Ｈ３、Ｈ４、Ｈ５）の組が形成され、エントリ２８ｉを例に挙げると、期間＃３（１時０分０秒．０００〜１時０分５秒．０００）において（Ｈ１、Ｈ２）の組が形成される。また、エントリ２８ｋを例に挙げると、期間＃４（０時０分０秒．０００〜０時０分５秒．０００）において（Ｈ１、Ｈ６）の組が形成される。
【００８３】
ＳＱＬ文特定プログラム８２は、各組の外乱ＨＴＴＰリクエストの種別を比較し、外乱ＨＴＴＰリクエストの組み合わせが同じ組を特定する。そして、ＳＱＬ文特定プログラム８２は、同じ組が複数ある場合、１つだけ残し、それ以外の組を削除する。たとえば、上述した期間＃１の組（Ｈ１、Ｈ２）と期間＃３の組（Ｈ１、Ｈ２）は一致するため、ＳＱＬ文特定プログラム８２は、たとえば、期間＃３の組（Ｈ１、Ｈ２）を削除する。
【００８４】
なお、外乱ＨＴＴＰリクエストの種別の組み合わせの同一判定は、完全一致でもいいし、部分一致でもいい。たとえば、外乱ＨＴＴＰリクエストのうち半数が重複していれば同一と判定してもよい。たとえば、ある期間において組（Ｈ１、Ｈ２、Ｈ３）が存在する場合、期間＃１の組（Ｈ１、Ｈ２）と部分一致する。この場合、組（Ｈ１、Ｈ２、Ｈ３）は、外乱リクエストＨ２、Ｈ３のうち半数であるＨ２が重複するため、ＳＱＬ文特定プログラム８２は、組（Ｈ１、Ｈ２、Ｈ３）を削除する。
【００８５】
つぎに、ＳＱＬ文特定プログラム８２は、エントリ削除処理（ステップＳ８０６）後に残ったＨＴＴＰリクエストの各々に対して、ＳＱＬ監視データテーブル３０から対となるＳＱＬエントリを取得する（ステップＳ８０７）。すなわち、ＳＱＬ文特定プログラム８２は、エントリ削除処理（ステップＳ８０６）後に残ったＨＴＴＰリクエストのエントリと同じ期間に処理されており、かつ、同ＨＴＴＰリクエストの処理ホスト２３が、ＳＱＬ監視データテーブル３０の要求元ホスト３４と同一なＳＱＬエントリ３９を取得する。なお、ステップＳ８０４が実行された場合は、ＳＱＬ文特定プログラム８２は、ステップＳ８０４で取得したＨＴＴＰリクエストの各々に対して、ＳＱＬ監視データテーブル３０から対となるＳＱＬエントリを取得することになる（ステップＳ８０７）。
【００８６】
そして、ＳＱＬ文特定プログラム８２は、ＳＱＬ監視データテーブル３０のトランザクションＩＤ３５を用いて、ステップＳ８０７で求めたＳＱＬエントリをフィルタリングする（ステップＳ８０８）。すなわち、ＳＱＬ文特定プログラム８２は、ステップＳ８０７で取得した各ＳＱＬエントリのトランザクションＩＤ３５を求め、同トランザクションＩＤを持つ他のエントリがＳＱＬ監視データテーブル３０に存在するか調べる。もし、そのようなエントリが存在する場合、そのトランザクションＩＤ３５を持つトランザクションは、同種別ＨＴＴＰリクエストの処理開始前から処理されていたこととなる。したがって、同トランザクションＩＤ３５を持つＳＱＬエントリ３９は除外してよい。なお、本ステップＳ８０８はオプショナルであり、必須のステップではない。
【００８７】
このあと、ＳＱＬ文特定プログラム８２は、処理時間が一定時間未満のＳＱＬ文を削除し、ステップＳ８１０以降の相関性計算の対象から外す（ステップＳ８０９）。たとえば、ＳＱＬ文特定プログラム８２は、処理時間が一定時間未満のＳＱＬエントリ３９を除外してもよいし、監視設定テーブル４０を参照してＳＱＬ文を監視する監視間隔未満のＳＱＬエントリを除外してもよい。また、ステップＳ８０２で運用管理者から指定された調査対象と同期間に処理されていたＳＱＬエントリ３９以外のＳＱＬエントリを除外してもよい。
【００８８】
ＳＱＬ文特定プログラム８２は、ＨＴＴＰリクエストとＳＱＬ文との相関値を計算する（ステップＳ８１０）。たとえば、図１に示した相関性の確率の計算方法のように、ＨＴＴＰリクエストとＳＱＬ文との共相関確率を計算する。計算手順は、一般的な相関確率計算の手法にしたがう。
【００８９】
そして、ＳＱＬ文特定プログラム８２は、ＨＴＴＰリクエストとＳＱＬ文との相関値の大きいＳＱＬ文を遅延原因候補として、図７の原因ＳＱＬリスト１０３に表示する。このとき、運用管理者の理解を助ける指標として、相関値の大きなＳＱＬ文に高いレーティング１０５を付与する。レーティング１０５の計算方法はどのような方法でもよい。たとえば、０から１までの値域を持つ相関値を０．２ずつに区分けし、値が小さい方から順に５段階のレーティングをつける方法でもよい。運用管理者は、高いレーティング１０５を付与されたＳＱＬ文が、ＨＴＴＰリクエスト遅延の原因可能性が高いことを即座に認識することができる。これにより、運用管理者は、遅延したＨＴＴＰリクエストの原因ＳＱＬ文の候補を効率的に絞り込むことができる。
【００９０】
図９は、図８に示したエントリ削除処理（ステップＳ８０６）の詳細な処理手順例を示すフローチャートである。ＳＱＬ文特定プログラム８２は、ステップＳ８０５で得られたエントリ群のうち、未選択のエントリがあるか否かを判断する（ステップＳ９０１）。未選択のエントリがある場合（ステップＳ９０１：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、未選択のエントリを１つ選択する（ステップＳ９０２）。そして、ＳＱＬ文特定プログラム８２は、選択エントリの処理期間内に処理された外乱ＨＴＴＰリクエストのエントリを取得して（ステップＳ９０３）、上述した（Ｈ１、Ｈ２）のような組を生成する（ステップＳ９０４）。そして、ステップＳ９０１に戻る。
【００９１】
ステップＳ９０１において、未選択のエントリがない場合（ステップＳ９０１：Ｎｏ）、ＳＱＬ文特定プログラム８２は、ステップＳ９０４で生成された組のうち未選択の組があるか否かを判断する（ステップＳ９０５）。未選択の組がある場合（ステップＳ９０５：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、外乱ＨＴＴＰリクエストの数が最小の組を選択する（ステップＳ９０６）。
【００９２】
そして、ＳＱＬ文特定プログラム８２は、選択した組に一致する組があるか否かを判断し（ステップＳ９０７）、ある場合（ステップＳ９０７：Ｙｅｓ）、一致する組を削除して（ステップＳ９０８）、ステップＳ９０４に戻る。一致する組がない場合（ステップＳ９０７：Ｎｏ）、ステップＳ９０５に戻る。ステップＳ９０５において、未選択の組がない場合（ステップＳ９０５：Ｎｏ）、ＳＱＬ文特定プログラム８２は、エントリ削除処理（ステップＳ８０６）を終了して、ステップＳ８０７に移行する。
【００９３】
このように、実施例１によれば、外乱ＨＴＴＰリクエストが少ない期間を選択することにより、障害原因の特定に用いられるＨＴＴＰリクエストの数を抑制することができる。これにより、計算量の削減を図ることができる。
【００９４】
また、外乱ＨＴＴＰリクエストの種別を不揃いにすることにより、障害原因の特定に用いられるＨＴＴＰリクエストの数を抑制することができる。これにより、計算量の削減を図ることができる。また、外乱ＨＴＴＰリクエストの種別を不揃いにすることにより、正しくない相関性の強化が抑制され、処理性能に遅延を示したＨＴＴＰリクエストの原因候補となるＳＱＬ文の絞り込み精度の向上を図ることができる。
【００９５】
（実施例２）
つぎに、実施例２について説明する。実施例１では、運用管理者からのＳＱＬ文特定の要求を受けてからＳＱＬ文特定プログラム８２がＳＱＬ文の特定処理を実行した。つまり、オンデマンドでＳＱＬ文特定処理を行った。一方、実施例２では、ＳＱＬ文特定プログラム８２が、ＳＱＬ文特定処理をバックグラウンドで予め実行する。ＳＱＬ文特定プログラム８２は、定期的に起動される。ＳＱＬ文特定プログラム８２は、前回起動時以降に追加されたＨＴＴＰリクエスト（以下、「追加ＨＴＴＰリクエスト」）を対象にＳＱＬ文特定処理を実行する。
【００９６】
すなわち、ＳＱＬ文特定プログラム８２は、前回との差分のみ処理する。これにより、運用管理者がＳＱＬ文特定処理を要求することにより、即座に原因候補となるＳＱＬ文を出力することができる。なお、実施例２の説明において、実施例１と同一構成、同一処理については同一符号を付し、その説明を省略する。
【００９７】
＜ネットワークシステム１のシステム構成＞
図１０は、実施例２にかかるネットワークシステム１のシステム構成図である。実施例１との差分は、メモリ１２に、計算済みＨＴＴＰ組み合わせテーブル５０とＨＴＴＰ−ＳＱＬ集計テーブル６０が追加されている点と、ＳＱＬ文特定プログラム８２の動作フローの内容である。
【００９８】
そして、ＳＱＬ文特定プログラム８２は、ＨＴＴＰリクエストとＳＱＬ文との相関性を計算して、ＨＴＴＰ−ＳＱＬ集計テーブル６０を更新する。このとき、ＳＱＬ文特定プログラム８２は、相関計算に用いた期間に平行処理されていた外乱ＨＴＴＰリクエストの組み合わせを計算済みＨＴＴＰ組み合わせテーブル５０に記録する。ＳＱＬ文特定プログラム８２は、相関計算を行う前に計算済みＨＴＴＰ組み合わせテーブル５０の記録を参照して、手法２により、外乱ＨＴＴＰリクエストの同一組み合わせを削除する。
【００９９】
＜各テーブルの記憶内容例＞
図１１は、実施例２にかかるネットワークシステム１で利用するテーブルの記憶内容例を示す説明図である。図１１において、（Ａ）は、計算済みＨＴＴＰ組み合わせテーブル５０の記憶内容例を示す。計算済みＨＴＴＰ組み合わせテーブル５０は、調査対象であるＨＴＴＰリクエスト種別識別子５１ごとに、外乱ＨＴＴＰリクエストの識別子とその種別、および、ＨＴＴＰリクエスト同時実行数を記録する。たとえば、計算済みＨＴＴＰ組み合わせテーブル５０にエントリがない状態で、ＳＱＬ文との対応関係を求めたいＨＴＴＰリクエストの種別が「Ｈ１」であり、「Ｈ１」のＨＴＴＰリクエストが一つ計測されたとする。
【０１００】
このとき、計算済みＨＴＴＰ組み合わせテーブル５０には、５５ａのエントリが作成される。すなわち、対応関係を求めたいＨＴＴＰリクエストの種別を示すＨＴＴＰリクエスト種別識別子５１が「Ｈ１」であり、処理ホスト別ＨＴＴＰリクエスト同時実行数５３が「１」、同期間に処理されていたＨＴＴＰリクエスト、すなわち、外乱ＨＴＴＰリクエストがないため、外乱ＨＴＴＰリクエスト種別には「（ｎｕｌｌ）」が記録される。なお、ＨＴＴＰリクエスト識別子５２は、「Ｈ１」のＨＴＴＰリクエストの一意識別子であり、ＨＴＴＰ監視データテーブル２０のＨＴＴＰリクエスト識別子２１と同じデータである。
【０１０１】
次に、ＳＱＬ文との対応関係を求めたいＨＴＴＰリクエスト（リクエストの識別子は「１００」）の種別が「Ｈ１」で、「Ｈ１」と同期間に「Ｈ２」の種別を持つＨＴＴＰリクエストが一つ計測されたとする。このとき、計算済みＨＴＴＰ組み合わせテーブル５０には、５５ｂのエントリが作成される。すなわち、ＨＴＴＰリクエスト種別識別子５１が「Ｈ１」、ＨＴＴＰリクエスト識別子５２が「１００」、処理ホスト別ＨＴＴＰリクエスト同時実行数５３が「２」、外乱ＨＴＴＰリクエスト種別５４が「Ｈ２」であるエントリが作成される。
【０１０２】
図１１において、（Ｂ）は、ＨＴＴＰ−ＳＱＬ集計テーブル６０の記憶内容例を示す。ＨＴＴＰ−ＳＱＬ集計テーブル６０は、ＨＴＴＰリクエスト種別識別子６１ごとに、ＨＴＴＰリクエスト処理期間内に計測されたＳＱＬ文の種類（ＳＱＬ識別子６２）の出現回数６３を格納する。たとえば、ＨＴＴＰリクエスト種別識別子が「Ｈ１」であるＨＴＴＰリクエストの処理期間中に、ＳＱＬ識別子が「Ｓ１」であるＳＱＬ文が３０回計測された場合、ＨＴＴＰ−ＳＱＬ集計テーブル６０に６４ａのエントリが作成される。同様に、「Ｓ２」が３回、「Ｓ３」が６回計測された場合、それぞれ６４ｂ、６４ｃのエントリがＨＴＴＰ−ＳＱＬ集計テーブル６０に作成される。
【０１０３】
＜ＳＱＬ文特定処理＞
図１２は、実施例２にかかるＳＱＬ文特定プログラム８２によるＳＱＬ文特定処理の詳細な処理手順例を示すフローチャートである。ＳＱＬ文特定プログラム８２は定期的に起動され、起動されると、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ監視データテーブルを参照して、未選択の追加ＨＴＴＰリクエストがあるか否かを判断する（ステップＳ１２０１）。
【０１０４】
未選択の追加ＨＴＴＰリクエストがある場合（ステップＳ１２０１：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、未選択の追加ＨＴＴＰリクエストを１つ選択し（ステップＳ１２０２）、選択した追加ＨＴＴＰリクエストのエントリを、ＨＴＴＰ監視データテーブルから取得する（ステップＳ１２０３）。たとえば、選択追加ＨＴＴＰリクエストのＨＴＴＰリクエスト種別識別子２４が「Ｈ１」である場合、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ監視データテーブルにおいてＨＴＴＰリクエスト種別識別子２４が「Ｈ１」であるＨＴＴＰリクエストを選択し、当該選択したＨＴＴＰリクエストのエントリ５５ａ、５５ｂ、５５ｃ、５５ｄ、５５ｅ，…を取得する。
【０１０５】
そして、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ−ＳＱＬ集計テーブル更新処理を実行する（ステップＳ１２０４）。ＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）は、選択追加ＨＴＴＰリクエストについて、上述した手法１および手法２に応じた処理をバックグラウンドで実行する処理であり、図１３において詳細を後述する。ＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）のあと、ステップＳ１２０１に戻る。
【０１０６】
そして、未選択の追加ＨＴＴＰリクエストがない場合（ステップＳ１２０１：Ｎｏ）、ＳＱＬ文特定プログラム８２は、処理を終了する。これにより、追加ＨＴＴＰリクエストごとに、バックグラウンドでＳＱＬ文特定処理を実行することができる。
【０１０７】
図１３は、図１２に示したＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）の詳細な処理手順例を示すフローチャート（前半）である。図１３において、まず、ＳＱＬ文特定プログラム８２は、計算済みＨＴＴＰ組み合わせテーブル５０から、選択追加ＨＴＴＰリクエストとＨＴＴＰリクエスト種別識別子５１が同種別であるエントリの数（エントリ数）を計数する（ステップＳ１３０１）。
【０１０８】
たとえば、選択追加ＨＴＴＰリクエストのＨＴＴＰリクエスト種別識別子５１が「Ｈ１」である場合、ＳＱＬ文特定プログラム８２は、計算済みＨＴＴＰ組み合わせテーブル５０５０においてＨＴＴＰリクエスト種別識別子５１が「Ｈ１」であるエントリ５５ａ、５５ｂ、５５ｃ、５５ｄ、５５ｅ，…のエントリ数を計数する。このエントリ数が、選択追加ＨＴＴＰリクエストの処理ホスト別ＨＴＴＰリクエスト同時実行数となる。
【０１０９】
つぎに、ＳＱＬ文特定プログラム８２は、計数したエントリ数である処理ホスト別ＨＴＴＰリクエスト同時実行数がしきい値以上であるか否かを判断する。しきい値以上である場合（ステップＳ１３０２：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、ステップＳ１３０３〜Ｓ１３０８を実行し、しきい値未満の場合（ステップＳ１３０２：Ｎｏ）、ステップＳ１３０９に移行する。
【０１１０】
ステップＳ１３０１およびＳ１３０２は、選択追加ＨＴＴＰリクエストの関係性計算に十分なデータが既に記録されているか判定する処理である。しきい値以上ある場合（ステップＳ１３０２：Ｙｅｓ）、今回得られた選択追加ＨＴＴＰリクエストが、既存のＨＴＴＰリクエストより有用か否かを判定する処理を実行することになる（ステップＳ１３０３〜Ｓ１３０８）。ステップＳ１３０１およびＳ１３０２は、オプションであり、省略してもよい。
【０１１１】
ステップＳ１３０３〜Ｓ１３０８について説明する。しきい値以上ある場合（ステップＳ１３０２：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、選択追加ＨＴＴＰリクエストの処理ホスト別ＨＴＴＰリクエスト同時実行数２２を、ＨＴＴＰ監視データテーブル２０から取得する（ステップＳ１３０３）。取得した選択追加ＨＴＴＰリクエストの処理ホスト別ＨＴＴＰリクエスト同時実行数２２を「Ｎ」とする。たとえば、選択追加ＨＴＴＰリクエストが図３のエントリ２８ｅの場合、Ｎ＝４である。
【０１１２】
つぎに、ＳＱＬ文特定プログラム８２は、計算済みＨＴＴＰ組み合わせテーブル５０を参照して、選択追加ＨＴＴＰリクエストと同種別のＨＴＴＰリクエストの各々について、処理ホスト別ＨＴＴＰリクエスト同時実行数５３を取得し、その中から最大実行数Ｍを特定する（ステップＳ１３０４）。
【０１１３】
たとえば、選択追加ＨＴＴＰリクエストが図３のエントリ２８ｅの場合、ＨＴＴＰリクエスト種別識別子２４は「Ｈ１」である。したがって、ＳＱＬ文特定プログラム８２は、ＨＴＴＰリクエスト種別識別子５１が「Ｈ１」であるエントリ５５ａ、５５ｂ、５５ｃ、５５ｄ、５５ｅ，…の処理ホスト別ＨＴＴＰリクエスト同時実行数５３を計算済みＨＴＴＰ組み合わせテーブル５０から取得する。そして、ＳＱＬ文特定プログラム８２は、その中で最大実行数Ｍを特定する。図１１の計算済みＨＴＴＰ組み合わせテーブル５０の場合、Ｍ＝３となる。
【０１１４】
このあと、ＳＱＬ文特定プログラム８２は、選択追加ＨＴＴＰリクエストの処理ホスト別ＨＴＴＰリクエスト同時実行数Ｎが、最大実行数Ｍより大きいか否かを判断する（ステップＳ１３０５）。大きい場合（ステップＳ１３０５：Ｙｅｓ）、ステップＳ１３０６に移行する。上記の例では、Ｎ＝４、Ｍ＝３であるため、ステップＳ１３０６に移行する。
【０１１５】
一方、選択追加ＨＴＴＰリクエストの処理ホスト別ＨＴＴＰリクエスト同時実行数Ｎが、最大実行数Ｍ以下である場合（ステップＳ１３０５：Ｎｏ）、選択追加ＨＴＴＰリクエストについてのＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）を終了して、図１２のステップＳ１２０１に戻る。すなわち、過去の処理ホスト別ＨＴＴＰリクエスト同時実行数以下の場合が除外される。これにより、未選択の追加ＨＴＴＰリクエストが選択され、ＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）が実行される。
【０１１６】
ステップＳ１３０６では、ＳＱＬ文特定プログラム８２は、選択追加ＨＴＴＰリクエストと並列実行されていた外乱ＨＴＴＰリクエストを、ＨＴＴＰ監視データテーブル２０から取得する（ステップＳ１３０６）。具体的には、たとえば、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ監視データテーブル２０から、選択追加ＨＴＴＰリクエストの処理期間（開始時刻２５から終了時刻２６までの期間）に処理されたＨＴＴＰリクエストのエントリ（外乱ＨＴＴＰリクエスト）を取得する。
【０１１７】
図３のエントリ２８ｅの場合、処理期間は開始時刻：２時０分０秒．０００から終了時刻：２時０分５秒．０００までの間の期間となる。この場合、ＳＱＬ文特定プログラム８２は、エントリ２８ｅの処理期間と同一処理期間であるエントリ２８ｆ、２８ｇ、２８ｈである外乱ＨＴＴＰリクエストＨ３〜Ｈ５を取得する。なお、外乱ＨＴＴＰリクエストの処理期間は、選択追加ＨＴＴＰリクエストの処理期間に包含される場合のほか、一部が重複する場合や、外乱ＨＴＴＰリクエストの処理期間が、選択追加ＨＴＴＰリクエストの処理期間を包含する場合も含んでもよい。
【０１１８】
つぎに、ＳＱＬ文特定プログラム８２は、選択追加ＨＴＴＰリクエストの外乱ＨＴＴＰリクエストを、計算済みＨＴＴＰ組み合わせテーブル５０から取得する（ステップＳ１３０７）。たとえば、選択追加ＨＴＴＰリクエストのＨＴＴＰリクエスト種別識別子２４が「Ｈ１」である場合、ＳＱＬ文特定プログラム８２は、計算済みＨＴＴＰ組み合わせテーブル５０から同一種別「Ｈ１」のエントリ５５ａ〜５５ｅを特定する。そして、ＳＱＬ文特定プログラム８２は、エントリ５５ａ〜５５ｅの外乱ＨＴＴＰリクエスト種別５４に記録されているＨ２、Ｈ３、Ｈ４、Ｈ５、Ｈ６、Ｈ７を取得する。
【０１１９】
そして、ＳＱＬ文特定プログラム８２は、「手法２：外乱ＨＴＴＰリクエストの種別を不揃いにする。」に従い、ステップＳ１３０６で取得した外乱ＨＴＴＰリクエストとステップＳ１３０７で取得した外乱ＨＴＴＰリクエストとが重複するか否かを判断する（ステップＳ１３０７）。具体的には、ＳＱＬ文特定プログラム８２は、外乱ＨＴＴＰリクエストのＨＴＴＰリクエスト種別識別子２４と、外乱ＨＴＴＰリクエスト種別５４の重複有無を判断する。
【０１２０】
選択追加ＨＴＴＰリクエストが図３のエントリ２８ｅの場合、ステップＳ１３０６で取得した外乱ＨＴＴＰリクエストはＨ３〜Ｈ５であり、ステップＳ１３０７で取得した外乱ＨＴＴＰリクエストはＨ２〜Ｈ７である。したがって、外乱ＨＴＴＰリクエストＨ３〜Ｈ５が重複することになる。なお、ステップＳ１３０７の重複は、完全一致でもいいし、部分一致でもいい。たとえば、外乱ＨＴＴＰリクエストのうち半数が一致していれば重複と判定してもよい。
【０１２１】
重複する場合（ステップＳ１３０８：Ｙｅｓ）、選択追加ＨＴＴＰリクエストについてのＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）を終了して、図１２のステップＳ１２０１に戻る。これにより、未選択の追加ＨＴＴＰリクエストが選択され、ＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）が実行される。
【０１２２】
一方、重複しない場合（ステップＳ１３０５：Ｎｏ）、ステップＳ１３０９に移行する。これにより、重複していない新規追加の外乱ＨＴＴＰリクエストに対して選択追加ＨＴＴＰリクエストを評価することができる。
【０１２３】
このあと、ＳＱＬ文特定プログラム８２は、計算済みＨＴＴＰ組み合わせテーブル５０に、ＨＴＴＰリクエストのエントリを追加する（ステップＳ１３０９）。具体的には、たとえば、ステップＳ１３０８：Ｎｏが実行された場合、ＳＱＬ文特定プログラム８２は、選択追加ＨＴＴＰリクエストと、ステップＳ１３０６で取得された外乱ＨＴＴＰリクエストと、のエントリを追加する。これにより、新規な外乱ＨＴＴＰリクエストが計算済みＨＴＴＰ組み合わせテーブル５０に登録される。
【０１２４】
また、ステップＳ１３０２：Ｎｏの場合には、ＳＱＬ文特定プログラム８２は、選択追加ＨＴＴＰリクエストのエントリを追加する。この場合、当該エントリの外乱ＨＴＴＰリクエスト種別５４は（ｎｕｌｌ）となる。
【０１２５】
そして、ＳＱＬ文特定プログラム８２は、第１の更新処理を実行する（ステップＳ１３０９）。第１の更新処理（ステップＳ１３１０）では、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ−ＳＱＬ集計テーブル６０に対しエントリを追加する更新を実行する。具体的には、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ−ＳＱＬ集計テーブル６０に対し、選択追加ＨＴＴＰリクエストと、その処理期間内に処理されたＳＱＬ文と、当該ＳＱＬ文の出現回数と、を有するエントリを新規追加する。追加済みの場合、ＳＱＬ文特定プログラム８２は、出現回数を更新する。第１の更新処理（ステップＳ１３１０）の詳細については、図１５で後述する。第１の更新処理（ステップＳ１３１０）のあと、図１４のステップＳ１４０１に移行する。
【０１２６】
図１４は、図１２に示したＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）の詳細な処理手順例を示すフローチャート（後半）である。図１３の第１の更新処理（ステップＳ１３０９）のあと、図１４において、ＳＱＬ文特定プログラム８２は、図１３のステップＳ１３０１と同様、再度、計算済みＨＴＴＰ組み合わせテーブル５０から、選択追加ＨＴＴＰリクエストと同種別のエントリ数である処理ホスト別ＨＴＴＰリクエスト同時実行数を計数する（ステップＳ１４０１）。ステップＳ１３０９によりエントリが追加されているため、ステップＳ１３０１よりも最新の処理ホスト別ＨＴＴＰリクエスト同時実行数が得られる。
【０１２７】
そして、ＳＱＬ文特定プログラム８２は、計数したエントリ数である処理ホスト別ＨＴＴＰリクエスト同時実行数がしきい値以上であるか否かを判断する（ステップＳ１４０２）。このしきい値は、ステップＳ１３０２と同一しきい値である。ステップＳ１４０２の処理は、ステップＳ１３０９で、計算済みＨＴＴＰ組み合わせテーブル５０にエントリが追加されたことで、十分なエントリ数（処理ホスト別ＨＴＴＰリクエスト同時実行数）が得られたか否かを判定する処理である。十分なエントリ数が得られた場合、すなわち、処理ホスト別ＨＴＴＰリクエスト同時実行数がしきい値以上である場合（ステップＳ１４０２：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、ステップＳ１４０３およびＳ１４０４を実行することにより、余分なエントリを削除する。
【０１２８】
一方、しきい値未満である場合（ステップＳ１４０２：Ｎｏ）、選択追加ＨＴＴＰリクエストについてのＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）を終了して、図１２のステップＳ１２０１に戻る。これにより、未選択の追加ＨＴＴＰリクエストが選択され、ＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）が実行される。
【０１２９】
ステップＳ１４０３において、ＳＱＬ文特定プログラム８２は、「手法１：外乱ＨＴＴＰリクエストが少ない期間を選択する。」に従い、計算済みＨＴＴＰ組み合わせテーブル５０から削除条件に該当するエントリを削除する（ステップＳ１４０３）。たとえば、選択追加ＨＴＴＰリクエストが図３のエントリ２８ｅの場合、ＨＴＴＰリクエスト種別識別子２４が「Ｈ１」であるため、計算済みＨＴＴＰ組み合わせテーブル５０において、ＨＴＴＰ種別識別子５１が「Ｈ１」であるＨＴＴＰリクエストのエントリ５５ａ〜５５ｅのうち、削除条件に該当するエントリを削除する。
【０１３０】
ここで、削除条件とは、たとえば、処理ホスト別ＨＴＴＰリクエスト同時実行数５３がしきい値以上である。これにより、ＨＴＴＰリクエストを使用する数を抑制することができ、計算負荷の低減を図ることができる。また、当該しきい値以上であり、かつ、処理の開始時刻（終了時刻でもよい）が現在時刻から所定時間前の時点以前の時刻としてもよい。これにより、より古いＨＴＴＰリクエストを対象外とすることができ、障害原因の特定精度の向上を図ることができる。
【０１３１】
なお、削除条件としては上述したような古いエントリではなく、処理期間がしきい値以下であることを削除条件にしてもよい。処理時間が長ければ、より多くのＳＱＬ文との関係性を得られる可能性が高いからである。
【０１３２】
このあと、ＳＱＬ文特定プログラム８２は、第２の更新処理を実行する（ステップＳ１４０４）。第２の更新処理（ステップＳ１４０４）では、ＳＱＬ文特定プログラム８２は、ステップＳ１４０３で削除したエントリによる加算分をＨＴＴＰ−ＳＱＬ集計テーブル６０から削除する更新を実行する。第２の更新処理（ステップＳ１４０４）の詳細については、図１６で後述する。
【０１３３】
第２の更新処理（ステップＳ１４０４）のあと、選択追加ＨＴＴＰリクエストについてのＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）を終了して、図１２のステップＳ１２０１に戻る。これにより、未選択の追加ＨＴＴＰリクエストが選択され、ＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）が実行される。
【０１３４】
図１５は、図１３に示した第１の更新処理（ステップＳ１３１０）の詳細な処理手順例を示すフローチャートである。まず、ＳＱＬ文特定プログラム８２は、選択追加ＨＴＴＰリクエストの処理期間中に実行されていたＳＱＬ文のエントリを、ＳＱＬ監視データテーブルから取得する（ステップＳ１５０１）。
【０１３５】
具体的には、たとえば、選択追加ＨＴＴＰリクエストが図３のエントリ２８ｅの場合、エントリ２８ｅの処理期間（２時０分０秒．０００〜２時０分５秒．０００）に実行されていたＳＱＬ文エントリ３９ｅ〜３９ｈをＳＱＬ監視データテーブル３０から取得する。なお、ＳＱＬ文の処理期間は、選択追加ＨＴＴＰリクエストの処理期間に包含される場合のほか、一部が重複する場合や、ＳＱＬ文の処理期間が、選択追加ＨＴＴＰリクエストの処理期間を包含する場合も含んでもよい。
【０１３６】
つぎに、ＳＱＬ文特定プログラム８２は、ステップＳ１５０１で取得したエントリ群のうち未選択エントリのＳＱＬ識別子３１があるか否かを判断する（ステップＳ１５０２）。未選択エントリのＳＱＬ識別子３１がある場合（ステップＳ１５０２：Ｙｅｓ）、ＳＱＬ文特定プログラム８２は、未選択エントリのＳＱＬ識別子３１を選択する（ステップＳ１５０３）。
【０１３７】
そして、ＳＱＬ文特定プログラム８２は、ステップＳ１５０１で取得したエントリ群を選択エントリのＳＱＬ識別子（以下、選択ＳＱＬ識別子）３１ごとに計数することにより、選択ＳＱＬ識別子３１を有するエントリの数を算出する（ステップＳ１５０４）。ステップＳ１５０４で算出したエントリの数を「ＳＱＬ出現数」と称す。
【０１３８】
そして、ＳＱＬ文特定プログラム８２は、選択ＳＱＬ識別子３１について、ＨＴＴＰ−ＳＱＬ集計テーブル６０から、ＨＴＴＰリクエスト種別識別子６１が選択追加ＨＴＴＰリクエストのＨＴＴＰリクエスト種別識別子であり、ＳＱＬ識別子６２が選択ＳＱＬ識別子３１と一致するエントリを特定する（ステップＳ１５０５）。
【０１３９】
たとえば、選択追加ＨＴＴＰリクエストのＨＴＴＰリクエスト種別識別子が「Ｈ１」であり、選択ＳＱＬ識別子が「Ｓ１」である場合、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ−ＳＱＬ集計テーブル６０から、エントリ６４ａを特定する。なお、選択ＳＱＬ識別子３１と一致するエントリがない場合には、ＳＱＬ文特定プログラム８２は、ＨＴＴＰ−ＳＱＬ集計テーブル６０に新たにエントリを作成する。
【０１４０】
このあと、ＳＱＬ文特定プログラム８２は、ステップＳ１５０５で特定したエントリの出現回数６３に、ステップＳ１５０４で算出したＳＱＬ文出現数を加算して保存する（ステップＳ１５０６）。そして、ステップＳ１５０２に戻る。ステップＳ１５０２において、未選択のＳＱＬ文のエントリがない場合（ステップＳ１５０２：Ｎｏ）ＳＱＬ文特定プログラム８２は、第１の更新処理（ステップＳ１３１０）を終了し、図１４のステップＳ１４０１に移行する。これにより、選択追加ＨＴＴＰリクエストの処理期間内に処理されたＳＱＬ文の出現回数（ＳＱＬ出現数）が逐次更新されることになる。
【０１４１】
図１６は、図１４に示した第２の更新処理（ステップＳ１４０４）の詳細な処理手順例を示すフローチャートである。第２の更新処理（ステップＳ１４０４）は、ステップＳ１４０で削除したエントリによる加算分をＨＴＴＰ−ＳＱＬ集計テーブル６０から削除する処理である。第１の更新処理（ステップＳ１３１０）がＨＴＴＰ−ＳＱＬ集計テーブル６０に対しＳＱＬ文出現回数を加算したのに対し、第２の更新処理（ステップＳ１４０４）は、逆に減算する処理である。したがって、ステップＳ１６０１〜Ｓ１６０５は、図１５のステップＳ１５０１〜Ｓ１５０５と同一処理であるため、説明を省略する。
【０１４２】
ステップＳ１６０６において、ＳＱＬ文特定プログラム８２は、ステップＳ１６０５で特定したエントリの出現回数６３から、ステップＳ１６０４で算出したＳＱＬ文出現数を減算して保存する（ステップＳ１６０６）。そして、ステップＳ１６０２に戻る。ステップＳ１６０２において、未選択エントリがない場合（ステップＳ１６０２：Ｎｏ）ＳＱＬ文特定プログラム８２は、第２の更新処理（ステップＳ１４０４）を終了し、図１２のステップＳ１２０１に戻る。これにより、未選択の追加ＨＴＴＰリクエストが選択され、ＨＴＴＰ−ＳＱＬ集計テーブル更新処理（ステップＳ１２０４）が実行される。
【０１４３】
このように、実施例２によれば、ＨＴＴＰリクエストとＳＱＬ文との対応関係を予め求めておくことで、遅延ＨＴＴＰリクエスト発生時に短時間で原因ＳＱＬ文の候補を特定することができる。したがって、バックグラウンドで外乱ＨＴＴＰリクエストが少ない期間を選択することができ、計算量の削減を図ることができる。また、ステップＳ１３０８に示したように、追加ＨＴＴＰリクエストごとに、バックグラウンドで外乱ＨＴＴＰリクエストの種別を不揃いにすることにより、正しくない相関性の強化が抑制され、処理性能に遅延を示したＨＴＴＰリクエストの原因候補となるＳＱＬ文の絞り込み精度の向上を図ることができる。
【０１４４】
なお、運用管理者が原因ＳＱＬ文の候補を確認したい場合は、図１１のＨＴＴＰ−ＳＱＬ集計テーブルを読み出して画面に表示することにより、その時点で最新の状態を確認することができる。
【０１４５】
また、実施例２では、図１４のステップＳ１４０３において、「手法１：外乱ＨＴＴＰリクエストが少ない期間を選択する。」を適用したが、ＳＱＬ文特定プログラム８２の起動前に手法１を適用してもよい。
【０１４６】
たとえば、ＨＴＴＰ監視プログラム８０が、ＨＴＴＰリクエストとＳＱＬ文との対応関係を特定しやすい期間、すなわち上述した手法１で述べたＨＴＴＰリクエストの処理ホスト別ＨＴＴＰリクエスト同時実行数が所定数以下である期間を検知するごとに、ＳＱＬ文特定プログラム８２を起動する。
【０１４７】
図１７は、実施例２にかかるＨＴＴＰ監視プログラム８０によるＳＱＬ文特定プログラム８２の起動処理の詳細な処理手順例を示すフローチャートである。まず、ＨＴＴＰ監視プログラム８０は、未選択の追加ＨＴＴＰリクエストがあるか否かを判断する（ステップＳ１７０１）。ステップＳ１７０１は、たとえば、上述したＳＱＬ文特定プログラムの起動周期よりも短い周期で判断される。
【０１４８】
未選択の追加ＨＴＴＰリクエストがある場合（ステップＳ１７０１：Ｙｅｓ）、ＨＴＴＰ監視プログラム８０は、ＨＴＴＰ監視データテーブルから未選択の追加ＨＴＴＰリクエストを１つ選択する（ステップＳ１７０２）。つぎに、ＨＴＴＰ監視プログラム８０は、選択追加ＨＴＴＰリクエストの処理ホスト別ＨＴＴＰリクエスト同時実行数をＨＴＴＰ監視データテーブルから取得する（ステップＳ１７０３）。そして、ＨＴＴＰ監視プログラム８０は、ステップＳ１７０３で取得した処理ホスト別ＨＴＴＰリクエスト同時実行数がしきい値以下であるか否かを判断する（ステップＳ１７０４）。
【０１４９】
しきい値以下である場合（ステップＳ１７０５：Ｙｅｓ）、手法１：外乱ＨＴＴＰリクエストが少ない期間を選択する。」を遵守するため、ＨＴＴＰ監視プログラム８０は、ＳＱＬ文特定プログラム８２を起動する（ステップＳ１７０５）。この場合、ステップＳ１７０２の選択追加ＨＴＴＰリクエストについて、図１２のステップＳ１２０３、１２０４が実行される。
【０１５０】
一方、ステップＳ１７０５において、ステップＳ１７０３で取得した処理ホスト別ＨＴＴＰリクエスト同時実行数がしきい値以下でない場合（ステップＳ１７０５：Ｎｏ）、ステップＳ１７０１に戻る。そして、未選択のＨＴＴＰリクエストがない場合（ステップＳ１７０１：Ｎｏ）、ＳＱＬ文特定プログラム８２の起動処理を終了する。
【０１５１】
このように、ＳＱＬ文特定プログラム８２の起動処理によれば、ＳＱＬ文特定プログラム８２の起動前に手法１を適用することができるため、ＳＱＬ文特定プログラム８２における処理性能に遅延を示したＨＴＴＰリクエストの原因候補となるＳＱＬ文の絞り込み処理の効率化を図ることができる。
【０１５２】
また、処理ホスト別ＨＴＴＰリクエスト同時実行数がしきい値以下の場合にＳＱＬ文特定プログラム８２が起動するため、定期的に起動する場合と比較して、必要な場合にのみＳＱＬ文特定プログラム８２を起動することができる。したがって、無断なＳＱＬ特定処理を低減することができ、監視計算機の計算負荷の低減を図ることができる。
【０１５３】
（実施例３）
つぎに、実施例３について説明する。実施例１および実施例２では、所与の監視データから、ＨＴＴＰリクエストとＳＱＬ文との関係性を求めやすい期間を選択した。実施例３では、逆に、その関係性を求めやすい監視データを作り出す例である。
【０１５４】
実施例１および実施例２におけるＳＱＬ文監視プログラム８１は、ＤＢサーバ９４へのＳＱＬ文の一部しか計測できない。ＳＱＬ文監視プログラム８１が、全ＳＱＬ文を計測すると、計測によるＤＢサーバ９４への負荷が無視できないためである。このため、実施例１および２のＳＱＬ文監視プログラム８１は、計測によるＤＢサーバ９４へ過大な負荷を与えないように、一定の監視間隔でＤＢサーバ９４を計測する。計測時点で処理中のＳＱＬ文に限定して処理時間を計測するため、ＤＢサーバ９４へ与える負荷は小さいが、計測されるＳＱＬ文が一部に限定される。
【０１５５】
一方、実施例３では、ＳＱＬ文監視プログラム８１がＤＢサーバ９４を監視する方法を動的に変更する。上述したように、ＨＴＴＰリクエストとＳＱＬ文との対応関係は、ＨＴＴＰリクエストの数が少ない期間に現れやすい。実施例１におけるＳＱＬ文監視プログラム８１は、全ＳＱＬ文計測と部分ＳＱＬ文計測とをＨＴＴＰリクエスト数に応じて切り替える。
【０１５６】
すなわち、ＨＴＴＰリクエスト数が少ないと推測される期間では全ＳＱＬ文を計測し、それ以外の期間では、実施例１および２と同様に、一部のＳＱＬ文を計測する。なお、実施例３の説明において、実施例１および実施例２と同一構成、同一処理については同一符号を付し、その説明を省略する。
【０１５７】
＜ネットワークシステム１のシステム構成＞
図１８は、実施例３にかかるネットワークシステム１のシステム構成図である。図１８は、実施例１及び実施例２のシステム構成に、ベースラインテーブル７０を追加したシステム構成である。
【０１５８】
＜ベースラインテーブル７０の記憶内容例＞
図１９は、図１８に示したベースラインテーブル７０の記憶内容例を示す説明図である。ベースラインテーブル７０は、ＨＴＴＰ監視データテーブル２０の記録から計算した、計算機システム９５の「通常のふるまい（ベースライン）」を記録するテーブルである。ベースラインテーブル７０において、システム７１には、計算機システム９５の種別を示す情報が記録される。ＨＴＴＰリクエスト数ベースライン７２には、計算機システム９５が通常処理するＨＴＴＰリクエスト数のベースラインが記録される。ベースラインの作成方法は一般的な方法でよい。すなわち、監視計算機は、ＨＴＴＰ監視データテーブル２０に記録された過去のＨＴＴＰリクエスト数の記録を統計処理して、時間別のＨＴＴＰリクエスト数平均値（およびその標準偏差）を算出し記録する。
【０１５９】
図２０は、ＳＱＬ文監視プログラム８１による監視モード変更処理手順の詳細な処理手順例を示すフローチャートである。ＳＱＬ文監視プログラム８１は、このフローチャートにしたがって、定期的に計測モードを変更する。まず、ＳＱＬ文監視プログラム８１は、ベースラインテーブル７０から、監視対象の計算機システム９５のＨＴＴＰリクエスト数ベースライン７２を取得する（ステップＳ２００１）。
【０１６０】
つぎに、ＳＱＬ文監視プログラム８１は、ステップＳ２００１で取得したＨＴＴＰリクエスト数ベースライン７２について現在時刻におけるＨＴＴＰリクエスト数を特定し、当該ＨＴＴＰリクエスト数としきい値とを比較する（ステップＳ２００２）。しきい値未満である場合（ステップＳ２００２：Ｙｅｓ）、ＳＱＬ文監視プログラム８１は、ＳＱＬ文監視プログラム８１の計測モードを、全ＳＱＬ計測モードへ変更し（ステップＳ２００３）、処理を終了する。全ＳＱＬ文計測モードとは、ＳＱＬ文監視プログラム８１によりすべてのＳＱＬ文を計測するモードであり、たとえば、パケットキャプチャ方式の場合、キャプチャしたパケットをすべて計測する。
【０１６１】
一方、ステップＳ２００２において、しきい値以上である場合（ステップＳ２００２：Ｙｅｓ）、ＳＱＬ文監視プログラム８１は、ＳＱＬ文監視プログラム８１の計測モードを、定期計測モードへ変更して（ステップＳ２００４）、処理を終了する。定期計測モードとは、ＳＱＬ文監視プログラム８１により１秒間隔など所定時間間隔でＳＱＬ文を計測するモードである。これにより、全ＳＱＬ文計測モードに比べて、計測するＳＱＬ文を間引くことができる。したがって、計算負荷に応じてＳＱＬ文監視処理を実行することができる。
【０１６２】
以上により、ＳＱＬ文監視プログラム８１は、過去の履歴（ベースライン）に基づき計測モードを変更する。通常、ＨＴＴＰリクエスト数が少ない期間には、ＤＢサーバ９４にの多少の負荷が許容される全ＳＱＬ文計測モードが実行され、それ以外の期間では、ＤＢサーバ９４への負荷が少ない定期計測モードが実行される。これにより、ＨＴＴＰリクエストとＳＱＬ文との対応関係を求めやすいＨＴＴＰリクエスト数が少ない期間に、多数のＳＱＬ文を得ることができ、対応関係の取得の効率化を図ることができる。
【０１６３】
なお、実施例３では、全ＳＱＬ文計測モードと定期計測モードとに切り替える例を説明したが、ステップＳ２００３においては、ステップＳ２００４の定期計測モードの計測周期よりも短い周期であってもよい。また、ステップＳ２００２においてＨＴＴＰリクエスト数としきい値とを比較するが、しきい値を複数用意してしきい値に応じて段階的に計測モードの計測周期を変更することとしてもよい。
【０１６４】
以上に説明したように、本発明の実施の形態によれば、外乱ＨＴＴＰリクエストが少ない期間を選択することにより、計算量の削減を図るとともに、外乱ＨＴＴＰリクエストの種別を不揃いにすることにより、処理性能に遅延を示したＨＴＴＰリクエストの原因候補となるＳＱＬ文の絞り込み精度の向上を図ることができる。
【０１６５】
なお、上述した実施の形態では、ＨＴＴＰリクエストとＳＱＬ文との組み合わせについて説明したが、当該組み合わせには限定されない。たとえば、ＨＴＴＰリクエストの替わりに電子メールを適用してもよい。すなわち、異なる２つの独立した方式でデータの流れを観測する場合に適用することができる。同様に、監視対象となる計算機システム９５の構成も、図２、図１０および図１８の構成に限られない。
【０１６６】
なお、実施例１において手法２を適用した場合、監視計算機１０は、第１の装置が受信した第１のリクエスト集合と、第１の装置からの要求により第２の装置で処理された第２のリクエスト集合と、を記憶し、前記第１のリクエスト集合の中の調査対象リクエストと同一種別である同種別リクエスト群を前記第１のリクエスト集合の中から取得し、前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記第１の装置から前記第２の装置に送信されてから前記第２の装置から前記第１の装置にレスポンスが送信されるまでの処理期間中に前記第１の装置から前記第２の装置に送信され前記第２の装置から前記第１の装置にレスポンスが送信された、前記調査対象リクエストの種別とは異なる他の種別のリクエストを、前記第１のリクエスト集合の中から取得し、前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得しされた前記他の種別のリクエストとの組み合わせを生成し、生成された組み合わせの集合の中から、ある組み合わせ内の前記異なる種別のリクエストと一致する他の組み合わせを削除し、削除後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記処理期間中に前記第２の装置で処理された第２のリクエストを前記第２のリクエスト集合から取得し、前記削除後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得した前記第２のリクエストとの相関値を算出し、算出結果を出力する。
【０１６７】
また、実施例１において手法１を適用した場合、監視計算機１０は、第１の装置が受信した第１のリクエスト集合と、第１の装置からの要求により前記第２の装置で処理された第２のリクエスト集合と、を記憶し、前記第１のリクエスト集合の中の調査対象リクエストと同一種別である同種別リクエスト群を前記第１のリクエスト集合の中から取得し、前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記第１の装置から前記第２の装置に送信されてから前記第２の装置から前記第１の装置にレスポンスが送信されるまでの処理期間中に前記第１の装置から前記第２の装置に送信され前記第２の装置から前記第１の装置にレスポンスが送信された、前記調査対象リクエストの種別とは異なる他の種別のリクエストを、前記第１のリクエスト集合の中から取得し、前記調査対象リクエストおよび前記同種別リクエスト群のうち、取得された前記他の種別のリクエストの個数が所定数以上、または、昇順で所定順位以下のリクエストを削除し、削除後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、前記処理期間中に前記第２の装置で処理された第２のリクエストを前記第２のリクエスト集合から取得し、前記削除後における前記調査対象リクエストおよび前記同種別リクエスト群の各リクエストについて、取得した前記第２のリクエストとの相関値を算出し、算出結果を出力する。
【０１６８】
また、実施例２において手法２を適用した場合、監視計算機１０は、第１の装置が受信した第１のリクエスト集合と、前記第１の装置からの要求により第２の装置で処理された第２のリクエスト集合と、前記第１のリクエスト集合内の第１のリクエストについて前記第１のリクエストと同一種別である同種別リクエスト群が対応付けられた対応情報と、前記第１のリクエストと前記第２のリクエスト集合内の第２のリクエストと前記第２のリクエストの出現数とを関連付けた計数情報と、を記憶し、前記第１のリクエスト集合の中から前記対応情報に追加されていない第１の追加対象リクエストを選択し、選択した前記第１の追加対象リクエストについて、前記第１の装置から前記第２の装置に送信されてから前記第２の装置から前記第１の装置にレスポンスが送信されるまでの処理期間中に前記第１の装置から前記第２の装置に送信され前記第２の装置から前記第１の装置にレスポンスが送信された、前記第１の追加対象リクエストの種別とは異なる他の種別のリクエストを、前記第１のリクエスト集合および前記対応情報の各々の中から取得し、前記第１のリクエスト集合から取得された前記他の種別のリクエストと前記対応情報から取得された前記他の種別のリクエストとが重複するか否かを判定し、重複していない場合、前記対応情報に、前記第１の追加対象リクエストおよび前記第１のリクエスト集合から取得された前記他の種別のリクエストを追加し、前記第１の追加対象リクエストの処理期間中に前記第２の装置で処理された第２の追加対象リクエストと当該第２の追加対象リクエストの出現数とを、前記第２のリクエスト集合から特定し、前記第１の追加対象リクエストと前記第２の追加対象リクエストと前記第２の追加対象リクエストの出現数とに基づいて、前記計数情報を更新する。
【０１６９】
また、実施例２において手法１を適用した場合、監視計算機１０は、第１の装置が受信した第１のリクエスト集合と、前記第１の装置からの要求により前記第２の装置で処理された第２のリクエスト集合と、前記第１のリクエスト集合内の第１のリクエストについて前記第１のリクエストと同一種別である同種別リクエスト群が対応付けられた対応情報と、前記第１のリクエストと前記第２のリクエスト集合内の第２のリクエストと前記第２のリクエストの出現数とを関連付けた計数情報と、を記憶し、前記第１のリクエスト集合の中から前記対応情報に追加されていない第１の追加対象リクエストを選択し、選択した前記第１の追加対象リクエストについて、前記第１の装置から前記第２の装置に送信されてから前記第２の装置から前記第１の装置にレスポンスが送信されるまでの処理期間中に前記第１の装置から前記第２の装置に送信され前記第２の装置から前記第１の装置にレスポンスが送信された、前記第１の追加対象リクエストの種別とは異なる他の種別のリクエストを、前記第１のリクエスト集合の中から取得し、前記対応情報に、前記第１の追加対象リクエストおよび前記第１のリクエスト集合から特定された前記他の種別のリクエストを追加し、前記第１の追加対象リクエストの処理期間中に前記第２の装置で処理された第２の追加対象リクエストと当該第２の追加対象リクエストの出現数とを、前記第２のリクエスト集合から特定し、前記第１の追加対象リクエストと前記第２の追加対象リクエストと前記第２の追加対象リクエストの出現数とに基づいて、前記計数情報を更新し、前記対応情報に追加された前記第１の追加対象リクエストについて、前記第１の追加対象リクエストの種別とは異なる他の種別のリクエストの個数を前記対応情報から計数し、計数結果が所定数以上である場合、前記対応情報に追加された前記第１の追加対象リクエストおよび前記第１のリクエスト集合から特定された前記他の種別のリクエストを前記対応情報から削除し、前記計数情報から前記出現数を減算することにより前記計数情報を更新する。
【０１７０】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【図１】
0006031597.tif 000002
【図２】
0006031597.tif 000003
【図３】
0006031597.tif 000004
【図４】
0006031597.tif 000005
【図５】
0006031597.tif 000006
【図６】
0006031597.tif 000007
【図７】
0006031597.tif 000008
【図８】
0006031597.tif 000009
【図９】
0006031597.tif 000010
【図１０】
0006031597.tif 000011
【図１１】
0006031597.tif 000012
【図１２】
0006031597.tif 000013
【図１３】
0006031597.tif 000014
【図１４】
0006031597.tif 000015
【図１５】
0006031597.tif 000016
【図１６】
0006031597.tif 000017
【図１７】
0006031597.tif 000018
【図１８】
0006031597.tif 000019
【図１９】
0006031597.tif 000020
【図２０】
0006031597.tif 000021