JP6428005B2 - 情報処理装置,情報処理方法及び情報処理プログラム - Google Patents

情報処理装置,情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP6428005B2
JP6428005B2 JP2014142131A JP2014142131A JP6428005B2 JP 6428005 B2 JP6428005 B2 JP 6428005B2 JP 2014142131 A JP2014142131 A JP 2014142131A JP 2014142131 A JP2014142131 A JP 2014142131A JP 6428005 B2 JP6428005 B2 JP 6428005B2
Authority
JP
Japan
Prior art keywords
information
trace information
monitoring target
trace
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014142131A
Other languages
English (en)
Other versions
JP2016018470A (ja
Inventor
剛史 鳥野
剛史 鳥野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014142131A priority Critical patent/JP6428005B2/ja
Priority to US14/755,564 priority patent/US9658909B2/en
Publication of JP2016018470A publication Critical patent/JP2016018470A/ja
Application granted granted Critical
Publication of JP6428005B2 publication Critical patent/JP6428005B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)

Description

本発明は,情報処理装置,情報処理方法及び情報処理プログラムに関する。
例えば,プログラムが動作するコンピュータにおいて,プログラムの動作状態やプログラムによる資源(メモリやディスク等)の使用状態に関するトレース情報を取得する場合がある。このトレース情報は,例えば,動作中のプログラムが所定の処理(例えば,資源の獲得や解放等)を行う毎に取得される。そして,運用管理者は,例えば,プログラムの処理結果に異常があった場合に,取得したトレース情報を参照することにより,異常の原因究明(異常が発生したプログラムの特定等)を行うことが可能になる。
具体的に,例えば,コンピュータにおいて複数のプログラムが並行して動作する場合,メモリ等の資源が複数のプログラムによって同時に使用される場合がある。この場合,運用管理者は,トレース情報を参照することにより,例えば,資源を使用しているプログラムの数(以下,カウンタ情報とも呼ぶ)を把握することができる。これにより,運用管理者は,例えば,全てのプログラムの処理が終了しているにも関わらず,カウンタ情報が資源を使用しているプログラムが存在することを示している場合,バグ等によって資源の解放が行われていないプログラムが存在すること(以下,これを資源の解放漏れとも呼ぶ)を検知することができる。(例えば,特許文献1参照)。
特開平1−320550号公報
運用管理者は,プログラムによる資源の解放漏れ等の異常が発生した場合,利用者へのサービスに影響が及ぶことを防ぐために,迅速に原因究明を行う必要がある。しかしながら,取得したトレース情報の中には,プログラムが正常に動作しているときに取得されたトレース情報が多く存在する。そのため,運用管理者は,異常の原因究明を行う際に,異常に関する情報を含むトレース情報を特定するまでに多大な時間を要する場合がある。また,トレース情報を記憶する記憶媒体の容量は有限であるため,取得したトレース情報を十分な時間記憶しておくことができない場合がある。
そこで,一つの実施の形態の目的は,調査に用いるトレース情報を効率的に取得する情報処理装置,情報処理方法及び情報処理プログラムを提供することにある。
実施の形態の一つの側面によれば,監視対象の実行状態に関するトレース情報と,前記監視対象が使用可能な特定の資源を使用している前記監視対象の数である判定値とを記憶する記憶部と,
前記監視対象が前記特定の資源の使用を開始したときに前記判定値を所定の値だけ増加させ,前記監視対象が前記特定の資源の使用を終了したときに前記判定値を前記所定の値だけ減少させ,前記判定値に基づいて全ての前記監視対象が前記特定の資源の使用をしていないことを検知した場合に,前記記憶部に記憶したトレース情報を削除する処理部と,を有する。
一つの側面によれば,調査に用いるトレース情報を効率的に取得する。
監視対象装置の全体構成を示す図である。 監視対象装置のハードウエア構成を示す図である。 図2の監視対象装置の機能ブロック図である。 第1の実施の形態におけるトレース情報管理処理の概略を示すフローチャート図である。 第1の実施の形態におけるトレース情報管理処理の概略を示すフローチャート図である。 第1の実施の形態におけるトレース情報管理処理の概略を示すフローチャート図である。 第1の実施の形態におけるトレース情報管理処理の概略を説明する図である。 第1の実施の形態におけるトレース情報管理処理の詳細を示すフローチャート図である。 第1の実施の形態におけるトレース情報管理処理の詳細を示すフローチャート図である。 第1の実施の形態におけるトレース情報管理処理の詳細を示すフローチャート図である。 第1の実施の形態におけるトレース情報管理処理の詳細を説明する図である。 第1の実施の形態におけるトレース情報管理処理の詳細を説明する図である。 第1の実施の形態におけるトレース情報管理処理の詳細を説明する図である。 第1の実施の形態におけるトレース情報管理処理の詳細を説明する図である。 第2の実施の形態におけるトレース情報管理処理を説明するフローチャート図である。 第2の実施の形態におけるトレース情報管理処理を説明する図である。 第3の実施の形態におけるトレース情報管理処理を説明するフローチャート図である。 第3の実施の形態におけるトレース情報管理処理を説明する図である。 第3の実施の形態におけるトレース情報管理処理を説明する図である。 トレース情報管理終了処理を説明するフローチャート図である。 監視対象プログラムが動作する物理マシンが複数に分かれている場合を説明する図である。
[監視対象装置の構成]
図1は,監視対象装置の全体構成を示す図である。図1に示す監視対象装置10(以下,情報処理装置10とも呼ぶ)は,物理マシンであり,例えば,監視対象プログラム1(以下,単に監視対象1とも呼ぶ)と,監視対象プログラム1を監視するための監視プログラム3とが動作する。また,図1に示す監視対象装置10内には,監視対象プログラム1が使用可能な資源(例えば,メモリ等)である共有資源2(以下,資源2または特定の資源2とも呼ぶ)と,監視対象プログラム1の実行状態に関するトレース情報を記憶する記憶媒体4とが設けられている。
監視対象装置10は,例えば,利用者にサービスを提供する業務システムが構築される物理マシンである。そして,監視対象プログラム1は,例えば,監視対象装置10内のCPUで動作することにより,利用者に対するサービスの提供を実現するために各処理を行う。また,各監視対象プログラム1は,例えば,監視対象装置10上で動作する他の監視対象プログラムと連携して処理を行うものであってよい。具体的に,各監視対象プログラム1は,監視対象装置10上で動作する他の監視対象プログラムを呼び出して,その監視対象プログラムに処理を実行させるものであってもよい。なお,図1の例においては,監視対象装置10上において3つの監視対象プログラム1が動作する例について説明するが,これ以外の数の監視対象プログラム1が動作するものであってもよい。
共有資源2は,例えば,監視対象プログラム1がアクセス可能なメモリやディスク等である。具体的に,例えば,各監視対象プログラム1は,必要に応じて共有資源2にアクセスし,その共有資源の獲得処理または解放処理を行う。
監視プログラム3は,例えば,監視対象装置10内のCPUで動作することにより,監視対象プログラム1の実行状態に関するトレース情報を取得する。具体的に,監視プログラム3は,例えば,監視対象プログラム1が共有資源2の獲得処理または解放処理が行ったときに,トレース情報を取得するものであってよい。
記憶媒体4は,監視プログラム3が取得したトレース情報を記憶する。なお,図1の例における記憶媒体4は,監視対象装置10の内部に設けられているが,外部に設けられたものであってもよい。
なお,図1に示す各監視対象プログラム1は,プログラムを順次動作させるジョブを構成するものであり,ある処理を行うために連携して動作するものであってもよい。この場合,監視プログラム3は,ジョブ単位に監視を行うものであってよい。
[トレース情報の管理]
運用管理者は,監視対象装置10において異常が発生した場合に,図1の例においては記憶媒体4に記憶されたトレース情報を参照することにより,異常が発生したプログラムの特定等の原因究明を行う。ここで,例えば,発生した異常がプログラムによる共有資源2の解放漏れであった場合,共有資源2の不足が発生し,他のプログラムの実行を妨げる場合がある。そのため,運用管理者は,発生した異常の内容によっては,発生した異常の原因究明を可能な限り迅速に行い,必要な対応を行う必要がある。
しかし,記憶媒体4に記憶されたトレース情報の中には,プログラムが正常に動作しているときに記憶されたトレース情報が多く存在する。そのため,運用管理者がトレース情報を参照する場合,異常に関する情報を含むトレース情報を特定するまでに多大な時間を要する場合がある。すなわち,運用管理者は,多くのトレース情報を記憶していたことにより,トレース情報による異常の原因究明を効率的に行うことができない場合がある。
また,トレース情報を記憶する記憶媒体4の容量は有限である。そのため,記憶媒体4に空き容量がなくなった場合に,例えば,記憶時期が古いトレース情報から削除する等の対応を行う必要がある。しかし,記憶するトレース情報の量が多い場合,トレース情報を記憶してから削除するまでの時間が十分に確保できない場合がある。そのため,運用管理者は,トレース情報の一部が既に消去されているために,異常発生時において必要な調査を行うことができない可能性がある。
そこで,本実施の形態では,共有資源2を使用している監視対象プログラム1の数に基づいて,共有資源2が使用されているか否かについて検知する。そして,共有資源2が使用されていないことを検知した場合に,記憶されている監視対象プログラム1の実行状態に関するトレース情報を削除する。これにより,監視対象プログラム1による共有資源2の解放漏れが発生した場合に,トレース情報に基づく調査の時間を短縮させることができる。
[監視対象装置のハードウエア構成]
次に,監視対象装置10の構成について説明する。図2は,監視対象装置のハードウエア構成を示す図である。監視対象装置10は,プロセッサであるCPU101と,メモリ102と,外部インターフェース(I/Oユニット)103と,記憶媒体104とを有する。各部は,バス105を介して互いに接続される。記憶媒体104は,例えば,記憶媒体104内のプログラム格納領域に,トレース情報の管理を行うための処理(以下,トレース情報管理処理とも呼ぶ)を行うためのプログラム110(以下,トレース情報管理プログラムとも呼ぶ)を記憶する。CPU101は,図2に示すように,プログラム110の実行時に,プログラム110を記憶媒体104からメモリ102にロードし,プログラム110と協働してトレース情報管理処理を行う。また,記憶媒体104は,例えば,トレース情報管理処理を行う際に用いられる情報を記憶する情報格納領域130(以下,記憶部130とも呼ぶ)を有する。なお,プログラム110は,図1における監視プログラム3に対応する。また,情報格納領域130は,例えば,図1における記憶媒体4として機能する。
[監視対象装置のソフトウエア構成]
図3は,図2の監視対象装置の機能ブロック図である。CPU101は,プログラム110と協働することにより,例えば,トレース情報作成部111と,トレース情報記憶部112と,資源監視部113と,カウンタ情報記憶部114と,実行状態判定部115と,トレース情報削除部116として動作する。また,CPU101は,プログラムと協働することにより,取得時間情報記憶部117と,識別情報記憶部118と,トレース情報出力部119と,エラー出力部120として動作する。具体的に,これらの機能は,監視対象装置10のオペレーティングシステム(以下,OS)に実装された機能の一部であってよい。なお,以下,実行状態判定部115とトレース情報削除部116とを合わせて処理部とも呼ぶ。また,情報格納領域130には,例えば,トレース情報131と,カウンタ情報132と,取得時間情報133と,識別情報134とが記憶されている。
トレース情報作成部111は,例えば,監視対象プログラム1の実行状態に関するトレース情報131を作成する。トレース情報作成部111は,例えば,監視対象プログラム1が所定の動作をした場合に,これを検知してトレース情報131を作成する。この所定の動作は,例えば,監視対象プログラム1による共有資源2の一部の領域の獲得や解放であってよい。
トレース情報記憶部112は,例えば,トレース情報作成部111がトレース情報131を作成したことに応答して,作成されたトレース情報131の記憶を行う。具体的に,トレース情報記憶部112は,例えば,情報格納領域130にトレース情報131を記憶するものであってよい。なお,トレース情報131は,図1におけるトレース情報に対応する。
資源監視部113は,例えば,所定のタイミングにおいて共有資源2の監視を行う。例えば,資源監視部113は,共有資源2を獲得している監視対象プログラム1の数(監視対象プログラム1の処理の数)を検知する。そして,資源監視部113は,例えば,後述するカウンタ情報記憶部114に,検知した監視対象プログラム1の数に関する情報(以下,カウンタ情報132とも呼ぶ)を情報格納領域130に記憶するための指示を行う。なお,所定のタイミングは,例えば,10(ms)毎等,定期的なタイミングであってよい。
カウンタ情報記憶部114は,例えば,資源監視部113からカウンタ情報132を記憶する指示を受けた時に,情報格納領域130にカウンタ情報132を記憶する。具体的に,カウンタ情報記憶部114は,例えば,資源監視部113が共有資源2を新たに獲得した監視対象プログラム1の存在を検知した場合に,カウンタ情報132が示す値(以下,判定値とも呼ぶ)を所定の値(例えば,1)だけ増加させる。また,カウンタ情報記憶部114は,例えば,資源監視部113が共有資源2を解放した監視対象プログラム1の存在を検知した場合に,判定値を所定の値(例えば,1)だけ減少させる。なお,カウンタ情報記憶部114は,例えば,情報格納領域130に既にカウンタ情報132が記憶されている場合には,記憶されているカウンタ情報132に上書きする形で新たなカウンタ情報132を記憶するものであってよい。
実行状態判定部115は,例えば,判定値に基づき,全ての監視対象プログラム1が共有資源2を使用していないこと(解放していること)を検知する。具体的に,実行状態判定部115は,例えば,判定値が0である場合,共有資源2を獲得している監視対象プログラム1は存在しないと判断し,これを検知するものであってよい。なお,実行状態判定部115は,例えば,監視対象プログラム1が他のプログラムの呼び出しを行った場合や,監視対象プログラム1が含まれるジョブの処理が終了した場合に,判定値に基づく検知を行うものであってよい。
トレース情報削除部116は,例えば,実行状態判定部115が全ての監視対象プログラム1が共有資源2を解放していることを検知したときに,情報格納領域130に記憶されているトレース情報131を削除する。
取得時間情報記憶部117は,例えば,トレース情報記憶部112がトレース情報131を記憶する際に,そのトレース情報131が作成された時間に関する情報である取得時間情報133を情報格納領域130に記憶する。
識別情報記憶部118は,例えば,実行状態判定部115が全ての監視対象プログラム1が共有資源2を解放していると判定した場合,その判定時に記憶されたトレース情報131を識別する識別情報134を記憶する。
トレース情報出力部119は,例えば,所定の条件に合致した場合に,例えば,情報格納領域130に記憶されたトレース情報131を外部の記憶媒体に記憶する。所定の条件は,例えば,ジョブの処理が終了したにもかかわらず,全ての監視対象プログラム1が共有資源2を解放していない場合であってよい。
エラー出力部120は,例えば,情報格納領域130に記憶されている判定値が異常値(例えば,0を下回る値)である場合に,エラーを出力する。なお,エラー出力部120は,エラーを出力する場合に,トレース情報削除部116にトレース情報131の削除を中止するように指示を行うものであってもよい。
[第1の実施の形態]
次に,第1の実施の形態について説明する。図4から図6は,第1の実施の形態におけるトレース情報管理処理の概略を示すフローチャート図である。また,図7は,第1の実施の形態におけるトレース情報管理処理の概略を説明する図である。図7を参照しながら図4から図6のトレース情報管理処理の概略について説明する。なお,トレース情報管理処理のうちトレース情報を記憶する処理をトレース情報記憶処理とも呼ぶ。また,トレース情報管理処理のうちトレース情報を削除する処理をトレース情報削除処理とも呼ぶ。以下,トレース情報記憶処理について説明する。
[トレース情報記憶処理]
図4は,監視対象プログラム1が共有資源2の使用を開始する場合のトレース情報記憶処理に関するフローチャートであり,図5は,監視対象プログラム1が共有資源2の使用を終了する場合のトレース情報記憶処理に関するフローチャートである。なお,以下,トレース情報131は,監視対象プログラム1が共有資源2の使用を開始したとき,または,共有資源2の使用を終了したときに,トレース情報作成部111により作成されるものとして説明を行う。
図4に示すトレース情報記憶処理において,初めに,監視対象装置10は,例えば,監視対象プログラム1による共有資源2の使用開始を検知するまで待機する(S11のNO)。すなわち,監視対象装置10は,例えば,監視対象プログラム1による共有資源2の獲得を検知するまで待機する。そして,監視対象装置10が監視対象プログラム1による共有資源2の使用開始を検知した場合(S11のYES),監視対象装置10は,例えば,情報格納領域130に記憶されたカウンタ情報132を所定の値(例えば,1)だけ増加させる(S12)。さらに,この場合,監視対象装置10は,例えば,共有資源2の使用を開始した監視対象プログラム1の実行状態に関するトレース情報131を作成する(S13)。そして,監視対象装置10は,例えば,作成したトレース情報131を情報格納領域130に記憶する(S14)。
すなわち,監視対象装置10は,カウンタ情報132の記憶を行うことにより,共有資源2を使用している監視対象プログラム1の数の管理を行う。これにより,後述するように,監視対象装置10は,カウンタ情報132が示す値に基づいて,情報格納領域130に記憶したトレース情報131を削除するか否かの判断を行うことができる。
次に,監視対象プログラム1が共有資源2の使用を終了する場合のトレース情報記憶処理を説明する。図5に示すトレース情報記憶処理において,監視対象装置10は,例えば,監視対象プログラム1による共有資源2の使用終了を検知するまで待機する(S21のNO)。すなわち,監視対象装置10は,例えば,監視対象プログラム1による共有資源2の解放を検知するまで待機する。そして,監視対象装置10が監視対象プログラム1による共有資源2の使用終了を検知した場合(S21のYES),監視対象装置10は,例えば,情報格納領域130に記憶されたカウンタ情報132を所定の値だけ減少させる(S22)。このカウンタ情報132を減少させる所定の値は,例えば,共有資源2が獲得された場合にカウンタ情報132を増加させる値と同じ値である必要がある。さらに,監視対象装置10は,例えば,共有資源2の使用を終了した監視対象プログラム1の実行状態に関するトレース情報131を作成する(S23)。そして,監視対象装置10は,例えば,作成したトレース情報131を情報格納領域130に記憶する(S24)。
すなわち,監視対象装置10は,例えば,監視対象プログラム1によって共有資源2が獲得されたことを検知した場合,カウンタ情報132を増加させる。そして,監視対象装置10は,監視対象プログラム1によって共有資源2が解放されたことを検知した場合,共有資源2が獲得されたときにカウンタ情報132を増加させた分だけ,カウンタ情報132を減少させる。これにより,後述するように,監視対象装置10は,カウンタ情報が0である場合に,全ての監視対象プログラム1が共有資源2を解放している状態であると判定することができる。
[トレース情報削除処理]
次に,トレース情報削除処理について説明する。図6は,トレース情報削除処理に関するフローチャートである。図6に示すトレース情報削除処理において,初めに,監視対象装置10は,例えば,全ての監視対象プログラム1による共有資源2の使用終了を検知するまで待機する(S31のNO)。すなわち,監視対象装置10は,例えば,全ての監視対象プログラム1による共有資源2の解放を検知するまで待機する。具体的に,監視対象装置10は,例えば,定期的に,情報格納領域130に記憶されたカウンタ情報132の確認を行い,カウンタ情報132が示す値が0であるときに,全ての監視対象プログラム1が共有資源2を解放したと判定するものであってよい。
そして,監視対象装置10が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合(S31のYES),監視対象装置10は,図7に示すように,例えば,情報格納領域130に記憶されたトレース情報131を削除する(S32)。監視対象装置10が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合,共有資源2を獲得した全ての監視対象プログラム1は,共有資源2を解放していることになる。そのため,監視対象装置10は,この場合,監視対象プログラム1による資源の解放漏れが発生していないと判定する。そして,監視対象装置10は,この場合,情報格納領域130に記憶されたトレース情報131を削除する。
すなわち,監視対象装置10は,全ての監視対象プログラム1が共有資源2を使用していない場合,共有資源2の解放漏れは発生していないと判定し,現在記憶されているトレース情報131には,異常発生時に確認すべき情報が含まれていないと判断する。そして,この場合,監視対象装置10は,例えば,情報格納領域130に記憶されている全てのトレース情報131の削除を行う。一方,監視対象装置10は,共有資源2を使用している監視対象プログラム1が存在する場合,カウンタ情報132に基づいて資源の解放漏れが発生しているか否かを判定することはできない。そのため,監視対象装置10は,この場合には,トレース情報131の削除を行わない。
このように,第1の実施の形態によれば,監視対象装置10は,監視対象1の実行状態に関するトレース情報131と,監視対象1が使用可能な共有資源2を使用している監視対象1の数である判定値とを記憶する記憶部130を有する。また,監視対象装置10は,監視対象1が共有資源2の使用を開始したときに,判定値を所定の値だけ増加させ,監視対象1が共有資源2の使用を終了したときに判定値を所定の値だけ減少させる。そして,監視対象装置10は,判定値に基づいて全ての監視対象1が共有資源2の使用をしていないことを検知した場合に,記憶部130に記憶したトレース情報131を削除する処理部を有する。これにより,監視対象装置10は,全ての共有資源2が監視対象1によって使用をしていないことを検知した場合に,共有資源2の解放漏れが発生した際に検証する必要はないトレース情報131を削除することができる。そのため,監視対象装置10は,共有資源2の解放漏れの発生時における調査に要する時間を短縮させることが可能になる。
なお,図4及び図5に示すトレース情報記憶処理は,例えば,OSの他の機能が共有資源2の獲得を検出した場合に,これを検知して処理を開始するものであってもよい。また,図6に示すトレース情報削除処理は,例えば,OSの他の機能が共有資源2の解放を検出した場合に,これを検知して処理を開始するものであってもよい。
[第1の実施の形態の詳細]
次に,第1の実施の形態の詳細について説明する。図8から図10は,第1の実施の形態におけるトレース情報管理処理の詳細を説明するフローチャート図である。また,図11から図14は,第1の実施の形態におけるトレース情報管理処理の詳細を説明する図である。図11から図14を参照しながら,図8から図10のトレース情報管理処理の詳細を説明する。
[共有資源獲得時のトレース情報記憶処理の詳細]
初めに,共有資源2の獲得が行われた場合のトレース情報記憶処理の詳細について説明する。図8に示すように,監視対象装置10の資源監視部113は,例えば,監視対象プログラム1による共有資源2の使用開始を検知するまで待機する(S41のNO)。すなわち,資源監視部113は,例えば,監視対象プログラム1による共有資源2の獲得を検知するまで待機する。
そして,資源監視部113が監視対象プログラム1による共有資源2の使用開始を検知した場合(S41のYES),資源監視部113は,例えば,前回,カウンタ情報132を更新した際のカウンタ情報132(以下,前回のカウンタ情報132とも呼ぶ)の値を取得する。さらに,資源監視部113は,例えば,前回のカウンタ情報132と現在のカウンタ情報132の値とを比較する(S42)。その結果,前回のカウンタ情報132と,現在のカウンタ情報132の値とが同じである場合(S42のYES),カウンタ情報記憶部114は,例えば,情報格納領域130に記憶されたカウンタ情報132の値を所定の値(例えば,1)だけ増加させる(S43)。
すなわち,共有資源2の獲得または解放の発生に基づいてカウンタ情報132の値を増加または減少した後,次に,共有資源2の獲得または解放の発生に基づいてカウンタ情報132の値を増加または減少する前に,カウンタ情報132の値が更新される可能性がある。具体的に,例えば,他のプログラムによるメモリの破壊等,共有資源2の獲得または解放以外の要因(以下,外的要因とも呼ぶ)によって,カウンタ情報132が更新された場合がこれに該当する。そして,この場合,カウンタ情報132は,共有資源2を使用している監視対象プログラム1の数に関する情報を正しく記憶していないことになる。そのため,資源監視部113は,前回のカウンタ情報132の値と,現在のカウンタ情報132の値とが同じであることを確認することにより,カウンタ情報132が外的要因によって更新されていないことを確認する。
そして,トレース情報作成部111は,カウンタ情報記憶部114がカウンタ情報132を増加させた後(S43),例えば,共有資源2の使用を開始した監視対象プログラム1の実行状態に関するトレース情報131を取得する(S44)。そして,トレース情報記憶部112は,例えば,トレース情報作成部111が作成したトレース情報131を情報格納領域130に記憶する(S45)。
なお,前回のカウンタ情報132は,例えば,情報格納領域130に記憶済のトレース情報131を参照することにより取得するものであってよい。すなわち,トレース情報記憶部112は,トレース情報131に各トレース情報131を作成したときのカウンタ情報132を含める形で記憶する。そして,資源監視部113は,監視対象プログラム1が共有資源2の使用を開始したことを検知したときに(S41のYES),情報格納領域130に記憶されているトレース情報131を参照して,前回のカウンタ情報132を取得するものであってよい。トレース情報131の詳細については後述する。
一方,前回のカウンタ情報132と,現在のカウンタ情報132の値とが異なる場合(S42のNO),監視対象装置10のエラー出力部120は,例えば,運用管理者にエラーを通知する(S46)。すなわち,この場合,エラー出力部120は,外的要因によってカウンタ情報132が更新されていると判断し,運用管理者にその旨を通知する。そして,エラー出力部120がエラーを出力した場合(S46),監視対象装置10のトレース情報出力部119は,例えば,情報格納領域130に記憶されているトレース情報131を出力する(S47)。この場合,トレース情報出力部119は,例えば,トレース情報131をトレース情報削除部116によって削除されることがない他の記憶媒体等に記憶させるものであってよい。すなわち,トレース情報出力部119は,この場合,後に運用管理者がその原因究明を行うことができるように,情報格納領域130に記憶されているトレース情報131の他の記憶媒体等に出力する。
さらに,エラー出力部120がエラーを出力した場合(S46),監視対象装置10のトレース情報削除部116は,例えば,情報格納領域130に記憶された全てのトレース情報131を削除するものであってよい(S48)。
なお,エラー出力部120がエラーを出力した場合(S46),エラー出力部120は,例えば,図8に示すように,トレース情報管理処理を一度終了させる。すなわち,エラーが発生した場合,その後作成されるトレース情報131も発生したエラーの影響を受けている可能性がある。そのため,監視対象装置10は,この場合,トレース情報管理処理を終了させるものであってよい。そして,運用管理者は,エラーの原因究明及び必要な対応が終了したときに,トレース情報管理処理を再度実行させるものであってよい。
[共有資源解放時のトレース情報記憶処理の詳細]
次に,共有資源2の解放が行われた場合のトレース情報記憶処理の詳細について説明する。図9に示すように,資源監視部113は,例えば,監視対象プログラム1による共有資源2の使用終了を検知するまで待機する(S51のNO)。すなわち,資源監視部113は,例えば,監視対象プログラム1による共有資源2の解放を検知するまで待機する。
そして,資源監視部113が監視対象プログラム1による共有資源2の使用終了を検知した場合(S51のYES),資源監視部113は,例えば,図8の場合と同様に,前回のカウンタ情報132の値と,現在のカウンタ情報132の値とを比較する(S52)。前回のカウンタ情報132の値と,現在のカウンタ情報132の値とを比較については図8で説明したため,ここでは省略する。そして,前回のカウンタ情報132と,現在のカウンタ情報132の値とが同じである場合(S52のYES),カウンタ情報記憶部114は,例えば,情報格納領域130に記憶されたカウンタ情報132を所定の値だけ減少させる(S53)。
一方,前回更新時のカウンタ情報132と,現在のカウンタ情報132の値とが異なる場合(S52のNO),エラー出力部120は,例えば,運用管理者にエラーを通知する(S57)。また,この場合,トレース情報出力部119は,例えば,トレース情報131の出力を行うものであってもよく(S58),トレース情報削除部116は,トレース情報131の削除を行うものであってもよい(S59)。エラー出力部120がエラー出力した場合については図8で説明したため,ここでは詳細な説明を省略する。
次に,カウンタ情報記憶部114は,カウンタ情報132の値を減少させた後(S53),カウンタ情報132が負の数であるか否かを確認する(S54)。そして,カウンタ情報132が負の数であった場合(S54のNO),エラー出力部120は,例えば,エラーを出力する(S57)。すなわち,カウンタ情報記憶部114は,共有資源2が獲得されたことを資源監視部113が検知した場合にカウンタ情報132を増加させ,共有資源2が解放されたことを資源監視部113が検知した場合にカウンタ情報132を減少させる。そのため,カウンタ情報132が示す値は,通常運用時においては常に0以上の値になる。したがって,エラー出力部120は,例えば,図9に示すように,カウンタ情報132が負の数になっている場合,プログラムに内在するバグ等に起因して異常が発生しているものと判定し,エラーを出力する。
そして,トレース情報作成部111は,図8で説明した場合と同様に,例えば,共有資源2の使用を終了した監視対象プログラム1の実行状態に関するトレース情報131を作成する(S55)。そして,トレース情報記憶部112は,例えば,トレース情報作成部111が作成したトレース情報131を情報格納領域130に記憶する(S56)。
[トレース情報削除処理の詳細]
次に,トレース情報削除処理の詳細について説明する。図10において,初めに,監視対象装置10の実行状態判定部115は,例えば,実行状態判定を行うべきタイミングになるまで待機する(S61のNO)。この実行状態判定を行うタイミングは,例えば,監視対象プログラム1が他のプログラムを呼び出した場合や,監視対象プログラム1を含むジョブの処理が終了した場合であってよい。そして,実行状態判定を行うべきタイミングになった場合(S61のYES),実行状態判定部115は,例えば,全ての監視対象プログラム1による共有資源2の使用が終了しているか否かの検知を行う(S62)。その結果,実行状態判定部115が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合(S62のYES),トレース情報削除部116は,例えば,情報格納領域130に記憶された全てのトレース情報131を削除する(S63)。
すなわち,実行状態判定部115は,全ての監視対象プログラム1が共有資源2を解放していることを検知した場合,その時点において共有資源2の解放漏れは発生していないと判定できる。そのため,この時点におけるトレース情報131は,解放漏れの異常に関する情報は含まれておらず,将来共有資源2の解放漏れが発生した場合に,検証する必要がないトレース情報である。したがって,トレース情報削除部116は,この場合,情報格納領域130に記憶された全てのトレース情報131を削除する。これにより,運用管理者は,将来共有資源2の解放漏れが発生した場合に,検証する必要があるトレース情報の量を抑制することが可能になる。したがって,運用管理者は,共有資源2の解放漏れが発生した際に,異常が発生したプログラムの特定等,原因究明を迅速に行うことが可能になる。
一方,共有資源2を使用している監視対象プログラム1が存在することを実行状態判定部115が検知した場合(S62のNO),トレース情報出力部119は,例えば,記憶されているトレース情報131の出力を行うタイミングであるか否かについて判定する(S64)。このトレース情報131の出力を行うタイミングは,例えば,S61の実行状態判定タイミングのうち,監視対象プログラム1が含まれるジョブが終了したときであってよい。すなわち,監視対象プログラム1が含まれるジョブが終了したにもかかわらず,共有資源2を使用している監視対象プログラム1が存在する場合,バグ等によって共有資源2の解放漏れが発生している可能性が高い。そのため,この場合,トレース情報出力部119は,運用管理者による異常の原因究明を可能にするため,トレース情報131を出力する。
なお,トレース情報出力部119は,例えば,S61の実行状態判定タイミングのうち,監視対象プログラム1が他のプログラムを呼び出したときには,トレース情報131の出力(S66)を行わないものであってよい。すなわち,監視対象プログラム1による他のプログラムの呼出しは,監視対象プログラム1によって共有資源2が使用された状態においても行われる。そのため,監視対象プログラム1によって共有資源2が使用されているときに,監視対象プログラム1による他のプログラムの呼出しが発生した場合においては,トレース情報出力部119は,トレース情報131の出力を行わないものであってよい。
そして,トレース情報出力部119がトレース情報131を行うタイミングであると判定した場合(S64のYES),エラー出力部120は,例えば,運用管理者にエラーを通知する(S65)。また,この場合,トレース情報出力部119は,例えば,トレース情報131の出力を行い(S66),トレース情報削除部116は,トレース情報131の削除を行う(S67)。エラー出力部120がエラー出力した場合の処理については,図8で説明したため,ここでは詳細な説明を省略する。
[トレース情報とカウンタ情報の具体例]
次に,トレース情報131とカウンタ情報132の具体例を説明する。図11は,トレース情報131の具体例であり,図12は,カウンタ情報132の具体例である。
図11に示すトレース情報131は,トレース情報131を識別する「トレース識別ID」と,実行中のジョブを識別する「ジョブ識別ID」と,実行中のジョブに含まれるプログラムを識別する「プログラム識別ID」と,発生した事象である「発生事象」とを項目として有している。また,図11に示すトレース情報131は,実行するプログラムが遷移した場合における遷移元のプログラムを識別する「遷移元プログラム識別ID」と,発生した事象を発生させる命令が格納されたアドレスを示す「発生事象呼出し元アドレス」とを項目として有している。さらに,図11に示すトレース情報131は,トレース情報131の作成前のカウンタ情報132の値である「更新前カウンタ値」と,作成後のカウンタ情報132の値である「更新後カウンタ値」と,トレース情報131の作成時刻である「時刻」を項目として有している。
なお,トレース情報131は,図11に示すように,例えば,ジョブ識別IDが同じトレース情報131(図11の例では,項目「ジョブ識別ID」がJOB1であるトレース情報131)をまとめた状態で情報格納領域130に記憶するものであってもよい。また,同じメモリ領域を使用するジョブが複数ある場合には,その複数のジョブに関するトレース情報をまとめた状態で情報格納領域130に記憶するものであってもよい。
また,項目「発生事象」は,トレース情報131を作成する契機となった事象を記憶するものであり,図11の例においては,項目「プログラム識別ID」が示すプログラムによる共有資源2の獲得を示す「獲得」や共有資源2の解放を示す「解放」とが含まれる。さらに,項目「発生事象」には,図11の例においては,プログラムの呼出しまたは呼出しの終了があったことを示す「遷移」と,ジョブの処理が終了した場合を示す「終了」とが含まれる。
具体的に,図11において,項目「トレース識別ID」が1であるトレース情報131は,JOB1に含まれるプログラムであるPG1−1が共有資源2を獲得したときの情報を含んでいる。そして,共有資源2の獲得前におけるカウンタ情報132が示す値(以下,カウンタ値とも呼ぶ)が0であり,共有資源2の獲得後におけるカウンタ値が1であることを示す情報を含んでいる。また,このトレース情報131は,共有資源2を獲得するための命令が格納されたアドレスがPG1−1の10番地であり,トレース情報131の作成時刻が2014年9月8日13時00分31秒であることを示す情報を含んでいる。
次に,図11において,項目「トレース識別ID」が2であるトレース情報131は,PG1−1が共有資源2を解放したときの情報を含んでいる。そして,共有資源2の解放前におけるカウンタ値が1であり,共有資源2の解放後におけるカウンタ値が0であることを示す情報を含んでいる。また,このトレース情報131は,共有資源2を解放するための命令が格納されたアドレスがPG1−1の30番地であり,トレース情報131の作成時刻が2014年9月8日13時10分23秒であることを示す情報を含んでいる。
さらに,図11において,項目「トレース識別ID」が3であるトレース情報131は,PG1−2がPG1−1によって呼び出されたときの情報を含んでいる。また,図11において,項目「トレース識別ID」が11であるトレース情報131は,JOB1に含まれるプログラム(図11の例では,PG1−1,PG1−2,PG1−3)の処理が全て終了したときの情報を含んでいる。図11のトレース情報131に含まれるその他の情報については,上記の場合と同様であるため,その説明を省略する。
なお,図11の例において,プログラムの呼出し及びジョブによる処理の終了が発生した場合についてもトレース情報131を作成する場合について説明したが,共有資源2の獲得及び解放が発生した場合のみトレース情報131を作成するものであってもよい。
次に,カウンタ情報132の具体例について説明する。図12(A)は,トレース情報131とカウンタ情報132を対応付ける情報(以下,制御情報とも呼ぶ)の具体例である。図12(A)に示す制御情報は,共有資源2を識別する「資源識別ID」と,項目「資源識別ID」が示す共有資源2を使用するジョブに関するトレース情報131が記憶されているアドレスを示す「トレース情報記憶アドレス」とを項目として有する。また,図12(A)に示す制御情報は,項目「資源識別ID」が示す共有資源2を使用するジョブに関するカウンタ情報132が記憶されているアドレスを示す「カウンタ情報記憶アドレス」を項目として有する。なお,図12に示す各メモリ領域は,例えば,図1に示す共有資源2の一部に対応するものである。
具体的に,図12(A)において,メモリ領域1−1に関する制御情報は,メモリ領域1−1を獲得または解放する可能性があるジョブに関するトレース情報131が記憶されているアドレスであるAAAの情報を含んでいる。例えば,メモリ領域1−1を使用するジョブが図11に示すJOB1である場合,アドレスAAAには,図11に示すトレース情報131が記憶される。そして,アドレスBBB,CCC,DDDにも同様に,それぞれメモリ領域1−2,1−3,1−4に対応するトレース情報が記憶される。
そして,図12(B)は,メモリ領域1−1を獲得しているプログラムの数に関するカウンタ情報132の具体例である。図12(B)に示すカウンタ情報132は,例えば,メモリ領域1−1を獲得しているプログラムの数である「カウンタ値」を項目として有している。具体的に,図12(B)の例におけるカウンタ情報132は,メモリ領域1−1を獲得しているプログラムの数として2を記憶している。なお,アドレスFFF,GGG、HHHにも同様に,それぞれメモリ領域1−2,1−3,1−4に対応するカウンタ情報が記憶されている。
すなわち,図11及び図12の例において,図11に示すトレース情報131に含まれる情報と,図12(B)に示すカウンタ情報132に含まれる情報とは,図11(A)に示す制御情報に含まれる情報によって対応付けられている。これにより,図11(A)に示す制御情報の項目「資源識別ID」毎に,図11におけるトレース情報131と,図12(B)におけるカウンタ情報132とを対応させながら管理することが可能になる。
[トレース情報管理処理の具体例]
次に,図11に示すトレース情報131及び図12に示すカウンタ情報132を参照しながら,トレース情報管理処理の具体例について説明する。図13及び図14は,トレース情報管理処理の具体例を説明する図である。具体的に,図13及び図14は,図11において説明したJOB1がメモリ領域1−1の獲得または解放を行う場合のトレース情報管理処理の流れについて説明する。なお,以下,図13及び図14に示すように,実行状態判定部115は,プログラムの呼出し及びジョブの処理の終了があったときに,トレース情報131を削除するか否かの判定を行うものとして説明を行う。
図13に示す例において,JOB1の開始と同時にPG1−1が実行される。この時点でメモリ領域1−1を獲得しているプログラムは存在しないため,カウンタ情報132が示す値は0である。そして,PG1−1は,その実行に伴い,メモリ領域1−1を獲得し,その後メモリ領域1−1を解放する(図13の(1),(2))。この場合,カウンタ情報記憶部114は,メモリ領域1−1が獲得されたときに,図12のカウンタ情報132における項目「カウンタ値」を0から1に更新し,メモリ領域1−1が解放されたときに,1から0に更新する。また,トレース情報作成部111は,メモリ領域1−1が獲得及び解放が行われたため,図11の項目「トレース識別ID」が1及び2であるトレース情報131を作成し,トレース情報記憶部112は,作成したトレース情報131を情報格納領域130に記憶する。
次に,図13に示す例において,PG1−1は,その実行に伴い,PG1−2を呼び出す(図13の(3))。この場合,監視対象プログラム1による共有資源2の獲得または解放は行われないため,カウンタ情報記憶部114は,カウンタ情報132を更新しない。また,トレース情報作成部111は,図11の項目「トレース識別ID」が3であるトレース情報131を作成する。そして,この場合,図13の例における実行状態判定部115は,カウンタ値を参照してトレース情報131を削除するか否かの判定を行う。具体的に,図13の例において,PG1−2の呼出し時におけるカウンタ値は0であるため,トレース情報削除部116は,図11の項目「トレース識別ID」が1から3であるトレース情報131を削除する。すなわち,この場合,実行状態判定部115は,図13における(1)から(3)までの間に実行された処理において,共有資源2の解放漏れが発生していないと判定する。したがって,トレース情報削除部116は,トレース情報131の削除を行う。
そして,図13に示す例では,PG1−2は,その実行に伴い,メモリ領域1−1の獲得を2回行った後,PG1−1の呼出し(PG1−1への復帰)を行う(図13の(4),(5),(6))。この場合,カウンタ情報記憶部114は,図12のカウンタ情報132における項目「カウンタ値」を0から1に更新し,さらに,1から2に更新する。また,トレース情報作成部111は,図11の項目「トレース識別ID」が4,5及び6であるトレース情報131を作成する。そして,図13に示す例では,PG1−1は,その実行に伴い,メモリ領域1−1を解放する(図13の(7))。この場合,カウンタ情報記憶部114は,図12のカウンタ情報132における項目「カウンタ値」を,2から1に更新する。また,トレース情報作成部111は,メモリ領域1−1の解放が行われたため,図11の項目「トレース識別ID」が7であるトレース情報131を作成する。
さらに,図13に示す例では,PG1−1は,PG1−3を呼び出す(図13の(8))。この場合,図13の(3)の場合と同様に,カウンタ情報132は更新されない。また,トレース情報作成部111は,プログラムの呼出しが行われたため,図11の項目「トレース識別ID」が8であるトレース情報131を作成する。さらに,実行状態判定部115は,カウンタ値を参照してトレース情報131を削除するか否かの判定を行う。具体的に,図13の例において,PG1−2の呼出し時におけるカウンタ値は1であるため,トレース情報削除部116は,現在記憶されているトレース情報131(図11の項目「トレース識別ID」が4から8であるトレース情報131)の削除を行わない。
次に,図13に示す例では,PG1−3は,その実行に伴い,メモリ領域1−1を解放し,PG1−1の呼出し(PG1−1への復帰)を行う(図13の(9),(10))。この場合,カウンタ情報記憶部114は,図12のカウンタ情報132における項目「カウンタ値」を,1から0に更新する。また,トレース情報作成部111は,図11の項目「トレース識別ID」が9及び10であるトレース情報131を作成する。
その後,図13に示す例では,PG1−1,1−2,1−3の処理の終了に伴い,JOB1は終了する(図13の(11))。この場合,監視対象プログラム1による共有資源2の獲得または解放は行われないため,カウンタ情報記憶部114は,カウンタ情報132を更新しない。また,トレース情報作成部111は,図11の項目「トレース識別ID」が11であるトレース情報131を作成する。そして,実行状態判定部115は,カウンタ値を参照してトレース情報131を削除するか否かの判定を行う。具体的に,図13の例において,ジョブ終了時におけるカウンタ値は0であるため,トレース情報削除部116は,図11の項目「トレース識別ID」が4から11であるトレース情報131を削除する。すなわち,図13に示す例において,ジョブの終了時(図13の(11))におけるカウンタ値が0であるため,JOB1の実行中(図13の(1)から(11))において共有資源2の解放漏れは発生しなかったものと判定する。
なお,実行状態判定部115がトレース情報131の削除を行うか否かの判定を行う場合,トレース情報作成部111は,実行状態判定部115がトレース情報131の削除を行わない旨の判定を行った後に,トレース情報131を作成するものであってもよい。これにより,直後に削除されることになるトレース情報131の作成を防ぐことができる。また,実行状態判定部115がトレース情報131の削除を行うか否かの判定を行う場合には,トレース情報作成部111は,トレース情報131を作成しないものであってもよい。
図14は,図13の例において共有資源2の解放漏れが発生した場合の例である。具体的に,図14に示す例は,図13の(9)において行われるべき共有資源2を解放が行われなかった場合の例である。図14に示す例において,共有資源2の解放漏れが1回発生しているため,ジョブの終了時(図14の(10))におけるカウンタ値は1である。そのため,エラー出力部120は,この場合,例えば,資源の解放漏れが発生した旨のエラーを出力する(図10のS65)。そして,トレース情報出力部119は,例えば,情報格納領域130に記憶されているトレース情報を他の記憶媒体等に記憶する処理を行う(図10のS66)。
具体的に,図14の例において,ジョブの終了時(図14の(10))において,情報格納領域130に記憶されているトレース情報131は,図11の項目「トレース識別ID」が4から11であるトレース情報131である。そのため,トレース情報出力部119は,例えば,図11の項目「トレース識別ID」が4から11であるトレース情報131を出力する。ここで,図14の例におけるジョブの終了時において,図11の項目「トレース識別ID」が1から3であるトレース情報131は,既に削除されている。そのため,運用管理者は,図14のジョブ終了時(異常発生時)において,異常に関する情報が含まれていないと判定した情報(項目「トレース識別ID」が1から3であるトレース情報131)の検証を行う必要がない。したがって,運用管理者は,第1の実施の形態におけるトレース情報管理処理により,異常の原因となったプログラム(図14の例においてはPG1−3)を特定するための時間を短縮させることが可能になる。
[第2の実施の形態]
次に,第2の実施の形態について説明する。図15は,第2の実施の形態におけるトレース情報管理処理を示すフローチャートである。また,図16は,第2の実施の形態におけるトレース情報管理処理を説明する図である。図16を参照しながら,図15のトレース情報管理処理について説明する。
第1の実施の形態で説明したカウンタ情報132は,プログラムに内在する誤った資源解放によって,運用管理者が意図しない更新が行われる可能性がある。この場合,トレース情報削除部116は,実際には共有資源2を使用している監視対象プログラム1が存在するにも関わらず,トレース情報131を削除してしまう可能性がある。その場合,余分な資源解放が行われたことになるので,0以上の値をとるべきカウンタがいずれ負になる。この点,第1の実施の形態においては,図9のS54で説明したように,カウンタ情報132の更新の検知を行うことで,運用管理者にエラーが発生したことを通知することができる。しかし,意図しないタイミングでの資源解放が発生した場合,運用管理者にエラーの発生を通知する前に,トレース情報削除部116は,トレース情報131を削除してしまっている可能性がある。
そこで,第2の実施の形態におけるトレース情報管理処理は,実行状態判定部115が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合においても,所定の条件を満たすまでトレース情報131の削除を行わない。これにより,意図しないタイミングでカウンタ情報132が更新された場合に,適切ではないタイミングでトレース情報131が削除される可能性を,さらに低減させることができる。以下,第2の実施の形態におけるトレース情報管理処理について説明する。
[第2の実施の形態のトレース情報削除処理]
初めに,第2の実施の形態におけるトレース情報削除処理について説明する。なお,トレース情報記憶処理は,第1の実施の形態における処理を同じ処理であるため,ここでは説明を省略する。
図15において,初めに,実行状態判定部115は,第1の実施の形態と同様に,例えば,実行状態判定を行うべきタイミングになるまで待機する(S71)。そして,実行状態判定を行うべきタイミングになった場合(S71のYES),実行状態判定部115は,例えば,全ての監視対象プログラム1による共有資源2の使用が終了しているか否かの検知を行う(S72)。その結果,実行状態判定部115が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合(S72のYES),トレース情報削除部116は,例えば,情報格納領域130に記憶されている識別情報134の数が最大数であるか否かについて確認する(S73)。識別情報134は,実行状態判定部115が全ての監視対象プログラム1が共有資源2を解放していると判定した場合において,その判定時に記憶されるトレース情報131を識別するための情報である。また,情報格納領域130に記憶可能な識別情報134は,例えば,最大5個の情報であってよい。なお,識別情報134の詳細については後述する。
そして,識別情報134の数が最大数である場合(S73のYES),トレース情報削除部116は,例えば,最初に情報格納領域130に記憶された識別情報134が識別するトレース情報131よりも前に記憶されたトレース情報131の削除を行う(S74)。さらに,トレース情報記憶部112は,例えば,情報格納領域130に最初に記憶された識別情報134を削除する(S75)。一方,識別情報134の数が最大数でない場合(S73のNO),トレース情報削除部116は,例えば,識別情報134及びトレース情報131の削除を行わない。
すなわち,トレース情報削除部116は,実行状態判定部115が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合であっても,情報格納領域130に記憶された識別情報の数が最大数でない場合には,トレース情報131の削除を行わない。そして,トレース情報削除部116は,情報格納領域130に記憶された識別情報134の数が最大数である場合に,最初に記憶された識別情報134が識別するトレース情報131よりも前に記憶されたトレース情報131のみを削除する。これにより,トレース情報削除部116は,実行状態判定部115が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合において,トレース情報131を削除するまでに猶予時間を設けることができる。また,トレース情報削除部116は,外的要因等によってカウンタ情報132が運用管理者の意図しないタイミングで更新された場合に,誤ったカウンタ情報132に基づいてトレース情報131が削除される可能性を低減させることができる。
そして,トレース情報記憶部112が最初に記憶された識別情報134を削除した後(S75),トレース情報記憶部112は,例えば,直近に記憶したトレース情報131に含まれるトレース識別情報IDを識別情報134として記憶する(S76)。また,情報格納領域130に記憶された識別情報134の数が最大数ではない場合も同様に(S73のNO),トレース情報記憶部112は,例えば,直近に記憶したトレース情報131に含まれるトレース識別情報IDを識別情報134として記憶する(S76)。
また,共有資源2を使用している監視対象プログラム1が存在することを実行状態判定部115が検知した場合(S72のNO),トレース情報出力部119は,例えば,情報格納領域130に記憶されているトレース情報131の出力を行うか否かについて判定する(S77)。そして,トレース情報出力部119がトレース情報131を行うタイミングであると判定した場合(S77のYES),エラー出力部120は,例えば,運用管理者にエラーを通知する(S78)。また,この場合,トレース情報出力部119は,例えば,トレース情報131の出力を行い(S79),トレース情報削除部116は,トレース情報131の削除を行う(S80)。エラー出力部120がエラー出力した場合については図8で説明したため,ここでは詳細な説明を省略する。
[識別情報の具体例]
図16は,識別情報134の具体例である。図16に示す識別情報134は,「トレース識別ID」を項目として有する。なお,図16に示す識別情報134は,最大5つのトレース識別IDを記憶できるものとして説明を行う。
具体的に,図16に示す識別情報134は,項目「トレース識別ID」として,8,15,26,41,69である5個の情報を記憶している。すなわち,図16に示す識別情報134は,項目「トレース識別ID」が8,15,26,41,69であるトレース情報131が記憶されたときに,全ての監視対象プログラム1が共有資源2を解放していたことを示している。また,図16に示す識別情報134は,5つのトレース識別IDを記憶している状態であるため,記憶できる最大数のトレース識別情報IDを含んでいる。そのため,図16の例において,実行状態判定部115が全ての共有資源2が解放されていることを検知した場合,トレース情報記憶部112は,項目「トレース識別ID」である8が示すトレース情報131よりも前に記憶されたトレース情報131を削除する(S74)。そして,トレース情報記憶部112は,実行状態判定部115が全ての共有資源2が解放されていることを検知した際に記憶したトレース情報131を示すトレース識別IDを,識別情報134として情報格納領域130に記憶する(S75,S76)。
すなわち,第2の実施形態におけるトレース情報管理処理では,トレース情報記憶部112は,全ての共有資源2が解放されていることを検知した場合に,その検知時に記憶されたトレース情報131を識別する識別情報134を記憶する。そして,トレース情報削除部116は,記憶された識別情報134の数が最大値である場合に,最初に記憶した識別情報134に含まれるトレース識別IDが示すトレース情報131よりも前に記憶されたトレース情報131を削除する。これにより,トレース情報削除部116は,全ての共有資源2が解放されていることを検知した際に,情報格納領域130に記憶されたトレース情報131のうち,猶予期間が経過した一部のトレース情報131のみを削除することができる。そのため,誤ったカウンタ情報132に基づいて,トレース情報131が削除される可能性を低減させることができる。
[第3の実施の形態]
次に,第3の実施の形態について説明する。図17は,第3の実施の形態におけるトレース情報管理処理を示すフローチャートである。また,図18は,第3の実施の形態におけるトレース情報管理処理を説明する図である。図18を参照しながら,図17のトレース情報管理処理について説明する。
第3の実施の形態におけるトレース情報管理処理は,第2の実施の形態と同様に,実行状態判定部115が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合において,トレース情報131を削除するまでに猶予時間を設ける。具体的に,第3の実施の形態では,第2の実施の形態と異なり,各トレース情報131を記憶した際に,そのトレース情報131を取得した時間である取得時間情報133を記憶する。そして,トレース情報削除部116は,取得時間情報133を参照してトレース情報131の削除を行う。これにより,第2の実施の形態と同様に,誤った資源の解放によってカウンタ情報132が更新された場合に,実際の共有資源2を使用している監視対象プログラム1の数(監視対象プログラム1の処理の数)を反映していない情報に基づいて,トレース情報131が削除される可能性を低減させることができる。以下,第3の実施の形態におけるトレース情報管理処理について説明する。
[トレース情報削除処理]
初めに,第3の実施の形態におけるトレース情報削除処理について説明する。なお,トレース情報記憶処理は,第1の実施の形態における処理を同じ処理であるため,ここでは説明を省略する。
図17に示すように,初めに,実行状態判定部115は,第1の実施の形態と同様に,例えば,実行状態判定を行うべきタイミングになるまで待機する(S81のNO)。そして,実行状態判定を行うべきタイミングになった場合(S81のYES),全ての監視対象プログラム1による共有資源2の使用が終了しているか否かの検知を行う(S82)。その結果,実行状態判定部115が全ての監視対象プログラム1が共有資源2を使用していないことを検知した場合(S82のYES),トレース情報削除部116は,例えば,情報格納領域130に記憶されている取得時間情報133を参照する。そして,トレース情報削除部116は,例えば,現在時間から所定時間以上前に記憶されたトレース情報131のみを削除する(S83)。この所定時間は,トレース情報131を最低限記憶しておく必要がある時間であり,例えば,5分間等であってよい。現在時間から所定時間以上前に記憶されたトレース情報131を検出する場合の具体例については後述する。
また,実行状態判定部115が全ての監視対象プログラム1が共有資源2を使用していることを検知した場合(S82のNO),トレース情報出力部119は,第1の実施形態等と同様に,例えば,トレース情報131の出力を行うか否かについて判定する(S84)。そして,トレース情報出力部119がトレース情報131を行うタイミングであると判定した場合(S84のYES),エラー出力部120は,例えば,運用管理者にエラーを通知する(S85)。また,この場合,トレース情報出力部119は,例えば,トレース情報131の出力を行い(S86),トレース情報削除部116は,トレース情報131の削除を行う(S87)。エラー出力部120がエラー出力した場合については図8で説明したため,ここでは詳細な説明を省略する。
[取得時間情報の具体例(1)]
図18及び図19は,取得時間情報133の具体例である。図18及び図19に示す取得時間情報133は,トレース情報131を識別する「トレース識別ID」と,そのトレース情報131を記憶した時間を示す「時刻」とを項目として有している。具体的に,図18に示す取得時間情報133は,例えば,項目「トレース識別ID」が1であるトレース情報131が記憶された時間は,13時10分12秒であることを示している。図18に示す取得時間情報133のその他の情報については説明を省略する。以下,S83の所定時間が5分間である場合について説明する。
図18の例において,例えば,現在時刻が13時18分00秒である場合,図18に示す取得時間情報133のうち,項目「時刻」が現在時刻から5分以上前の時刻を示す情報は,項目「トレース識別ID」が1から6である情報である。そのため,図18の例におけるトレース情報削除部116は,情報格納領域130に記憶されたトレース情報131のうち,項目「トレース識別ID」が1から6であるトレース情報131を削除する(S83)。
すなわち,第3の実施の形態によれば,トレース情報記憶部112は,情報格納領域130にトレース情報131を記憶する際に,そのトレース情報131が記憶された時間である取得時間情報133についても記憶する。これにより,トレース情報削除部116は,トレースの削除を行う場合に,取得時間情報133を参照して,予め定められた時間を経過したトレース情報131のみを削除することが可能になる。
[取得時間情報の具体例(2)]
次に,取得時間情報133の他の具体例について説明を行う。図19は,取得時間情報133の一部のみが情報格納領域130に記憶される場合の具体例である。
取得時間情報記憶部117は,例えば,トレース情報131を記憶しておく必要がある時間(S85の所定時間)が経過したトレース情報131のうち,一部(例えば,1つ)のトレース情報131に関する取得時間情報133を記憶するものであってもよい。例えば,取得時間情報記憶部117は,トレース情報131を記憶しておく必要がある時間が経過したトレース情報131のうち,最も新しいトレース情報131を示すトレース識別IDに関する取得時間情報133を一定間隔で記憶する。そして,トレース情報削除部116は,この取得時間情報133を参照して,トレース情報131の削除を行う。これにより,トレース情報削除部116は,全てのトレース情報131に関する取得時間情報を記憶することなく,トレース情報131の削除を行うことが可能になる。以下,図19の例を参照して,具体例についての説明を行う。
図19(A)に示す例は,13時25分00秒の時点における取得時間情報133の例である。そして,図19(A)に示す取得時間情報133は,13時19分53秒に作成されたトレース情報であり,トレース識別IDが12であるトレース情報131に関する情報を含んでいる。すなわち,取得時間情報記憶部117は,トレース情報131を記憶しておく必要がある時間が経過したトレース情報131に関する情報(図19(A)の例では,1つのトレース情報131に関する情報)を,取得時間情報133として記憶している。これにより,トレース情報削除部116は,図19(A)における取得時間情報133を参照し,取得時間情報133に含まれるトレース情報IDが示すトレース情報131より前に作成されたトレース情報131の削除を行うことが可能になる。なお,取得時間情報記憶部117は,例えば,トレース情報131を記憶しておく必要がある時間が経過したトレース情報131のうち,最も新しいトレース情報131に関する情報を,取得時間情報133として記憶することが好ましい。
次に,図19(B)に示す例は,13時27分00秒の時点における取得時間情報133の例である。図19(B)に示す取得時間情報133は,13時21分59秒に作成されたトレース情報であり,トレース識別IDが25であるトレース情報131に関する情報を含んでいる。図19(B)に示す取得時間情報133は,図19(A)に示す取得時間情報133が更新されたものである。この取得時間情報133の更新は,例えば,取得時間情報記憶部117によって,一定時間間隔(2分間隔等)で行われるものであってよい。すなわち,取得時間情報記憶部117が情報格納領域130に記憶された取得時間情報133を更新することにより,削除可能なトレース情報131を示す情報である取得時間情報133を更新することが可能になる。これにより,トレース情報削除部116は,取得時間情報133を参照して,削除可能なトレース情報131に関する情報を取得することが可能になる。そして,トレース情報削除部116は,削除可能なトレース情報131に関する情報に基づいて,トレース情報131を削除することが可能になる。
具体的に,例えば,13時26分15秒にプログラムの呼出しが発生した場合,トレース情報削除部116は,図19(A)の状態の取得時間情報133を参照し,トレース識別IDが12であるトレース情報131よりも前のトレース情報131を削除する。また,例えば,13時27分10秒にジョブが終了した場合,トレース情報削除部116は,図19(B)の状態の取得時間情報133を参照し,トレース識別IDが25であるトレース情報131よりも前のトレース情報131を削除する。これにより,トレース情報削除部116は,予め定められた数(図19の例においては1つ)のトレース情報131に関する情報のみが記憶された取得時間情報133を参照するだけで,削除すべきトレース情報131を特定することができる。そのため,トレース情報削除部116は,各時間におけるトレース情報131の作成頻度のばらつきに左右されることなく,安定した処理時間によって,削除すべきトレース情報131を特定することができる。
なお,図11に示すように,トレース情報131が作成時刻に関する情報を有する場合,トレース情報削除部116は,トレース情報131を参照して削除すべきトレース情報131を特定するものであってもよい。
[トレース情報管理終了処理]
次に,第1の実施の形態から第3の実施の形態において,運用管理者がトレース情報管理処理を終了する場合の処理(以下,トレース情報管理終了処理とも呼ぶ)を説明する。図20は,トレース情報管理終了処理を説明するフローチャートである。以下,トレース情報管理終了処理について説明する。
図20に示すように,初めに,実行状態判定部115は,例えば,運用管理者からトレース情報終了処理を開始する旨の入力があるまで待機する(S91のNO)。そして,運用管理者からトレース情報終了処理を開始する旨の入力があった場合(S91のYES),実行状態判定部115は,例えば,全ての監視対象プログラム1による共有資源2の使用が終了しているか否かの検知を行う(S92)。その結果,全ての監視対象プログラム1による共有資源2の使用が終了していない場合(S92のNO),トレース情報出力部119は,例えば,情報格納領域130に記憶されているトレース情報131の出力を行う(S93)。そして,全ての監視対象プログラム1による共有資源2の使用が終了している場合(S92のYES),または,トレース情報131の出力を行った場合(S93),トレース情報削除部116は,例えば,情報格納領域130に記憶されているトレース情報131を削除する(S94)。
すなわち,運用管理者によってトレース情報管理処理が終了する場合,例えば,トレース情報管理処理を実行するために確保していたメモリ領域を解放する必要がある。そのため,全ての監視対象プログラム1による共有資源2の使用が終了している場合(S92のYES),トレース情報削除部116は,情報格納領域130に記憶されているトレース情報131を削除し,トレース情報管理処理のために確保していたメモリ領域を解放する。また,全ての監視対象プログラム1による共有資源2の使用が終了していない場合(S92のNO),トレース情報出力部119は,情報格納領域130に記憶されているトレース情報131の出力を行ってから,トレース情報管理処理のために確保していたメモリ領域を解放する。これにより,トレース情報管理終了処理が実行されたときのカウンタ情報132の内容に関わらず,トレース情報管理処理のために確保していたメモリ領域を解放することが可能になる。
[監視対象プログラムが複数の物理マシンに分かれている場合]
次に,監視対象プログラム1が複数の物理マシンに分かれている場合について説明を行う。図21は,監視対象プログラムが動作する物理マシンが複数に分かれている場合を説明する図である。
図1に示す複数の監視対象プログラム1は,1台の物理マシンである監視対象装置10に設けられている。また,図1に示す共有資源2及び監視プログラム3も同様に,監視対象装置10に設けられている。これに対し,監視対象プログラム1は,複数の監視対象装置10(物理マシン)において動作するものであってよい。
具体的に,図21に示す例において,監視対象プログラム1は,複数の監視対象装置10において動作する。そして,図21における共有資源12,監視装置13及び記憶媒体14は,監視対象装置10の外部に設けられている。そして,図21に示す各監視対象装置10内の監視対象プログラム1は,それぞれ共有資源12を使用する。この監視対象プログラム1は,例えば,他の監視対象装置内の監視対象プログラム1と協働して処理を行うものである。そして,図21の例における監視装置13は,例えば,共有資源12を使用している監視対象プログラム1の数を検出し,共有資源12を使用している監視対象プログラム1の数が0になったときに,記憶媒体14に記憶されているトレース情報を削除する。
すなわち,第1の実施の形態から第3の実施の形態において説明したトレース情報管理処理は,図1に示すように,監視対象プログラム1,共有資源2等が1つの物理マシンに集中して設けられている場合に限らず,図21に示すように,それぞれ異なる物理マシン内に設けられている場合にも適用可能である。
以上の実施の形態をまとめると,以下の付記のとおりである。
(付記1)
監視対象の実行状態に関するトレース情報と,前記監視対象が使用可能な特定の資源を使用している前記監視対象の数である判定値とを記憶する記憶部と,
前記監視対象が前記特定の資源の使用を開始したときに前記判定値を所定の値だけ増加させ,前記監視対象が前記特定の資源の使用を終了したときに前記判定値を前記所定の値だけ減少させ,前記判定値に基づいて全ての前記監視対象が前記特定の資源の使用をしていないことを検知した場合に,前記記憶部に記憶したトレース情報を削除する処理部と,を有する,
情報処理装置。
(付記2)
付記1において,
前記監視対象は,コンピュータ上で動作するプログラムを順次動作させるジョブであり,
前記特定の資源は,コンピュータが有するメモリであり,
前記処理部は,前記プログラムが前記メモリの領域を獲得したときに前記判定値を増加させ,前記プログラムが前記メモリの領域を解放したときに前記判定値を減少させる情報処理装置。
(付記3)
付記2において、
前記処理部は,前記ジョブが終了した場合または前記プログラムが他のプログラムを呼び出した場合に,前記判定値に基づいて全ての前記プログラムが前記メモリの領域を解放しているか否かの検知を行う情報処理装置。
(付記4)
付記1において,
前記処理部は,前記判定値が0を下回っているときには,前記トレース情報の削除を行わない情報処理装置。
(付記5)
付記1において,
前記処理部は,前記特定の資源の使用の開始または終了に基づき前記判定値を増加または減少させた後,次に前記特定の資源の使用の開始または終了に基づき前記判定値を増加または減少させる前に,前記判定値が増加または減少した場合,前記トレース情報の削除を行わない情報処理装置。
(付記6)
付記1において,
前記記憶部は,前記トレース情報を該トレース情報の取得時間と対応付けて記憶し,
前記処理部は,前記監視対象の実行状態を正常と判定した場合に,前記取得時間に基づき前記判定を行った時間の所定期間前までに記憶された前記トレース情報を削除する情報処理装置。
(付記7)
付記1において,
前記記憶部は,全ての前記監視対象が前記特定の資源を使用していないときに記憶された前記トレース情報を識別する識別情報を記憶し,
前記処理部は,前記監視対象の実行状態を正常と判断した場合であって,前記記憶された識別情報の数が所定値と同じ場合に,最初に前記記憶された識別情報が識別するトレース情報よりも前に記憶されたトレース情報を削除し,前記記憶された識別情報のうち最初に記憶された識別情報を削除する情報処理装置。
(付記8)
監視対象の実行状態に関するトレース情報と,前記監視対象が使用可能な特定の資源を使用している前記監視対象の数である判定値とを記憶し,
前記監視対象が前記特定の資源の使用を開始したときに前記判定値を所定の値だけ増加させ,前記監視対象が前記特定の資源の使用を終了したときに前記判定値を前記所定の値だけ減少させ,前記判定値に基づいて全ての前記監視対象が前記特定の資源の使用をしていないことを検知した場合に,前記記憶部に記憶したトレース情報を削除する,
情報処理方法。
(付記9)
監視対象の実行状態に関するトレース情報と,前記監視対象が使用可能な特定の資源を使用している前記監視対象の数である判定値とを記憶し,
前記監視対象が前記特定の資源の使用を開始したときに前記判定値を所定の値だけ増加させ,前記監視対象が前記特定の資源の使用を終了したときに前記判定値を前記所定の値だけ減少させ,前記判定値に基づいて全ての前記監視対象が前記特定の資源の使用をしていないことを検知した場合に,前記記憶部に記憶したトレース情報を削除する,
処理をコンピュータに実行させる情報プログラム。
1:監視対象プログラム 2:共有資源
3:監視装置 4:記憶媒体
10:監視対象装置(情報処理装置)

