IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2023-127480情報処理プログラム、情報処理方法、および情報処理装置
<>
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図1
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図2
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図3
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図4
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図5
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図6
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図7
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図8
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図9
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図10
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図11
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図12
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図13
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図14
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図15
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023127480
(43)【公開日】2023-09-13
(54)【発明の名称】情報処理プログラム、情報処理方法、および情報処理装置
(51)【国際特許分類】
   G06F 11/07 20060101AFI20230906BHJP
【FI】
G06F11/07 190
G06F11/07 157
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022031299
(22)【出願日】2022-03-01
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】小野 尚明
(72)【発明者】
【氏名】長尾 徳富
(72)【発明者】
【氏名】垣内 孝宣
(72)【発明者】
【氏名】加藤 雅志
(72)【発明者】
【氏名】田中 和幸
(72)【発明者】
【氏名】藤田 和成
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042JJ20
5B042JJ29
5B042KK15
5B042MA08
5B042MC40
(57)【要約】
【課題】トラブルが発生した原因を特定する際にかかる処理負担の低減を図ること。
【解決手段】情報処理装置100は、記憶部101を有する。記憶部101は、ミドルウェア110を形成するプロセス111が処理したイベント112の開始時点と終了時点とが記憶される。情報処理装置100は、記憶部101を参照して、ミドルウェア110を形成するそれぞれのプロセス111が処理したイベント112のうち、処理時間が異常であるいずれかのイベント112を検出する。情報処理装置100は、イベント112を検出した場合、当該イベント112を処理したプロセス111aの状態に基づいて、当該イベント112の処理時間が異常である原因に対応する、当該プロセス111aに関するデータの種類を特定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
トラブルが発生したソフトウェアを形成するプロセスが処理したイベントの開始時点と終了時点とが記憶される記憶部を参照して、処理時間が異常である、前記ソフトウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出し、
前記いずれかのイベントを検出した場合に、前記いずれかのプロセスの状態に基づいて、検出した前記いずれかのイベントの処理時間が異常である原因に対応する、前記いずれかのプロセスに関するデータの種類を特定する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記ソフトウェアを形成するプロセスに関するデータを採取可能な採取元から、特定した前記種類である前記いずれかのプロセスに関するデータを採取して出力する、
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記検出する処理は、
前記記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、前記記憶部に終了時点が記憶されていない、前記ソフトウェアを形成する第1プロセスが処理した第1イベントを検出し、
前記特定する処理は、
前記第1イベントを検出した場合に、前記第1プロセスの状態を示す情報を取得することができなければ、前記種類として、前記第1プロセスのダンプファイルを特定する、ことを特徴とする請求項1または2に記載の情報処理プログラム。
【請求項4】
前記検出する処理は、
前記記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、前記記憶部に終了時点が記憶されていない、前記ソフトウェアを形成する第2プロセスが処理した第2イベントを検出し、
前記特定する処理は、
前記第2イベントを検出した場合に、取得した前記第2プロセスの状態を示す情報が停止を示していれば、前記種類として、前記第2プロセスのダンプファイルを特定する、ことを特徴とする請求項1~3のいずれか一つに記載の情報処理プログラム。
【請求項5】
前記検出する処理は、
前記記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、前記記憶部に終了時点が記憶されていない、前記ソフトウェアを形成する第3プロセスが処理した第3イベントを検出し、
前記特定する処理は、
前記第3イベントを検出した場合に、取得した前記第3プロセスの状態を示す情報が停止を示していなければ、前記種類として、前記第3プロセスのトレース情報を特定する、ことを特徴とする請求項1~4のいずれか一つに記載の情報処理プログラム。
【請求項6】
前記検出する処理は、
前記記憶部を参照して、開始時点と終了時点との差分に対応する処理時間が第2閾値以上である、前記ソフトウェアを形成する第4プロセスが処理した第4イベントを検出し、
前記特定する処理は、
前記第4イベントを検出した場合に、前記種類として、前記第4プロセスのトレース情報を特定する、ことを特徴とする請求項1~5のいずれか一つに記載の情報処理プログラム。
【請求項7】
前記記憶部に終了時点が記憶された過去のイベントの開始時点と終了時点との差分に対応する処理時間に基づいて、前記第1閾値を設定する、
処理を前記コンピュータに実行させることを特徴とする請求項3~5のいずれか一つに記載の情報処理プログラム。
【請求項8】
トラブルが発生したソフトウェアを形成するプロセスが処理したイベントの開始時点と終了時点とが記憶される記憶部を参照して、処理時間が異常である、前記ソフトウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出し、
前記いずれかのイベントを検出した場合に、前記いずれかのプロセスの状態に基づいて、検出した前記いずれかのイベントの処理時間が異常である原因に対応する、前記いずれかのプロセスに関するデータの種類を特定する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項9】
トラブルが発生したソフトウェアを形成するプロセスが処理したイベントの開始時点と終了時点とが記憶される記憶部を参照して、処理時間が異常である、前記ソフトウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出し、
前記いずれかのイベントを検出した場合に、前記いずれかのプロセスの状態に基づいて、検出した前記いずれかのイベントの処理時間が異常である原因に対応する、前記いずれかのプロセスに関するデータの種類を特定する、
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、ミドルウェアにトラブルが発生した場合、運用担当者が、採取コマンドを利用して、ミドルウェアに関する調査資料を採取し、調査担当者に提供する。調査資料は、例えば、OS(Operating System)の動作ログ、ミドルウェアの動作ログ、または、ミドルウェアを形成するプロセスの動作ログなどを含む。次に、調査担当者が、提供された調査資料を参照して、ミドルウェアにトラブルが発生した原因を特定し、運用担当者に通知する。そして、運用担当者が、通知されたトラブルの原因に対処する。
【0003】
先行技術としては、例えば、所定のスタック採取間隔でメモリに記録されたアプリケーションのスタック情報を解析し、メソッドごとのユーザ業務実行時間またはスタック出力回数からストールを検出するものがある。また、例えば、設定された第1の対象プロセスのトレース情報を取得する技術がある。また、例えば、処理プログラムに対しイベント対応処理時間以内でイベントが連続発生した場合にも、処理プログラムが実行し続けた時間を監視することにより、異常となった処理プログラムを検出する技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009-187189号公報
【特許文献2】国際公開第2010/018619号
【特許文献3】特開2000-105707号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、トラブルが発生した原因を特定する際にかかる処理負担が増大し易いという問題がある。例えば、トラブルの種類に応じて、トラブルが発生した原因を特定可能にする適切な調査資料の種類は異なっており、どのような種類の調査資料を採取すればよいのかを判断することが難しい。これに対し、多種の調査資料をすべて採取しようとすれば、トラブルが発生した原因を特定する際にかかる処理負担および処理時間の増大を招くことになる。
【0006】
1つの側面では、本発明は、トラブルが発生した原因を特定する際にかかる処理負担の低減を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、トラブルが発生したソフトウェアを形成するプロセスが処理したイベントの開始時点と終了時点とが記憶される記憶部を参照して、処理時間が異常である、前記ソフトウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出し、前記いずれかのイベントを検出した場合に、前記いずれかのプロセスの状態に基づいて、検出した前記いずれかのイベントの処理時間が異常である原因に対応する、前記いずれかのプロセスに関するデータの種類を特定する情報処理プログラム、情報処理方法、および情報処理装置が提案される。
【発明の効果】
【0008】
一態様によれば、トラブルが発生した原因を特定する際にかかる処理負担の低減を図ることが可能になる。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。
図2図2は、情報処理システム200の一例を示す説明図である。
図3図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
図4図4は、情報処理装置100の機能的構成例を示すブロック図である。
図5図5は、情報処理システム200の機能的構成例を示すブロック図である。
図6図6は、情報処理装置100の動作例を示す説明図(その1)である。
図7図7は、情報処理装置100の動作例を示す説明図(その2)である。
図8図8は、情報処理装置100の動作例を示す説明図(その3)である。
図9図9は、情報処理装置100の動作例を示す説明図(その4)である。
図10図10は、イベント処理手順の一例を示すフローチャートである。
図11図11は、採取制御処理手順の一例を示すフローチャートである。
図12図12は、状態判定処理手順の一例を示すフローチャート(その1)である。
図13図13は、状態判定処理手順の一例を示すフローチャート(その2)である。
図14図14は、第1採取処理手順の一例を示すフローチャートである。
図15図15は、第2採取処理手順の一例を示すフローチャートである。
図16図16は、第3採取処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる情報処理方法の一実施例)
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。情報処理装置100は、ソフトウェアにトラブルが発生した原因を特定する際にかかる処理負担の低減を図ることができるコンピュータである。ソフトウェアは、例えば、ミドルウェアである。ミドルウェアは、例えば、業務に関わる。ミドルウェアは、例えば、ジョブを実行するためのソフトウェアである。ミドルウェアは、例えば、システムを監視するためのソフトウェアであってもよい。
【0012】
ここで、ミドルウェアを実行する環境において、OSのパッチ適用、ウィルス対策ソフトウェア導入、他のミドルウェアの導入、または、他のミドルウェアの更新などが実施される場合がある。この場合、OSのAPI(Application Programming Interface)の性能または挙動などが変化することがあり、ミドルウェアを形成するプロセスの動作が変化してしまうことがある。結果として、ミドルウェアにトラブルが発生してしまうことが考えられる。
【0013】
従来では、ミドルウェアにトラブルが発生した原因を特定する際にかかる処理負担が増大し易いという問題がある。例えば、トラブルの種類に応じて、トラブルが発生した原因を特定可能にする適切な調査資料の種類は異なっており、どのような種類の調査資料を採取すればよいのかを判断することが難しい。
【0014】
従って、運用担当者は、ミドルウェアにトラブルが発生した原因を特定可能にする適切な調査資料を、調査担当者に提供することができない場合がある。この場合、調査担当者は、提供された調査資料を参照しても、ミドルウェアにトラブルが発生した原因を特定不能であるにも関わらず、提供された調査資料を参照して、ミドルウェアにトラブルが発生した原因を調査することになってしまう。具体的には、調査担当者は、OSの動作ログ、ミドルウェアの動作ログ、または、ミドルウェアを形成するプロセスの動作ログなどを含む調査資料を参照しても、ミドルウェアにトラブルが発生した原因を特定することができない場合がある。このため、調査担当者にかかる作業負担および作業時間の増大を招き易い。
【0015】
そして、調査担当者は、トラブルが発生した原因を特定不能であれば、ミドルウェアにトラブルが発生した原因を特定可能にする他の調査資料を採取するよう、運用担当者に指示することになる。具体的には、調査担当者は、ミドルウェアを形成するプロセスの状態が動作遅延またはループであることを疑い、プロセスのトレース情報を含む他の調査資料を採取するよう、運用担当者に指示することが考えられる。調査担当者は、ミドルウェアを形成するプロセスの状態が停止または異常終了であることを疑い、プロセスのダンプファイルを含む他の調査資料を採取するよう、運用担当者に指示することが考えられる。運用担当者は、ミドルウェアにトラブルが発生した原因を特定可能にする他の調査資料を採取することになる。このため、運用担当者にかかる作業負担および作業時間の増大を招き易い。
【0016】
また、ミドルウェアを実行する環境は、複数回、調査資料を採取する対象となってしまう。このため、ミドルウェアを実行する環境にかかる処理負担および処理時間の増大を招き易い。また、ミドルウェアを実行する環境にかかる処理負担および処理時間が増大すると、ミドルウェアを利用する業務に悪影響を与え易い。
【0017】
これに対し、ミドルウェアにトラブルが発生した場合、多種の調査資料をすべて採取しようとする手法が考えられる。この手法でも、トラブルが発生した原因を特定する際にかかる処理負担および処理時間の増大を招くことになる。ミドルウェアを実行する環境にかかる処理負担および処理時間の増大を招き易い。また、調査担当者は、多種の調査資料をすべて参照することになる。このため、調査担当者にかかる作業負担および作業時間の増大を招き易い。また、調査資料のデータ量の増大を招き易い。
【0018】
また、プロセスの状態に応じて採取する調査資料の種類を絞り込むことが考えられるが、プロセスの状態を精度よく特定することは難しい。このため、採取する調査資料の種類を絞り込み、運用担当者および調査担当者にかかる作業負担および作業時間を低減し、ミドルウェアを実行する環境にかかる処理負担および処理時間を低減することは難しい。
【0019】
例えば、上述した特許文献1を参照しても、プロセスの状態が停止であるか、または、ループであるかなどを特定することは難しい。従って、上述した特許文献1を参照しても、プロセスの状態が停止であればダンプファイルを採取し、プロセスの状態がループであればトレース情報を採取するよう、プロセスの状態に応じて採取する調査資料の種類を変更可能にすることはできない。
【0020】
例えば、上述した特許文献2を参照しても、プロセスの状態が実行中であるか否か以外に、動作遅延であるか、または、ループであるかなどを特定することは難しい。従って、上述した特許文献2を参照しても、プロセスの状態に応じて採取する調査資料の種類を変更可能にすることはできない。
【0021】
例えば、上述した特許文献3を参照しても、プロセスの状態が動作遅延であるか、停止であるか、または、ループであるかなどを特定することは難しい。従って、上述した特許文献3を参照しても、プロセスの状態が停止であればダンプファイルを採取し、プロセスの状態が動作遅延であればトレースファイルを採取するよう、プロセスの状態に応じて採取する調査資料の種類を変更可能にすることはできない。また、プロセスが正常に動作していても、プロセスの処理時間が比較的大きく変化する場合、プロセスの状態が異常であるか否かを特定することが難しい。
【0022】
このように、上述した特許文献1~3を組み合わせても、プロセスの状態に応じて採取する調査資料の種類を変更可能にすることはできない。そこで、本実施の形態では、プロセスの状態に応じて採取する調査資料の種類を変更可能にすることができ、ミドルウェアにトラブルが発生した原因を特定する際にかかる処理負担の低減を図ることができる情報処理方法について説明する。
【0023】
図1において、情報処理装置100は、記憶部101を有する。記憶部101は、ミドルウェア110を形成するプロセス111が処理したイベント112の開始時点と終了時点とが記憶される。ここで、終了時点は、プロセスに異常があると、記憶部101に記憶されないことがある。ミドルウェア110は、例えば、トラブルが発生することがある。プロセス111は、例えば、1または複数存在する。
【0024】
(1-1)情報処理装置100は、記憶部101を参照して、ミドルウェア110を形成するそれぞれのプロセス111が処理したイベント112のうち、処理時間が異常であるいずれかのイベント112を検出する。処理時間の異常は、例えば、記憶部101に終了時点が記憶されていないことである。処理時間の異常は、例えば、記憶部101に終了時点が記憶されておらず、かつ、記憶部101に記憶された開始時点から現在時点までの経過時間が閾値を超えることである。情報処理装置100は、例えば、記憶部101に終了時点が記憶されておらず、かつ、記憶部101に記憶された開始時点から現在時点までの経過時間が閾値を超えた、プロセス111aが処理したイベント112を検出する。
【0025】
これにより、情報処理装置100は、処理時間が異常なイベント112を処理したプロセス111aを特定することができる。情報処理装置100は、ミドルウェア110にトラブルが発生した原因を調査する際、ミドルウェア110を形成するいずれのプロセス111に関するデータを採取することが好ましいかを判定することができる。情報処理装置100は、例えば、ミドルウェア110を形成するプロセス111のうち、プロセス111aに関するデータを採取することが好ましいと判定することができる。
【0026】
(1-2)情報処理装置100は、イベント112を検出した場合、当該イベント112を処理したプロセス111aの状態に基づいて、当該イベント112の処理時間が異常である原因に対応する、当該プロセス111aに関するデータの種類を特定する。情報処理装置100は、例えば、検出したイベント112を処理したプロセス111aの状態を示す情報を、プロセス111の状態を示す情報を記憶する所定の記憶領域から検索する。プロセス111の状態を示す情報は、例えば、OSによって管理される。
【0027】
情報処理装置100は、例えば、プロセス111aの状態を示す情報が発見されなければ、検出したイベント112の処理時間が異常である原因=異常終了として、異常終了に対応する、当該プロセス111aに関するデータの種類=ダンプファイルを特定する。ダンプファイルは、例えば、OSによって保存されたダンプファイルである。
【0028】
情報処理装置100は、例えば、プロセス111aの状態を示す情報が発見されれば、プロセス111aの状態を示す情報を取得する。情報処理装置100は、例えば、取得した情報が、プロセス111aの状態=停止を示せば、検出したイベント112の処理時間が異常である原因=停止として、停止に対応する当該プロセス111aに関するデータの種類=ダンプファイルを特定する。ダンプファイルは、プロセス111aのダンプファイルである。
【0029】
情報処理装置100は、例えば、取得した情報が、プロセス111aの状態=停止を示さなければ、検出したイベント112の処理時間が異常である原因=動作遅延またはループとする。情報処理装置100は、例えば、動作遅延またはループに対応する当該プロセス111aに関するデータの種類=トレース情報を特定する。
【0030】
(1-3)情報処理装置100は、特定した結果を、利用者が参照可能に出力する。利用者は、例えば、運用担当者などである。これにより、情報処理装置100は、ミドルウェア110にトラブルが発生した原因を特定する際にかかる処理負担の低減を図ることができる。情報処理装置100は、例えば、利用者が、どのような種類の調査資料を採取すればよいのかを判断可能にすることができる。情報処理装置100は、具体的には、利用者が、ミドルウェア110にトラブルが発生した原因を特定可能にする適切な調査資料を採取可能にすることができる。このため、情報処理装置100は、利用者にかかる作業負担および作業時間の低減を図ることができ、ミドルウェア110を実行する環境にかかる処理負担および処理時間の低減を図ることができる。
【0031】
情報処理装置100は、特定した結果に基づいて、特定した種類のプロセス111aに関するデータを採取し、利用者が参照可能に出力してもよい。利用者は、例えば、運用担当者、または、調査担当者などである。これにより、情報処理装置100は、ミドルウェア110にトラブルが発生した原因を特定する際にかかる処理負担の低減を図ることができる。情報処理装置100は、例えば、利用者が、ミドルウェア110にトラブルが発生した原因を特定可能にする適切な調査資料を利用可能にすることができる。このため、情報処理装置100は、利用者にかかる作業負担および作業時間の低減を図ることができ、ミドルウェア110を実行する環境にかかる処理負担および処理時間の低減を図ることができる。
【0032】
(情報処理システム200の一例)
次に、図2を用いて、図1に示した情報処理装置100を適用した、情報処理システム200の一例について説明する。
【0033】
図2は、情報処理システム200の一例を示す説明図である。図2において、情報処理システム200は、情報処理装置100と、クライアント装置201とを含む。
【0034】
情報処理システム200において、情報処理装置100とクライアント装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
【0035】
情報処理装置100は、ミドルウェアを実行する環境を実現するコンピュータである。情報処理装置100は、OSを起動すると共に、ミドルウェアを起動して実行する。情報処理装置100は、ミドルウェアの起動指示を、クライアント装置201から受け付けたことに応じて、ミドルウェアを起動して実行してもよい。情報処理装置100は、例えば、ミドルウェアを形成する1以上のプロセスのそれぞれのプロセスによって、発生したイベントを処理する。
【0036】
情報処理装置100は、イベントの開始時点および終了時点が記憶される記憶部を有する。情報処理装置100は、イベントの開始に応じてイベントの開始時点を、記憶部に格納する。情報処理装置100は、イベントの終了に応じてイベントの終了時点を、記憶部に格納する。プロセスに異常があると、イベントの終了時点が、記憶部に記憶されないことがある。
【0037】
情報処理装置100は、調査資料の採取指示を、クライアント装置201から受け付けたことに応じて、記憶部を参照して、ミドルウェアを形成するそれぞれのプロセスが処理したイベントのうち、処理時間が異常であるいずれかのイベントを検出する。情報処理装置100は、イベントを検出した場合、当該イベントを処理したプロセスの状態に基づいて、当該イベントの処理時間が異常である原因に対応する、当該プロセスに関するデータの種類を特定する。
【0038】
情報処理装置100は、特定した結果に基づいて、検出したイベントを処理したプロセスに関する、特定した種類のデータを採取する。情報処理装置100は、採取したデータを、クライアント装置201に送信する。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
【0039】
クライアント装置201は、利用者によって用いられるコンピュータである。利用者は、例えば、運用担当者、または、調査担当者などである。クライアント装置201は、利用者の操作入力に基づき、ミドルウェアの起動指示を、情報処理装置100に送信する。クライアント装置201は、利用者の操作入力に基づき、調査資料の採取指示を、情報処理装置100に送信する。
【0040】
クライアント装置201は、採取されたデータを、情報処理装置100から受信する。クライアント装置201は、受信したデータを、利用者が参照可能に出力する。クライアント装置201は、例えば、PC、タブレット端末、または、スマートフォンなどである。
【0041】
ここでは、情報処理装置100とクライアント装置201とが異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、クライアント装置201としての機能を有し、クライアント装置201としても動作する場合があってもよい。
【0042】
(情報処理装置100のハードウェア構成例)
次に、図3を用いて、情報処理装置100のハードウェア構成例について説明する。
【0043】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0044】
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることにより、コーディングされている処理をCPU301に実行させる。
【0045】
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
【0046】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
【0047】
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0048】
(クライアント装置201のハードウェア構成例)
クライアント装置201のハードウェア構成例は、具体的には、図3に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
【0049】
(情報処理装置100の機能的構成例)
次に、図4を用いて、情報処理装置100の機能的構成例について説明する。
【0050】
図4は、情報処理装置100の機能的構成例を示すブロック図である。図4において、情報処理装置100は、記憶部400と、取得部401と、判定部402と、特定部403と、出力部404とを含む。
【0051】
記憶部400は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部400が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部400が、情報処理装置100とは異なる装置に含まれ、記憶部400の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0052】
取得部401~出力部404は、制御部の一例として機能する。取得部401~出力部404は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
【0053】
記憶部400は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部400は、ソフトウェアを形成するプロセスが処理したイベントの開始時点と終了時点とを記憶する。ソフトウェアは、例えば、ミドルウェアである。終了時点は、プロセスに異常があると、記憶部400に記憶されないことがある。記憶部400は、例えば、イベントの属性に対応付けて当該イベントの開始時点と終了時点とを記憶する。属性は、例えば、イベント名である。属性は、例えば、イベント名とイベント引数との組み合わせであってもよい。開始時点は、例えば、取得部401によって取得される。終了時点は、例えば、取得部401によって取得される。
【0054】
記憶部400は、第1閾値を記憶する。第1閾値は、イベントの処理時間の異常を判定する基準となる閾値である。第1閾値は、固定であってもよい。第1閾値は、可変であってもよい。第1閾値は、例えば、判定部402によって設定される。第1閾値は、例えば、取得部401によって取得されてもよい。第1閾値は、例えば、予め記憶部400に記憶されていてもよい。
【0055】
記憶部400は、第2閾値を記憶する。第2閾値は、イベントの処理時間の異常を判定する基準となる閾値である。第2閾値は、第1閾値と同一であってもよい。第2閾値は、固定であってもよい。第2閾値は、可変であってもよい。第2閾値は、例えば、判定部402によって設定される。第2閾値は、例えば、取得部401によって取得されてもよい。第2閾値は、例えば、予め記憶部400に記憶されていてもよい。
【0056】
取得部401は、各機能部の処理に用いられる各種情報を取得する。取得部401は、取得した各種情報を、記憶部400に記憶し、または、各機能部に出力する。また、取得部401は、記憶部400に記憶しておいた各種情報を、各機能部に出力してもよい。取得部401は、例えば、利用者の操作入力に基づき、各種情報を取得する。利用者は、例えば、運用担当者、または、調査担当者などである。取得部401は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0057】
取得部401は、ミドルウェアを形成するプロセスがイベントを処理開始したことを検出すると、イベントの属性に対応付けて、イベントの開始時点を記憶部400に記憶する。属性は、例えば、イベント名である。属性は、例えば、イベント名とイベント引数との組み合わせであってもよい。
【0058】
取得部401は、ミドルウェアを形成するプロセスがイベントを処理終了したことを検出すると、イベントの属性に対応付けて、イベントの終了時点を記憶部400に記憶する。属性は、例えば、イベント名である。属性は、例えば、イベント名とイベント引数との組み合わせであってもよい。
【0059】
取得部401は、第1閾値を取得する。取得部401は、例えば、利用者の操作入力に基づき、第1閾値の入力を受け付けることにより、第1閾値を取得する。取得部401は、第1閾値を他のコンピュータから受信することにより、第1閾値を取得してもよい。
【0060】
取得部401は、第2閾値を取得する。取得部401は、例えば、利用者の操作入力に基づき、第2閾値の入力を受け付けることにより、第2閾値を取得する。取得部401は、第2閾値を他のコンピュータから受信することにより、第2閾値を取得してもよい。
【0061】
取得部401は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
【0062】
取得部401は、例えば、利用者の操作入力に基づき、判定要求を取得する。判定要求は、例えば、ミドルウェアの指定を含んでいてもよい。取得部401は、例えば、判定要求を取得したことを、判定部402と特定部403との処理を開始する開始トリガーとして受け付けてもよい。取得部401は、例えば、所定のタイミングになったことを、判定部402と特定部403との処理を開始する開始トリガーとして受け付けてもよい。所定のタイミングは、例えば、一定時間間隔ごとのタイミングである。所定のタイミングは、具体的には、1日ごとの規定の時点である。
【0063】
判定部402は、記憶部400に終了時点が記憶された過去のイベントの開始時点と終了時点との差分に対応する処理時間に基づいて、第1閾値を設定する。判定部402は、例えば、イベントの属性ごとに、当該属性の直近のイベント以外の当該属性の過去のイベントの開始時点と終了時点との差分に対応する処理時間に基づいて、第1閾値を設定する。属性は、例えば、イベント名である。属性は、例えば、イベント名とイベント引数との組み合わせであってもよい。
【0064】
判定部402は、いずれかの属性の直近のイベント以外の当該属性の過去のイベントの開始時点と終了時点との差分に対応する処理時間の統計値を、第1閾値に設定する。統計値は、例えば、最大値、最小値、平均値、最頻値、または、中央値などである。これにより、判定部402は、イベントの処理時間の異常を判定する基準を設定することができる。判定部402は、統計処理により、イベントの処理時間の異常を判定する基準を精度よく算出して設定することができる。
【0065】
判定部402は、記憶部400に終了時点が記憶された過去のイベントの開始時点と終了時点との差分に対応する処理時間に基づいて、第2閾値を設定する。判定部402は、例えば、イベントの属性ごとに、当該属性の直近のイベント以外の当該属性の過去のイベントの開始時点と終了時点との差分に対応する処理時間に基づいて、第2閾値を設定する。属性は、例えば、イベント名である。属性は、例えば、イベント名とイベント引数との組み合わせであってもよい。
【0066】
判定部402は、いずれかの属性の直近のイベント以外の当該属性の過去のイベントの開始時点と終了時点との差分に対応する処理時間の統計値を、第2閾値に設定する。統計値は、例えば、最大値、最小値、平均値、最頻値、または、中央値などである。これにより、判定部402は、イベントの処理時間の異常を判定する基準を設定することができる。判定部402は、統計処理により、イベントの処理時間の異常を判定する基準を精度よく算出して設定することができる。
【0067】
判定部402は、ミドルウェアを選択する。以下の説明では、選択されたミドルウェアを「対象ミドルウェア」と表記する場合がある。判定部402は、例えば、判定要求で指定されたミドルウェアを、対象ミドルウェアとして選択する。判定部402は、例えば、実行中の複数のミドルウェアのそれぞれのミドルウェアを、対象ミドルウェアとして選択してもよい。
【0068】
判定部402は、記憶部400を参照して、対象ミドルウェアを形成するいずれかのプロセスが処理したイベントのうち、処理時間が異常であるいずれかのイベントを検出する。以下の説明では、検出されたイベントを「対象イベント」と表記する場合がある。検出されたイベントを処理したプロセスを「対象プロセス」と表記する場合がある。
【0069】
判定部402は、例えば、記憶部400に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、記憶部400に終了時点が記憶されていない、対象ミドルウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出する。これにより、判定部402は、採取するデータの種類を特定する基準を得ることができる。判定部402は、例えば、対象プロセスに、異常終了、停止、動作遅延、または、ループなどの異常が発生した確率が比較的高いと認識することができ、特定部403で、具体的にどのような異常が発生したかを特定可能にすることができる。
【0070】
判定部402は、例えば、記憶部400を参照して、開始時点と終了時点との差分に対応する処理時間が第2閾値以上である、対象ミドルウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出する。これにより、判定部402は、採取するデータの種類を特定する基準を得ることができる。判定部402は、例えば、対象プロセスに、動作遅延が発生した確率が比較的高いと認識することができ、特定部403で、動作遅延が発生したか否かを特定可能にすることができる。
【0071】
特定部403は、対象イベントを検出した場合に、対象プロセスの状態に基づいて、対象イベントの処理時間が異常である原因に対応する、対象プロセスに関するデータの種類を特定する。原因は、プロセスの動作遅延、停止、異常終了、または、ループなどである。特定するデータの種類は、例えば、対象ミドルウェアにトラブルが発生した原因を調査するために採取するデータの種類を示す。特定するデータの種類は、例えば、ダンプファイル、または、トレース情報などである。
【0072】
特定部403は、例えば、終了時点が記憶されていない対象イベントを検出した場合に、対象プロセスの状態を示す情報を取得することができたか否かを判定する。特定部403は、例えば、取得することができなければ、処理時間が異常である原因=異常終了に対応する、対象プロセスのダンプファイルを、採取するデータの種類として特定する。これにより、特定部403は、対象ミドルウェアにトラブルが発生した原因を調査するために採取することが好ましいデータを採取可能にすることができる。
【0073】
特定部403は、例えば、終了時点が記憶されていない対象イベントを検出した場合に、取得した対象プロセスの状態を示す情報が停止を示すか否かを判定する。特定部403は、例えば、取得した対象プロセスの状態を示す情報が停止を示していれば、処理時間が異常である原因=停止に対応する、対象プロセスのダンプファイルを、採取するデータの種類として特定する。これにより、特定部403は、対象ミドルウェアにトラブルが発生した原因を調査するために採取することが好ましいデータを採取可能にすることができる。
【0074】
特定部403は、例えば、取得した対象プロセスの状態を示す情報が停止を示していなければ、処理時間が異常である原因=動作遅延またはループに対応する、対象プロセスのトレース情報を、採取するデータの種類として特定する。これにより、特定部403は、対象ミドルウェアにトラブルが発生した原因を調査するために採取することが好ましいデータを採取可能にすることができる。
【0075】
特定部403は、例えば、処理時間が第2閾値以上である対象イベントを検出した場合に、処理時間が異常である原因=動作遅延に対応する、対象プロセスのトレース情報を、採取するデータの種類として特定する。これにより、特定部403は、対象ミドルウェアにトラブルが発生した原因を調査するために採取することが好ましいデータを採取可能にすることができる。
【0076】
出力部404は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部404は、少なくともいずれかの機能部の処理結果を利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
【0077】
出力部404は、特定した種類を、検出した対象イベントを処理した対象プロセスに対応付けて出力する。出力部404は、例えば、特定した種類を、検出した対象イベントを処理した対象プロセスに対応付けて、利用者が参照可能に出力する。これにより、出力部404は、利用者が、対象ミドルウェアにトラブルが発生した原因を調査するために採取することが好ましいデータの種類を把握可能にすることができる。出力部404は、利用者が、対象ミドルウェアにトラブルが発生した原因を調査するために採取することが好ましいデータを採取可能にすることができる。
【0078】
出力部404は、ミドルウェアを形成するプロセスに関するデータを採取可能な採取元から、特定した種類である対象プロセスに関するデータを採取して出力する。出力部404は、例えば、ミドルウェアを形成するプロセスに関するデータを採取可能な採取元から、特定した種類である対象プロセスに関するデータを採取して、利用者が参照可能に出力する。これにより、出力部404は、利用者が、対象ミドルウェアにトラブルが発生した原因を調査する際に有用なデータを利用可能にすることができる。
【0079】
出力部404は、さらに、対象プロセスの動作ログを採取して出力してもよい。出力部404は、例えば、対象プロセスの動作ログを採取し、利用者が参照可能に出力する。これにより、出力部404は、利用者が、対象ミドルウェアにトラブルが発生した原因を調査する際に有用なデータを利用可能にすることができる。
【0080】
出力部404は、さらに、ミドルウェアが動作するOSの動作ログおよび設定ファイルを採取して出力してもよい。出力部404は、例えば、ミドルウェアが動作するOSの動作ログおよび設定ファイルを採取し、利用者が参照可能に出力する。これにより、出力部404は、利用者が、対象ミドルウェアにトラブルが発生した原因を調査する際に有用なデータを利用可能にすることができる。
【0081】
ここでは、特定部403が、処理時間が異常である原因を直接的に特定せず、処理時間が異常である原因に対応する、対象プロセスに関するデータの種類を、分岐処理的に特定する場合について説明したが、これに限らない。例えば、記憶部400が、処理時間が異常である原因と、当該イベントを処理するプロセスに関するデータの種類とを対応付けて記憶する場合があってもよい。この場合、特定部403は、処理時間が異常である原因を直接的に特定し、記憶部400を参照して、対象プロセスに関するデータの種類を特定することになる。
【0082】
(情報処理システム200の機能的構成例)
次に、図5を用いて、情報処理システム200の機能的構成例について説明する。
【0083】
図5は、情報処理システム200の機能的構成例を示すブロック図である。図5において、情報処理装置100は、記憶領域510を有する。記憶領域510は、例えば、図3に示したメモリ302や記録媒体305などによって実現される。情報処理装置100は、ミドルウェアのプロセス520を実行する。情報処理装置100は、調査資料採取部530を含む。
【0084】
クライアント装置201は、ミドルウェア監視プログラム540を実行する。クライアント装置201は、ミドルウェア監視プログラム540によって、ミドルウェアの状態を監視する。クライアント装置201は、ミドルウェア監視プログラム540によって、監視したミドルウェアの状態を、利用者が参照可能に出力する。利用者は、ミドルウェアの状態を参照して、ミドルウェアにトラブルが発生したか否かを判断する。クライアント装置201は、ミドルウェアにトラブルが発生したと判断した利用者の操作入力に基づき、判定要求を、情報処理装置100に送信する。判定要求は、ミドルウェアの指定を含む。
【0085】
情報処理装置100は、判定要求を受信すると、調査資料採取部530によって、記憶領域510から、指定のミドルウェアに関する調査資料を採取し、クライアント装置201に送信する。クライアント装置201は、指定のミドルウェアに関する調査資料を受信する。クライアント装置201は、受信した調査資料を、利用者が参照可能に出力する。
【0086】
具体的には、記憶領域510は、イベント管理テーブル511を含む。イベント管理テーブル511は、イベントのイベント名と、イベントのイベント引数と、イベントの開始時点と、イベントの終了時点とを対応付けたレコードを記憶する。記憶領域510は、動作ログ512と、ダンプファイル513と、OSの設定ファイル514と、OSの動作ログ515と、トレース情報516とを記憶する。ダンプファイル513は、OSにより保存される。記憶領域510は、保存領域517を含む。
【0087】
プロセス520は、イベントを処理開始する際、当該イベントのイベント名と、当該イベントのイベント引数と、当該イベントの開始時点とを対応付けた、当該イベントの終了時点が空である、当該イベントに関するレコードを生成する。プロセス520は、生成したレコードを、イベント管理テーブル511に記憶する。プロセス520は、イベントを処理終了する際、イベント管理テーブル511のうち、当該イベントのイベント名と、当該イベントのイベント引数との組み合わせを含む、当該イベントに関するレコードを検索する。プロセス520は、検索したレコードに、イベントの終了時点を追加する。
【0088】
調査資料採取部530は、状態判定部531と、トレース情報採取部532と、ダンプファイル採取部533と、動作ログ採取部534と、OSファイル採取部535とを含む。状態判定部531は、プロセス520の状態を判定する。プロセス520の状態は、当該プロセス520が処理したイベントの処理時間が異常である原因を示す。状態判定部531は、プロセス520の状態に基づいて、採取する調査資料の種類を特定する。状態判定部531は、特定した結果に基づいて、トレース情報採取部532と、ダンプファイル採取部533と、動作ログ採取部534と、OSファイル採取部535とを制御し、調査資料を採取する。
【0089】
トレース情報採取部532は、状態判定部531の制御に従い、プロセス520のトレース情報を採取し、プロセス520と対応付けて保存領域517に保存する。ダンプファイル採取部533は、状態判定部531の制御に従い、プロセス520のダンプファイル513を採取し、プロセス520と対応付けて保存領域517に保存する。
【0090】
動作ログ採取部534は、状態判定部531の制御に従い、プロセス520の動作ログ512を採取し、プロセス520と対応付けて保存領域517に保存する。OSファイル採取部535は、状態判定部531の制御に従い、OSの設定ファイル514と、OSの動作ログ515とを採取し、プロセス520と対応付けて保存領域517に保存する。これにより、情報処理装置100は、ミドルウェアにトラブルが発生した原因を特定する際にかかる処理負担の低減を図ることができる。情報処理装置100は、例えば、ミドルウェアにトラブルが発生した原因を特定可能にする適切な調査資料を採取することができ、利用者が参照可能にすることができる。
【0091】
(情報処理装置100の動作例)
次に、図6図9を用いて、情報処理装置100の動作例について説明する。
【0092】
図6図9は、情報処理装置100の動作例を示す説明図である。まず、具体的には、図6および図7を用いて、プロセスが異常である場合にプロセスの動作に現れる特徴の一例について説明する。異常は、動作遅延、ループ、停止、または、異常終了などである。
【0093】
図6において、プロセスが正常である場合におけるプロセスの動作の時系列600を示す。時系列600に示すように、プロセスは、イベント待ち状態で、イベントが発生するまで待機する。プロセスが正常である場合、プロセスは、イベントが発生したことに応じて、処理1、システムコールA、処理2、システムコールB、処理3、および、システムコールAを順に、遅延なく、正常に実行し、イベント待ち状態に戻るものとする。
【0094】
図6において、プロセスが異常=動作遅延である場合におけるプロセスの動作の時系列610を示す。時系列610に示すように、システムコールAに動作遅延が発生し、プロセスが正常である場合に比べて、プロセスがシステムコールAを実行する際にかかる所要時間が増大してしまうことがある。これに対し、プロセスのトレース情報516が存在すれば、システムコールAの動作遅延が発生したことを特定可能にすることができると考えられる。従って、プロセスが異常=動作遅延である場合、プロセスのトレース情報516を採取することが好ましいと考えられる。
【0095】
図6において、プロセスが異常=ループである場合におけるプロセスの動作の時系列620を示す。時系列620に示すように、システムコールBにループが発生し、プロセスが処理終了しなくなる。これに対し、プロセスのトレース情報516が存在すれば、システムコールBのループが発生したことを特定可能にすることができると考えられる。従って、プロセスが異常=ループである場合、プロセスのトレース情報516を採取することが好ましいと考えられる。次に、図7の説明に移行する。
【0096】
図7において、プロセスが異常=停止である場合におけるプロセスの動作の時系列700を示す。時系列700に示すように、システムコールAの際にプロセスが停止し、プロセスが処理終了しなくなることがある。これに対し、プロセスのダンプファイル513が存在すれば、システムコールAの際にプロセスが停止したことを特定可能にすることができると考えられる。従って、プロセスが異常=停止である場合、プロセスのダンプファイル513を採取することが好ましいと考えられる。
【0097】
図7において、プロセスが異常=異常終了である場合におけるプロセスの動作の時系列710を示す。時系列710に示すように、システムコールAの際にプロセスが異常終了し、プロセスが処理終了してしまうことがある。これに対し、プロセスのダンプファイル513が存在すれば、システムコールAの際にプロセスが異常終了したことを特定可能にすることができると考えられる。従って、プロセスが異常=異常終了である場合、プロセスのダンプファイル513を採取することが好ましいと考えられる。
【0098】
このように、プロセスに発生した異常の種類によって、プロセスを含むミドルウェアに発生したトラブルの原因を調査する際に有用な調査資料の種類が異なる。調査資料は、例えば、トレース情報516、または、ダンプファイル513などである。従って、情報処理装置100は、プロセスに発生した異常の種類に応じて、プロセスを含むミドルウェアに発生したトラブルの原因を調査する際に有用な調査資料の種類を特定することが望まれる。次に、図8の説明に移行する。
【0099】
図8において、情報処理装置100が、イベント管理テーブル511=イベント管理テーブル800を記憶している場合について説明する。イベント管理テーブル800は、例えば、図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。イベント管理テーブル800は、イベント名と、イベント引数と、処理開始時点と、処理終了時点とのフィールドを有する。イベント管理テーブル800は、イベントごとに各フィールドに情報を設定することにより、イベント管理情報がレコード800-aとして記憶される。aは、任意の整数である。図8の例では、aは、1~nの任意の整数である。
【0100】
イベント名のフィールドには、ミドルウェアを形成するプロセスが処理したイベントのイベント名が設定される。イベント引数のフィールドには、上記イベントのイベント引数が設定される。処理開始時点のフィールドには、上記プロセスが上記イベントを処理開始した処理開始時点が設定される。処理終了時点のフィールドには、上記プロセスが上記イベントを処理終了した処理終了時点が設定される。
【0101】
情報処理装置100は、イベント管理テーブル800の直近のレコード800-nを読み出す。情報処理装置100は、イベント管理テーブル800のうち、直近のレコード800-nとイベント名およびイベント引数が一致する過去のレコード800-aを読み出す。情報処理装置100は、読み出した過去のレコード800-aにおける処理開始時点と処理終了時点との差分に対応する処理時間を算出し、処理時間の統計値を算出する。統計値は、例えば、最大値、最小値、平均値、中央値、または、最頻値などである。情報処理装置100は、算出した処理時間の統計値を、閾値に設定する。
【0102】
情報処理装置100は、直近のレコード800-nに、処理開始時点と、処理終了時点とのペアが記憶されているか否かを判定する。情報処理装置100は、処理開始時点と、処理終了時点とのペアが記憶されていれば、処理開始時点と、処理終了時点との差分に対応する処理時間を算出し、設定した閾値を超えるか否かを判定する。ここで、情報処理装置100は、算出した処理時間が設定した閾値を超えない場合、プロセスが正常であると特定する。このため、情報処理装置100は、調査資料を採取しなくてもよい。情報処理装置100は、プロセスが正常であることを示す通知を、利用者が参照可能に出力してもよい。
【0103】
一方で、情報処理装置100は、算出した処理時間が設定した閾値を超える場合、上述した時系列610と同様の状況であると判断し、プロセスが異常であり、プロセスの異常=動作遅延であると特定する。情報処理装置100は、プロセスの異常=動作遅延であるため、プロセスのトレース情報516を、採取する調査資料として特定する。情報処理装置100は、プロセスのトレース情報516を採取する。情報処理装置100は、プロセスのトレース情報516を、利用者が参照可能に出力する。
【0104】
これにより、情報処理装置100は、プロセスに発生した異常の種類によって、プロセスを含むミドルウェアに発生したトラブルの原因を調査する際に有用な調査資料を選別することができる。情報処理装置100は、利用者が、プロセスを含むミドルウェアに発生したトラブルの原因を調査し易くすることができる。次に、図9の説明に移行する。
【0105】
図9において、情報処理装置100が、イベント管理テーブル511=イベント管理テーブル900を記憶している場合について説明する。イベント管理テーブル900は、例えば、図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。イベント管理テーブル900は、イベント名と、イベント引数と、処理開始時点と、処理終了時点とのフィールドを有する。イベント管理テーブル900は、イベントごとに各フィールドに情報を設定することにより、イベント管理情報がレコード900-bとして記憶される。bは、任意の整数である。図9の例では、bは、1~nの任意の整数である。
【0106】
イベント名のフィールドには、ミドルウェアを形成するプロセスが処理したイベントのイベント名が設定される。イベント引数のフィールドには、上記イベントのイベント引数が設定される。処理開始時点のフィールドには、上記プロセスが上記イベントを処理開始した処理開始時点が設定される。処理終了時点のフィールドには、上記プロセスが上記イベントを処理終了した処理終了時点が設定される。
【0107】
情報処理装置100は、イベント管理テーブル900の直近のレコード900-nを読み出す。情報処理装置100は、イベント管理テーブル900のうち、直近のレコード900-nとイベント名およびイベント引数が一致する過去のレコード900-bを読み出す。情報処理装置100は、直近のレコード900-nとイベント名およびイベント引数が一致する過去のレコード900-bの数が比較的少ない場合、直近のレコード900-nとイベント名が一致する過去のレコード900-bを読み出してもよい。
【0108】
具体的には、システムのログまたはプロセスなどを監視するプロセスは、イベント名が同一であるが、日時およびプロセスIDなどに応じてイベント引数が異なる複数のイベントを処理することがある。複数のイベントは、イベント引数が異なっていても、処理内容は同一である。このため、情報処理装置100は、直近のレコード900-nとイベント名が一致する過去のレコード900-bを読み出すことが好ましい場合がある。
【0109】
情報処理装置100は、読み出した過去のレコード900-bにおける処理開始時点と処理終了時点との差分に対応する処理時間を算出し、処理時間の統計値を算出する。統計値は、例えば、最大値、最小値、平均値、中央値、または、最頻値などである。情報処理装置100は、算出した処理時間の統計値を、閾値に設定する。
【0110】
情報処理装置100は、直近のレコード900-nに、処理開始時点と、処理終了時点とのペアが記憶されているか否かを判定する。情報処理装置100は、処理終了時点が空であれば、処理開始時点と、現在時点との差分に対応する経過時間を算出し、設定した閾値を超えるか否かを判定する。ここで、情報処理装置100は、算出した経過時間が設定した閾値を超えない場合、プロセスが正常に処理終了する余地があると判断し、一定時間待機した後、再び経過時間を算出し、閾値と比較する。
【0111】
一方で、情報処理装置100は、算出した経過時間が設定した閾値を超える場合、プロセスが異常であり、プロセスの異常=ループ、停止、異常終了のいずれかであると判断する。情報処理装置100は、OSが管理するプロセスの状態を示す情報のうち、異常であると判断したプロセスの状態を示す情報を検索する。
【0112】
ここで、情報処理装置100は、プロセスの状態を示す情報が発見されなければ、上述した時系列710と同様の状況であると判断し、プロセスの異常=異常終了であると特定する。情報処理装置100は、プロセスの異常=異常終了であるため、OSによって保存されたプロセスのダンプファイル513を、採取する調査資料として特定する。情報処理装置100は、プロセスのダンプファイル513を採取する。情報処理装置100は、プロセスのダンプファイル513を、利用者が参照可能に出力する。
【0113】
これにより、情報処理装置100は、プロセスに発生した異常の種類によって、プロセスを含むミドルウェアに発生したトラブルの原因を調査する際に有用な調査資料を選別することができる。情報処理装置100は、利用者が、プロセスを含むミドルウェアに発生したトラブルの原因を調査し易くすることができる。
【0114】
また、情報処理装置100は、プロセスの状態を示す情報が発見された場合、プロセスの状態を示す情報が、停止を示していれば、上述した時系列700と同様の状況であると判断し、プロセスの異常=停止であると特定する。情報処理装置100は、プロセスの異常=停止であるため、OSによって保存されたプロセスのダンプファイル513を、採取する調査資料として特定する。情報処理装置100は、プロセスのダンプファイル513を採取する。情報処理装置100は、プロセスのダンプファイル513を、利用者が参照可能に出力する。
【0115】
これにより、情報処理装置100は、プロセスに発生した異常の種類によって、プロセスを含むミドルウェアに発生したトラブルの原因を調査する際に有用な調査資料を選別することができる。情報処理装置100は、利用者が、プロセスを含むミドルウェアに発生したトラブルの原因を調査し易くすることができる。
【0116】
また、情報処理装置100は、プロセスの状態を示す情報が発見された場合、プロセスの状態を示す情報が、停止を示さなければ、上述した時系列610または時系列620と同様の状況であると判断し、プロセスの異常=動作遅延またはループであると特定する。情報処理装置100は、プロセスの異常=動作遅延またはループであるため、OSによって保存されたプロセスのトレース情報516を、採取する調査資料として特定する。情報処理装置100は、プロセスのトレース情報516を採取する。情報処理装置100は、プロセスのトレース情報516を、利用者が参照可能に出力する。
【0117】
これにより、情報処理装置100は、プロセスに発生した異常の種類によって、プロセスを含むミドルウェアに発生したトラブルの原因を調査する際に有用な調査資料を選別することができる。情報処理装置100は、利用者が、プロセスを含むミドルウェアに発生したトラブルの原因を調査し易くすることができる。
【0118】
このように、情報処理装置100は、ミドルウェアを実行する環境に起因しミドルウェアにトラブルが発生した場合、トラブルの原因に合った適切な調査資料を採取可能にし、採取する調査資料の増大を抑制することができる。このため、情報処理装置100は、ミドルウェアを実行する環境にかかる処理負担および処理時間の低減を図ることができる。情報処理装置100は、ミドルウェアを実行する環境を利用する顧客などの業務に対する悪影響を抑制することができる。
【0119】
情報処理装置100は、ミドルウェアにトラブルが発生した原因を調査する運用担当者および調査担当者などにかかる作業負担および作業時間の低減を図ることができる。情報処理装置100は、ミドルウェアにトラブルが発生した原因を特定するまでにかかる所要時間の低減を図ることができ、トラブルを早期に解決し易くすることができる。
【0120】
(イベント処理手順)
次に、図10を用いて、情報処理装置100が実行する、イベント処理手順の一例について説明する。イベント処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0121】
図10は、イベント処理手順の一例を示すフローチャートである。情報処理装置100は、ミドルウェアを起動する(ステップS1001)。
【0122】
次に、情報処理装置100は、起動したミドルウェアのプロセスに対応するイベントが発生したことを検出する(ステップS1002)。そして、情報処理装置100は、イベントが発生したことを検出すると、イベント名と、イベント引数と、処理開始時点と、処理終了時点=空とを対応付けた、当該イベントに関するレコードを、イベント管理テーブル511に記憶する(ステップS1003)。
【0123】
次に、情報処理装置100は、プロセスによって、発生したイベントを処理する(ステップS1004)。そして、情報処理装置100は、プロセスによって、発生したイベントを処理終了すると、イベント管理テーブル511に記憶された、当該イベントに関するレコードに、処理終了時点を追加する(ステップS1005)。
【0124】
次に、情報処理装置100は、ミドルウェアを停止するか否かを判定する(ステップS1006)。ここで、ミドルウェアを停止しない場合(ステップS1006:No)、情報処理装置100は、ステップS1002の処理に戻る。一方で、ミドルウェアを停止する場合(ステップS1006:Yes)、情報処理装置100は、イベント処理を終了する。
【0125】
(採取制御処理手順)
次に、図11を用いて、情報処理装置100が実行する、採取制御処理手順の一例について説明する。採取制御処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0126】
図11は、採取制御処理手順の一例を示すフローチャートである。図11において、情報処理装置100は、採取指示を受け付ける(ステップS1101)。
【0127】
次に、情報処理装置100は、処理対象とするプロセスを選択する(ステップS1102)。そして、情報処理装置100は、選択したプロセスについて、図12に後述する状態判定処理を実行し、選択したプロセスの状態を特定する(ステップS1103)。
【0128】
次に、情報処理装置100は、選択したプロセスの状態が、動作遅延またはループであるか否かを判定する(ステップS1104)。ここで、動作遅延ではなく、ループでもない場合(ステップS1104:No)、情報処理装置100は、ステップS1106の処理に移行する。一方で、動作遅延またはループである場合(ステップS1104:Yes)、情報処理装置100は、ステップS1105の処理に移行する。
【0129】
ステップS1105では、情報処理装置100は、図14に後述する第1採取処理を実行し、調査資料を採取する(ステップS1105)。そして、情報処理装置100は、ステップS1110の処理に移行する。
【0130】
ステップS1106では、情報処理装置100は、選択したプロセスの状態が、停止であるか否かを判定する(ステップS1106)。ここで、停止ではない場合(ステップS1106:No)、情報処理装置100は、ステップS1108の処理に移行する。一方で、停止である場合(ステップS1106:Yes)、情報処理装置100は、ステップS1107の処理に移行する。
【0131】
ステップS1107では、情報処理装置100は、図15に後述する第2採取処理を実行し、調査資料を採取する(ステップS1107)。そして、情報処理装置100は、ステップS1110の処理に移行する。
【0132】
ステップS1108では、情報処理装置100は、選択したプロセスの状態が、異常終了であるか否かを判定する(ステップS1108)。ここで、異常終了ではない場合(ステップS1108:No)、情報処理装置100は、ステップS1110の処理に移行する。一方で、異常終了である場合(ステップS1108:Yes)、情報処理装置100は、ステップS1109の処理に移行する。
【0133】
ステップS1109では、情報処理装置100は、図16に後述する第3採取処理を実行し、調査資料を採取する(ステップS1109)。そして、情報処理装置100は、ステップS1110の処理に移行する。
【0134】
ステップS1110では、情報処理装置100は、すべてのプロセスを処理対象として選択したか否かを判定する(ステップS1110)。ここで、まだ選択していないプロセスがある場合(ステップS1110:No)、情報処理装置100は、ステップS1102の処理に戻る。一方で、すべてのプロセスを処理対象として選択した場合(ステップS1110:Yes)、情報処理装置100は、ステップS1111の処理に移行する。
【0135】
ステップS1111では、情報処理装置100は、OSの設定ファイル514と、OSの動作ログ515とを採取する(ステップS1111)。次に、情報処理装置100は、OSの設定ファイル514と、OSの動作ログ515と、採取した調査資料とを対応付けて、保存領域517に保存する(ステップS1112)。そして、情報処理装置100は、採取制御処理を終了する。
【0136】
(状態判定処理手順)
次に、図12および図13を用いて、情報処理装置100が実行する、状態判定処理手順の一例について説明する。状態判定処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0137】
図12および図13は、状態判定処理手順の一例を示すフローチャートである。図12において、情報処理装置100は、イベント管理テーブル511に記憶された、選択したプロセスに関するレコードのうち、直近のレコードを読み出す(ステップS1201)。
【0138】
次に、情報処理装置100は、読み出した直近のレコードとイベント名およびイベント引数が一致する過去のレコードに基づいて、閾値を算出する(ステップS1202)。そして、情報処理装置100は、直近のレコードに、処理開始時点と空ではない処理終了時点とが含まれるか否かを判定する(ステップS1203)。
【0139】
ここで、直近のレコードに、処理開始時点と空ではない処理終了時点とが含まれない場合(ステップS1203:No)、情報処理装置100は、図13のステップS1301の処理に移行する。一方で、直近のレコードに、処理開始時点と空ではない処理終了時点とが含まれる場合(ステップS1203:Yes)、情報処理装置100は、ステップS1204の処理に移行する。
【0140】
ステップS1204では、情報処理装置100は、処理開始時点から処理終了時点までの経過時間に対応する処理時間が、算出した閾値を超えるか否かを判定する(ステップS1204)。ここで、処理時間が閾値を超える場合(ステップS1204:Yes)、情報処理装置100は、ステップS1205の処理に移行する。一方で、処理時間が、算出した閾値を超えない場合(ステップS1204:No)、情報処理装置100は、ステップS1206の処理に移行する。
【0141】
ステップS1205では、情報処理装置100は、選択したプロセスの状態=動作遅延であると決定する(ステップS1205)。そして、情報処理装置100は、状態判定処理を終了する。
【0142】
ステップS1206では、情報処理装置100は、選択したプロセスの状態=正常であると決定する(ステップS1206)。そして、情報処理装置100は、状態判定処理を終了する。次に、図13の説明に移行する。
【0143】
図13において、情報処理装置100は、直近のレコードの処理開始時点から現在時点までの経過時間が閾値を超えるか否かを判定する(ステップS1301)。ここで、経過時間が閾値を超える場合(ステップS1301:Yes)、情報処理装置100は、ステップS1305の処理に移行する。一方で、経過時間が閾値を超えない場合(ステップS1301:No)、情報処理装置100は、ステップS1302の処理に移行する。
【0144】
ステップS1302では、情報処理装置100は、一定時間待機する(ステップS1302)。一定時間は、例えば、閾値より小さい時間である。一定時間は、例えば、閾値と、経過時間との差分以下の時間である。
【0145】
次に、情報処理装置100は、直近のレコードの処理終了時点が追加されたか否かを判定する(ステップS1303)。ここで、直近のレコードの処理終了時点が追加された場合(ステップS1303:Yes)、情報処理装置100は、ステップS1304の処理に移行する。一方で、直近のレコードの処理終了時点が追加されない場合(ステップS1303:No)、情報処理装置100は、ステップS1305の処理に移行する。
【0146】
ステップS1304では、情報処理装置100は、選択したプロセスの状態=正常であると決定する(ステップS1304)。そして、情報処理装置100は、状態判定処理を終了する。
【0147】
ステップS1305では、情報処理装置100は、OSが管理するプロセスの状態を示す情報を検索する(ステップS1305)。次に、情報処理装置100は、OSが管理するプロセスの状態を示す情報を発見したか否かを判定する(ステップS1306)。ここで、発見しない場合(ステップS1306:No)、情報処理装置100は、ステップS1307の処理に移行する。一方で、発見した場合(ステップS1306:Yes)、情報処理装置100は、ステップS1308の処理に移行する。
【0148】
ステップS1307では、情報処理装置100は、選択したプロセスの状態=異常終了であると決定する(ステップS1307)。そして、情報処理装置100は、状態判定処理を終了する。
【0149】
ステップS1308では、情報処理装置100は、プロセスの状態を示す情報が停止を示すか否かを判定する(ステップS1308)。ここで、停止を示す場合(ステップS1308:Yes)、情報処理装置100は、ステップS1309の処理に移行する。一方で、停止を示さない場合(ステップS1308:No)、情報処理装置100は、ステップS1310の処理に移行する。
【0150】
ステップS1309では、情報処理装置100は、選択したプロセスの状態=停止であると判定する(ステップS1309)。そして、情報処理装置100は、状態判定処理を終了する。
【0151】
ステップS1310では、情報処理装置100は、選択したプロセスの状態=動作遅延またはループであると決定する(ステップS1310)。そして、情報処理装置100は、状態判定処理を終了する。
【0152】
(第1採取処理手順)
次に、図14を用いて、情報処理装置100が実行する、第1採取処理手順の一例について説明する。第1採取処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0153】
図14は、第1採取処理手順の一例を示すフローチャートである。図14において、情報処理装置100は、プロセスのトレース情報516を採取し、保存領域517に保存する(ステップS1401)。次に、情報処理装置100は、プロセスの動作ログ512を採取し、保存領域517に保存する(ステップS1402)。そして、情報処理装置100は、第1採取処理を終了する。
【0154】
(第2採取処理手順)
次に、図15を用いて、情報処理装置100が実行する、第2採取処理手順の一例について説明する。第2採取処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0155】
図15は、第2採取処理手順の一例を示すフローチャートである。図15において、情報処理装置100は、プロセスのダンプファイル513を採取し、保存領域517に保存する(ステップS1501)。次に、情報処理装置100は、プロセスの動作ログ512を採取し、保存領域517に保存する(ステップS1502)。そして、情報処理装置100は、第2採取処理を終了する。
【0156】
(第3採取処理手順)
次に、図16を用いて、情報処理装置100が実行する、第3採取処理手順の一例について説明する。第3採取処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0157】
図16は、第3採取処理手順の一例を示すフローチャートである。図16において、情報処理装置100は、OSによって保存されたプロセスのダンプファイル513を採取し、保存領域517に保存する(ステップS1601)。次に、情報処理装置100は、プロセスの動作ログ512を採取し、保存領域517に保存する(ステップS1602)。そして、情報処理装置100は、第3採取処理を終了する。
【0158】
ここで、情報処理装置100は、図10図16の各フローチャートの一部ステップの処理の順序を入れ替えて実行してもよい。また、情報処理装置100は、図10図16の各フローチャートの一部ステップの処理を省略してもよい。
【0159】
以上説明したように、情報処理装置100によれば、トラブルが発生したミドルウェアを形成するプロセスが処理したイベントの開始時点と終了時点とが記憶される記憶部を有することができる。情報処理装置100によれば、記憶部を参照して、処理時間が異常である、ミドルウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出することができる。情報処理装置100によれば、いずれかのイベントを検出した場合に、いずれかのプロセスの状態に基づいて、検出したいずれかのイベントの処理時間が異常である原因に対応する、いずれかのプロセスに関するデータの種類を特定することができる。これにより、情報処理装置100は、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを採取可能にすることができる。情報処理装置100は、利用者にかかる作業負担および作業時間の低減を図ることができる。情報処理装置100は、ミドルウェアを実行する環境にかかる処理負担および処理時間の低減を図ることができる。
【0160】
情報処理装置100によれば、ミドルウェアを形成するプロセスに関するデータを採取可能な採取元から、特定した種類であるいずれかのプロセスに関するデータを採取して出力することができる。これにより、情報処理装置100は、利用者が、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを利用可能にすることができる。
【0161】
情報処理装置100によれば、記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、記憶部に終了時点が記憶されていない、ミドルウェアを形成する第1プロセスが処理した第1イベントを検出することができる。情報処理装置100によれば、第1イベントを検出した場合に、第1プロセスの状態を示す情報を取得することができなければ、種類として、第1プロセスのダンプファイルを特定することができる。これにより、情報処理装置100は、プロセスの異常=異常終了である場合について、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを採取することができる。
【0162】
情報処理装置100によれば、記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、記憶部に終了時点が記憶されていない、ミドルウェアを形成する第2プロセスが処理した第2イベントを検出することができる。情報処理装置100によれば、第2イベントを検出した場合に、取得した第2プロセスの状態を示す情報が停止を示していれば、種類として、第2プロセスのダンプファイルを特定することができる。これにより、情報処理装置100は、プロセスの異常=停止である場合について、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを採取することができる。
【0163】
情報処理装置100によれば、記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、記憶部に終了時点が記憶されていない、ミドルウェアを形成する第3プロセスが処理した第3イベントを検出することができる。情報処理装置100によれば、第3イベントを検出した場合に、取得した第3プロセスの状態を示す情報が停止を示していなければ、種類として、第3プロセスのトレース情報を特定することができる。これにより、情報処理装置100は、プロセスの異常=動作遅延またはループである場合について、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを採取することができる。
【0164】
情報処理装置100によれば、記憶部を参照して、開始時点と終了時点との差分に対応する処理時間が第2閾値以上である、ミドルウェアを形成する第4プロセスが処理した第4イベントを検出することができる。情報処理装置100によれば、第4イベントを検出した場合に、種類として、第4プロセスのトレース情報を特定することができる。これにより、情報処理装置100は、プロセスの異常=動作遅延である場合について、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを採取することができる。
【0165】
情報処理装置100によれば、記憶部に終了時点が記憶された過去のイベントの開始時点と終了時点との差分に対応する処理時間に基づいて、第1閾値を設定することができる。これにより、情報処理装置100は、第1閾値により、イベントの処理時間が異常であるか否かを精度よく判定可能にすることができる。
【0166】
情報処理装置100によれば、特定した種類を、検出したいずれかのイベントを処理したいずれかのプロセスに対応付けて出力することができる。これにより、情報処理装置100は、利用者が、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを把握可能にし、採取可能にすることができる。
【0167】
情報処理装置100によれば、いずれかのプロセスの動作ログを採取して出力することができる。これにより、情報処理装置100は、利用者が、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを利用可能にすることができる。
【0168】
情報処理装置100によれば、ミドルウェアが動作するOperating Systemの動作ログおよび設定ファイルを採取して出力することができる。これにより、情報処理装置100は、利用者が、ミドルウェアにトラブルが発生した原因を調査するために有用なデータを利用可能にすることができる。
【0169】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した情報処理プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した情報処理プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0170】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0171】
(付記1)トラブルが発生したソフトウェアを形成するプロセスが処理したイベントの開始時点と終了時点とが記憶される記憶部を参照して、処理時間が異常である、前記ソフトウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出し、
前記いずれかのイベントを検出した場合に、前記いずれかのプロセスの状態に基づいて、検出した前記いずれかのイベントの処理時間が異常である原因に対応する、前記いずれかのプロセスに関するデータの種類を特定する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【0172】
(付記2)前記ソフトウェアを形成するプロセスに関するデータを採取可能な採取元から、特定した前記種類である前記いずれかのプロセスに関するデータを採取して出力する、
処理を前記コンピュータに実行させることを特徴とする付記1に記載の情報処理プログラム。
【0173】
(付記3)前記検出する処理は、
前記記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、前記記憶部に終了時点が記憶されていない、前記ソフトウェアを形成する第1プロセスが処理した第1イベントを検出し、
前記特定する処理は、
前記第1イベントを検出した場合に、前記第1プロセスの状態を示す情報を取得することができなければ、前記種類として、前記第1プロセスのダンプファイルを特定する、ことを特徴とする付記1または2に記載の情報処理プログラム。
【0174】
(付記4)前記検出する処理は、
前記記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、前記記憶部に終了時点が記憶されていない、前記ソフトウェアを形成する第2プロセスが処理した第2イベントを検出し、
前記特定する処理は、
前記第2イベントを検出した場合に、取得した前記第2プロセスの状態を示す情報が停止を示していれば、前記種類として、前記第2プロセスのダンプファイルを特定する、ことを特徴とする付記1~3のいずれか一つに記載の情報処理プログラム。
【0175】
(付記5)前記検出する処理は、
前記記憶部に記憶された開始時点から経過した時間が第1閾値以上であり、かつ、前記記憶部に終了時点が記憶されていない、前記ソフトウェアを形成する第3プロセスが処理した第3イベントを検出し、
前記特定する処理は、
前記第3イベントを検出した場合に、取得した前記第3プロセスの状態を示す情報が停止を示していなければ、前記種類として、前記第3プロセスのトレース情報を特定する、ことを特徴とする付記1~4のいずれか一つに記載の情報処理プログラム。
【0176】
(付記6)前記検出する処理は、
前記記憶部を参照して、開始時点と終了時点との差分に対応する処理時間が第2閾値以上である、前記ソフトウェアを形成する第4プロセスが処理した第4イベントを検出し、
前記特定する処理は、
前記第4イベントを検出した場合に、前記種類として、前記第4プロセスのトレース情報を特定する、ことを特徴とする付記1~5のいずれか一つに記載の情報処理プログラム。
【0177】
(付記7)前記記憶部に終了時点が記憶された過去のイベントの開始時点と終了時点との差分に対応する処理時間に基づいて、前記第1閾値を設定する、
処理を前記コンピュータに実行させることを特徴とする付記3~5のいずれか一つに記載の情報処理プログラム。
【0178】
(付記8)特定した前記種類を、検出した前記いずれかのイベントを処理した前記いずれかのプロセスに対応付けて出力する、
処理を前記コンピュータに実行させることを特徴とする付記1~7のいずれか一つに記載の情報処理プログラム。
【0179】
(付記9)前記特定する処理は、
前記いずれかのプロセスの動作ログを採取して出力する、ことを特徴とする付記1~8のいずれか一つに記載の情報処理プログラム。
【0180】
(付記10)前記特定する処理は、
前記ソフトウェアが動作するOperating Systemの動作ログおよび設定ファイルを採取して出力する、ことを特徴とする付記1~9のいずれか一つに記載の情報処理プログラム。
【0181】
(付記11)トラブルが発生したソフトウェアを形成するプロセスが処理したイベントの開始時点と終了時点とが記憶される記憶部を参照して、処理時間が異常である、前記ソフトウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出し、
前記いずれかのイベントを検出した場合に、前記いずれかのプロセスの状態に基づいて、検出した前記いずれかのイベントの処理時間が異常である原因に対応する、前記いずれかのプロセスに関するデータの種類を特定する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【0182】
(付記12)トラブルが発生したソフトウェアを形成するプロセスが処理したイベントの開始時点と終了時点とが記憶される記憶部を参照して、処理時間が異常である、前記ソフトウェアを形成するいずれかのプロセスが処理したいずれかのイベントを検出し、
前記いずれかのイベントを検出した場合に、前記いずれかのプロセスの状態に基づいて、検出した前記いずれかのイベントの処理時間が異常である原因に対応する、前記いずれかのプロセスに関するデータの種類を特定する、
ことを特徴とする情報処理装置。
【符号の説明】
【0183】
100 情報処理装置
101,400 記憶部
110 ミドルウェア
111,520 プロセス
112 イベント
200 情報処理システム
201 クライアント装置
210 ネットワーク
300 バス
301 CPU
302 メモリ
303 ネットワークI/F
304 記録媒体I/F
305 記録媒体
401 取得部
402 判定部
403 特定部
404 出力部
510 記憶領域
511,800,900 イベント管理テーブル
512,515 動作ログ
513 ダンプファイル
514 設定ファイル
516 トレース情報
517 保存領域
530 調査資料採取部
531 状態判定部
532 トレース情報採取部
533 ダンプファイル採取部
534 動作ログ採取部
535 OSファイル採取部
540 ミドルウェア監視プログラム
600,610,620,700,710 時系列
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16