Claims (8)

  1. 監視対象の実行状態に関するトレース情報と,前記監視対象が使用可能な特定の資源を使用している前記監視対象の数である判定値とを記憶する記憶部と,
    前記監視対象が前記特定の資源の使用を開始したときに前記判定値を所定の値だけ増加させ,前記監視対象が前記特定の資源の使用を終了したときに前記判定値を前記所定の値だけ減少させる更新部と
    特定の事象が発生したことに応じて,全ての前記監視対象が前記特定の資源の使用をしていないことを前記判定値が示しているか否かを判定する判定部と,
    前記判定値に基づいて全ての前記監視対象が前記特定の資源の使用をしていないと判定された場合,前記監視対象において異常が検知された際に参照されるトレース情報が前記記憶部に記憶されていないと判定し,前記記憶部に記憶したトレース情報を削除する処理部と,を有する,
    情報処理装置。
  2. 請求項1において,
    前記監視対象は,コンピュータ上で動作するプログラムを順次動作させるジョブであり,
    前記特定の資源は,コンピュータが有するメモリであり,
    前記更新部は,前記プログラムが前記メモリの領域を獲得したときに前記判定値を増加させ,前記プログラムが前記メモリの領域を解放したときに前記判定値を減少させる情報処理装置。
  3. 請求項1において,
    前記処理部は,前記判定値が0を下回っているときには,前記トレース情報の削除を行わない情報処理装置。
  4. 請求項1において,
    前記記憶部は,前記トレース情報を該トレース情報の取得時間と対応付けて記憶し,
    前記処理部は,前記監視対象の実行状態正常と判定された場合に,前記取得時間に基づき前記判定を行った時間の所定期間前までに記憶された前記トレース情報を削除する情報処理装置。
  5. 請求項1において,
    前記記憶部は,全ての前記監視対象が前記特定の資源を使用していないときに記憶された前記トレース情報を識別する識別情報を記憶し,
    前記処理部は,前記監視対象の実行状態正常と判定された場合であって,前記記憶された識別情報の数が所定値と同じ場合に,最初に前記記憶された識別情報が識別するトレース情報よりも前に記憶されたトレース情報を削除し,前記記憶された識別情報のうち最初に記憶された識別情報を削除する情報処理装置。
  6. 請求項2において,
    前記特定の事象は,前記ジョブの終了,または,前記プログラムによる他のプログラムの呼び出しである情報処理装置。
  7. 監視対象の実行状態に関するトレース情報と,前記監視対象が使用可能な特定の資源を使用している前記監視対象の数である判定値とを記憶部に記憶し,
    前記監視対象が前記特定の資源の使用を開始したときに前記判定値を所定の値だけ増加させ,前記監視対象が前記特定の資源の使用を終了したときに前記判定値を前記所定の値だけ減少させ,
    特定の事象が発生したことに応じて,全ての前記監視対象が前記特定の資源の使用をしていないことを前記判定値が示しているか否かを判定し,
    前記判定値に基づいて全ての前記監視対象が前記特定の資源の使用をしていないと判定された場合,前記監視対象において異常が検知された際に参照されるトレース情報が前記記憶部に記憶されていないと判定し,前記記憶部に記憶したトレース情報を削除する,
    情報処理方法。
  8. 監視対象の実行状態に関するトレース情報と,前記監視対象が使用可能な特定の資源を使用している前記監視対象の数である判定値とを記憶部に記憶し,
    前記監視対象が前記特定の資源の使用を開始したときに前記判定値を所定の値だけ増加させ,前記監視対象が前記特定の資源の使用を終了したときに前記判定値を前記所定の値だけ減少させ,
    特定の事象が発生したことに応じて,全ての前記監視対象が前記特定の資源の使用をしていないことを前記判定値が示しているか否かを判定し,
    前記判定値に基づいて全ての前記監視対象が前記特定の資源の使用をしていないと判定された場合,前記監視対象において異常が検知された際に参照されるトレース情報が前記記憶部に記憶されていないと判定し,前記記憶部に記憶したトレース情報を削除する,
    処理をコンピュータに実行させる情報プログラム。
JP2014142131A 2014-07-10 2014-07-10 情報処理装置,情報処理方法及び情報処理プログラム Active JP6428005B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014142131A JP6428005B2 (ja) 2014-07-10 2014-07-10 情報処理装置,情報処理方法及び情報処理プログラム
US14/755,564 US9658909B2 (en) 2014-07-10 2015-06-30 Information processing apparatus, information processing method, and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014142131A JP6428005B2 (ja) 2014-07-10 2014-07-10 情報処理装置,情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2016018470A JP2016018470A (ja) 2016-02-01
JP6428005B2 true JP6428005B2 (ja) 2018-11-28

Family

ID=55067658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014142131A Active JP6428005B2 (ja) 2014-07-10 2014-07-10 情報処理装置,情報処理方法及び情報処理プログラム

Country Status (2)

Country Link
US (1) US9658909B2 (ja)
JP (1) JP6428005B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2548398B (en) * 2016-03-18 2019-12-11 Advanced Risc Mach Ltd Tracing processing activity
US10481997B2 (en) * 2016-11-27 2019-11-19 Amazon Technologies, Inc. Distributed code tracing system
JP6988178B2 (ja) 2017-06-14 2022-01-05 富士通株式会社 情報処理装置、ログ管理プログラム及びログ管理方法
JP6956347B2 (ja) * 2019-01-31 2021-11-02 株式会社安川電機 トレースデータ取得システム、トレースデータ取得方法、及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2662415B2 (ja) 1988-06-22 1997-10-15 富士通株式会社 トレース方式
JPH11232145A (ja) * 1998-02-13 1999-08-27 Sharp Corp ログ情報記録装置
US7080283B1 (en) * 2002-10-15 2006-07-18 Tensilica, Inc. Simultaneous real-time trace and debug for multiple processing core systems on a chip
JP2006331213A (ja) * 2005-05-27 2006-12-07 Nec Electronics Corp システムリソース管理装置、システムリソース管理方法及びプログラム
JP4847300B2 (ja) * 2006-11-27 2011-12-28 株式会社日立製作所 メモリリーク検出方法、メモリリーク検出装置及びメモリリーク検出プログラム
US7577679B2 (en) * 2006-12-29 2009-08-18 Teradata Us, Inc. Techniques for extending database date statistics
US8073806B2 (en) * 2007-06-22 2011-12-06 Avaya Inc. Message log analysis for system behavior evaluation
US20110098973A1 (en) * 2009-10-23 2011-04-28 Computer Associates Think, Inc. Automatic Baselining Of Metrics For Application Performance Management
US8539454B2 (en) * 2009-12-09 2013-09-17 International Business Machines Corporation Method and system for detecting memory leaks
US8626993B2 (en) * 2011-11-18 2014-01-07 Apple Inc. Method for tracking memory usages of a data processing system

Also Published As

Publication number Publication date
US20160011922A1 (en) 2016-01-14
JP2016018470A (ja) 2016-02-01
US9658909B2 (en) 2017-05-23

Similar Documents

Publication Publication Date Title
US7908521B2 (en) Process reflection
KR100868762B1 (ko) 임베디드용 소프트웨어의 오류 검출 방법
US9229840B2 (en) Managing traces to capture data for memory regions in a memory
US9811356B2 (en) Automated software configuration management
JP6365543B2 (ja) ソフトウェアエージングテストシステム、ソフトウェアエージングテスト方法及びソフトウェアエージングテスト用プログラム
US20140019807A1 (en) Transaction server performance monitoring using component performance data
JP6428005B2 (ja) 情報処理装置,情報処理方法及び情報処理プログラム
JP5648187B2 (ja) 計算機システム、および、監視方法
US20200310779A1 (en) Validating a firmware compliance policy prior to use in a production system
JP5754440B2 (ja) 構成情報管理サーバ、構成情報管理方法、及び構成情報管理用プログラム
CN114443332B (zh) 一种存储池的检测方法、装置、电子设备及存储介质
US8904359B2 (en) On-demand monitoring of memory usage
CN111258850A (zh) 一种基于Linux系统的更新软件信息的方法及装置
JP2015127879A (ja) メモリ管理プログラム、メモリ管理方法、及びメモリ管理装置
JP2016012179A (ja) 管理支援方法,管理支援装置及び管理支援プログラム
CN113867954A (zh) 一种基于线程池与对象池的线程处理方法、系统及介质
US9317273B2 (en) Information processing apparatus and information processing method
JP6751231B2 (ja) ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置
JP6497278B2 (ja) ログ管理プログラム、ログ管理方法およびログ管理装置
WO2016124102A1 (zh) 一种服务管理方法和装置
CN111857689A (zh) 一种框架、框架的功能配置方法、终端及存储介质
US20180007152A1 (en) Asynchronous custom exit points
JP7048890B2 (ja) 情報処理装置、情報収集プログラム及び情報収集方法
CN114296974A (zh) 操作系统应用层错误处理的方法、装置及电子设备
JP2009238011A (ja) 実行環境の制御方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181015

R150 Certificate of patent or registration of utility model

Ref document number: 6428005

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150