JP2013522741A - 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム - Google Patents

診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP2013522741A
JP2013522741A JP2012557526A JP2012557526A JP2013522741A JP 2013522741 A JP2013522741 A JP 2013522741A JP 2012557526 A JP2012557526 A JP 2012557526A JP 2012557526 A JP2012557526 A JP 2012557526A JP 2013522741 A JP2013522741 A JP 2013522741A
Authority
JP
Japan
Prior art keywords
state
computing environment
diagnostic data
data
monitor
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.)
Granted
Application number
JP2012557526A
Other languages
English (en)
Other versions
JP5623557B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013522741A publication Critical patent/JP2013522741A/ja
Application granted granted Critical
Publication of JP5623557B2 publication Critical patent/JP5623557B2/ja
Expired - Fee Related 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/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Recording Measured Values (AREA)

Abstract

【課題】 診断データを収集するためのマルチスレッド化コンピューティング環境における方法および装置を提供する。
【解決手段】 この装置は、コンピューティング環境が所定の無効状態にあるとモニターが判断したことに応答して、遅延しきい値を有するトラップ遅延コンポーネントを開始するための手段と、第1のスレッドにより、コンピューティング環境に関する診断データを記録するための手段とを含み,それがコンピューティング環境の過渡状態以外の状態であるという所定のインジケータに対応する合計カウントまたは期間について前記所定の無効状態が前記判断を繰り返したと前記モニターが判断するまで診断データを記録するための前記手段の動作を遅延設定が遅延させ、過渡状態は1つまたは複数の他のスレッドによる第1の有効状態から第2の有効状態へのコンピューティング環境の遷移に対応する。
【選択図】 図1

Description

本発明は、無効状態の判断時のコンピュータ環境における診断データ収集(diagnosticdata capture)に関する。特に、本発明は、無効状態の検証に関する。
マルチスレッド化コンピューティング環境(multithreaded computing environment)は、ソフトウェアを実行する複数のスレッドを同時に実行することができる。このような環境は、複数の命令を同時に実行できる複数のプロセッサまたは単一プロセッサを含む1つまたは複数のコンピュータ・システムを伴う可能性がある。
このような環境における問題判別および解決は、診断を支援するためのソフトウェアおよびハードウェア・ツールに頼っている。典型的に、コンピューティング環境においてソフトウェア・コードによりイベントの流れに関する情報を記録する能力が存在する。たとえば、IBM CICS製品には、「CICS Trace」として知られる機能が提供されている(IBMおよびCICSは、米国、その他の国、またはその両方におけるインターナショナル・ビジネス・マシーンズ社の登録商標である)。これにより、実行のスレッドがコンピューティング環境内の種々のソフトウェア・プログラムを移動するときに発生順に一連のイベントを収集することができる。
時には、特定のイベント(または一連のイベント)が発生したときに、追跡で提供される既存の診断データが特定の問題を解決するには不十分である場合、問題判別診断を収集する必要がある。コンピューティング環境の状態が不安定な動作状態、効果的ではない動作状態、または誤った動作状態を示すと判断されたときにその状態をモニターし、診断データを収集するためのモニターおよび診断ロジックをソフトウェアで実現することができる。このような状態は無効な実行状態と呼ぶことができる。CICSの例では、これは、「DFHTRAP」として知られるプログラムを使用して達成することができ、このプログラムは、その実行の特定のポイントでコンピューティング環境の状態を分析し、その時点における環境の状態次第で診断データを収集すべきかどうかについて決定することができる。
単一スレッド方式で実行するように実現されたコンピューティング環境では、一度に一続きの論理演算のみを実行することができ、その環境の状態を分析するモニターおよび診断ロジックは、それが分析されているときにその状態が静的であると確信することができる。これは、無効状態が検出された場合にそれが障害のインスタンスを表し、したがって、それに関する診断データを収集することが正しいことを意味する。
しかし、複数のオープン・タスク制御ブロック(TCB)を有するCICS Transaction Serverなどのマルチスレッド化コンピューティング環境では、コンピューティング環境がモニターされている間にその環境の状態が変化する可能性がある。モニターおよび診断スレッド以外の実行スレッドがモニター動作と同時に実行し続け、潜在的にコンピューティング環境の状態を変更するので、このような状態の変化が発生する可能性がある。このため、実際には他のスレッドが同じ瞬間にその環境の状態を変更した結果であるときに、その環境が無効状態になっているように見える可能性がある。
マルチスレッド化コンピューティング環境において問題となる可能性のある動作としては、たとえば、リンク・リスト・データ構造へのリスト項目の追加またはそこからのリスト項目の除去、インスタンス・データの更新、カウンタのインクリメントまたはデクリメント(しきい値以上または以下など)などを含む。このような動作は最終的にコンピューティング環境の無効状態になるわけではないが、動作全体に関連して理解されない場合に無効と見なされる可能性のある過渡状態による遷移を伴う可能性がある。たとえば、リンク・リスト・データ構造に項目を追加すると、瞬間的に、未初期化(その結果、無効な)メモリ参照(ポインタ)を含むリスト項目が新たに作成される可能性がある。このようなデータを分析するモニターおよび診断ロジックは、実際にはその状態が単に過渡状態であるときに、無効メモリ参照のために無効状態であると結論を下す可能性があり、新しいリンク・リスト項目を追加する動作全体の一部と見なされると、その動作は無効メモリ参照をまったく含まない有効リスト項目入力で終わることになる。同様に、カウンタに所定のしきい値を超えさせるようなカウンタのインクリメントを行うと、瞬間的に、しきい値を超えたのでモニターおよび診断ロジックによって無効状態と判断される可能性がある。実際にはその状態は単に過渡状態であり、カウンタをインクリメントし、カウンタをリセットする前にしきい値の違反の有無をチェックする動作全体の一部と見なされると、その動作は有効状態で終わることになる。したがって、モニターおよび診断ロジックによる無効状態の誤った肯定的判断がマルチスレッド化コンピューティング環境で発生する可能性があり、その結果、診断データが不必要に収集される可能性がある。
CICSのようなオンライン・トランザクション処理環境など、忙しい生産環境では、不必要な診断データを収集すると、その結果、パフォーマンスが大幅に劣化する可能性がある。明らかな解決策は、モニターおよび診断ロジックが実行している間、モニターおよび診断スレッド以外のすべてのスレッドを中断するようその環境に強制することなどにより、モニターおよび診断動作中にコンピューティング環境を同期させることである。モニターが行われるたびにすべてのスレッドが中断されるので、このような同期はコンピューティング環境に実行できないパフォーマンス・ボトルネックを課すことになり、その結果、パフォーマンスが低下する。
したがって、コンピューティング環境の状態における有効な過渡変化による診断データも収集し、診断データの不必要な収集から発生するパフォーマンスの劣化を被る可能性なしにコンピューティング環境の無効状態に関する診断データを収集することは、現在、不可能である。
したがって、本発明は、第1の態様において、診断データを収集するためのマルチスレッド化コンピューティング環境における方法を提供し、この方法は、コンピューティング環境が所定の無効状態にあるとモニターが判断したことに応答して、遅延しきい値を有するトラップ遅延コンポーネント(trap delay component)を開始するステップと、第1のスレッドにより、コンピューティング環境に関する診断データを記録するステップとを含み,それがコンピューティング環境の過渡状態以外の状態であるという所定のインジケータに対応する合計カウントまたは期間のうちの少なくとも一方について前記所定の無効状態が繰り返されたと前記モニターが判断するまで診断データを記録する前記ステップをトラップ遅延コンポーネントが遅延させ、過渡状態は1つまたは複数の他のスレッドによる第1の有効状態から第2の有効状態へのコンピューティング環境の遷移に対応する。
好ましくは、所定の無効状態は、コンピューティング環境のデータ・ストア内のデータの内容によって示される。所定の無効状態のデータは、破損しているかまたは不完全なデータである可能性がある。所定の無効状態は、コンピューティング環境で発生する一連のイベントによって示すことができる。一連のイベントは、コンピューティング環境内の1つまたは複数のスレッドで行われる処理アクションに対応することができる。この方法は、前記所定のインジケータを前記所定の無効状態の発生の合計カウントに設定することをさらに含むことができる。この方法は、前記所定のインジケータを前記所定の無効状態の発生をモニターするための期間に設定することをさらに含むことができる。
したがって、本発明は、第2の態様において、診断データを収集するためのマルチスレッド化コンピューティング環境における装置を提供し、この装置は、コンピューティング環境が所定の無効状態にあるとモニターが判断したことに応答して、遅延しきい値を有するトラップ遅延コンポーネントを開始するための手段と、第1のスレッドにより、コンピューティング環境に関する診断データを記録するための手段とを含み,それがコンピューティング環境の過渡状態以外の状態であるという所定のインジケータに対応する合計カウントまたは期間のうちの少なくとも一方について前記所定の無効状態が繰り返されたと前記モニターが判断するまで診断データを記録するための前記手段の動作をトラップ遅延コンポーネントが遅延させ、過渡状態は1つまたは複数の他のスレッドによる第1の有効状態から第2の有効状態へのコンピューティング環境の遷移に対応する。
したがって、本発明は、第3の態様において、中央演算処理装置と、メモリ・サブシステムと、入出力サブシステムと、中央演算処理装置、メモリ・サブシステム、入出力サブシステム、および上記の装置を相互接続するバス・サブシステムとを含む装置を提供する。
したがって、本発明は、第4の態様において、コンピュータ・システムにロードされ、そこで実行されたときに、上記の方法のステップをコンピュータに実行させるためのコンピュータ・プログラム・コードを含むコンピュータ・プログラム要素を提供する。
添付図面に関連して、一例としてのみ、本発明の好ましい一実施形態について、以下により詳細に説明する。
従来技術によりマルチスレッド化コンピューティング環境が無効状態にあるときの診断データの収集のためのモニターおよび診断ロジックを含むマルチスレッド化コンピューティング環境のブロック図である。 本発明の諸実施形態の動作に適したコンピュータ・システムのブロック図である。 本発明の好ましい一実施形態によりマルチスレッド化コンピューティング環境が無効状態にあるときの診断データの収集のためのモニターおよび診断ロジックを含むマルチスレッド化コンピューティング環境のブロック図である。 本発明の好ましい一実施形態による図3のモニターおよび診断ロジックの動作の流れ図である。
図1は、従来技術によりマルチスレッド化コンピューティング環境が無効状態にあるときの診断データ118の収集のためのモニターおよび診断ロジック108を含むマルチスレッド化コンピューティング環境102のブロック図である。マルチスレッド化コンピューティング環境102は複数のソフトウェア・スレッド106、114、116を含む。各スレッドは、ソフトウェア実行の個別のストリームであり、ソフトウェア命令を含む。また、スレッド106、114、116は、メモリ・スタックとして知られるコンピュータ・システム内の記憶領域に通常保管されたスレッド・データも含むことができる。スレッド106、114、および116は、マルチプロセッサ・コンピュータ・システムなどの1つまたは複数のコンピュータ・システム、同時に複数のソフトウェア命令の実行のために複数のサブプロセッサを含むシステム(マルチコア・プロセッサなど)、あるいは1つまたは複数のソフトウェア・アプリケーションの実行のために通信可能に接続された複数のコンピュータ・システムを有するコンピューティング環境で実質的に同時に実行される。代わって、スレッド106、114、および116は、単一プロセッサが複数のスレッド間で共用され、個々の命令が一度に1つずつ処理される間に複数のスレッドを実質的に同時に実行できるような、多重化またはチャネル化ベースの単一プロセッサ内で実行することができる。たとえば、処理装置は、ラウンドロビン、時分割、または優先順位主導ベースで複数のスレッド間でその処理を分割することができる。
第1のスレッド106は、無効状態に対応する問題のある動作状態についてコンピューティング環境102の全部または一部の実行をモニターする、モニターおよび診断ロジック108の実行を含む。第1のスレッド106はモニターおよび診断ロジック108専用にすることができる。代わって、モニターおよび診断ロジック108は、ソフトウェア・アプリケーション動作など、他のソフトウェア動作の実行にも使用される、スレッド106の一部として実行することができる。たとえば、モニターおよび診断ロジック108は、所定のスケジュールに応じて定期的に、あるいは環境の作業負荷が十分に重いかまたは軽いときなど、コンピューティング環境内の条件が許すときに、実行することができる。
モニターおよび診断ロジック108は、無効状態を識別するためにスレッド106、114、および116内でソフトウェア動作の実行をモニターするためのソフトウェア・ルーチンである状態モニター110を含む。さらに、状態モニター110は、無効データ状態について、コンピューティング環境102に関連する揮発性または不揮発性メモリなど、コンピューティング環境102用の1つまたは複数のデータ・ストア(図示せず)をモニターする。たとえば、このようなメモリとしては、コンピューティング環境102用の1つまたは複数のメモリ・ヒープを含むことができる。
このようにして、状態モニター110は、破損しているかまたは不完全なものに見えるデータなど、コンピューティング環境のデータ・ストア内のデータの内容によって示される無効状態と、誤っているかまたは誤り状態を示す、コンピューティング環境102内の1つまたは複数のスレッドで行われる処理アクションなど、コンピューティング環境102で発生する一連のイベントによって示される無効状態という2通りの一般的なカテゴリに属する無効状態を判別することができる。
状態モニター110は、コンピューティング環境102に関する無効状態の規則、基準、または特性の定義を提供する所定の無効状態情報104を基準としてコンピューティング環境102の無効状態を識別する。無効状態情報104は、揮発性または不揮発性記憶装置、ヒープ・メモリ、ディスクまたはテープ、フラッシュ・メモリ、あるいは任意のその他の適切なメモリなど、コンピューティング環境のメモリに保管することができる。無効状態情報104は、データ構造などの構造化データ・フォーマットに、または代わって、XMLまたはその他の意味データ・フォーマットなど、構文解析可能なフォーマットに編成することができる。さらに、無効状態情報104はデータベースに保管することができる。
無効状態情報104は、上記の2通りの一般的なカテゴリの無効状態においてコンピューティング環境102の無効状態を識別する際に状態モニター110を支援するのに適している。たとえば、コンピューティング環境102のデータ・ストア内のデータの内容によって示される無効状態は、無効データを特徴付ける1組の基準として無効状態情報104に表すことができる。無効参照(ポインタなど)は、アドレス可能範囲の外側にあるメモリ・アドレス、あるいは安全なまたは保護されたメモリ範囲内のメモリ・ロケーションであって、直接アクセス可能ではないかまたは直接アクセス可能であってはならないメモリ・ロケーションを示すメモリ・アドレスを含むことができる。無効状態情報104は、状態モニター110が無効データ状態を識別するためにコンピューティング環境102のデータ・ストア内のこのような無効メモリ参照を識別できるように無効メモリ参照の指示を含むことができる。
第2の例では、状態モニター110が無効データ状態を識別するためにコンピューティング環境102のデータ・ストア内の無効カウンタ値を識別できるようにカウンタの有効範囲あるいは最大値または最小値を識別することにより、カウンタ・データ項目が所定のしきい値を超えることにより発生する無効状態を無効状態情報104に表すことができる。
第3の例では、状態モニター110がコンピューティング環境102内の無効状態(エラーまたは例外状態に対応するものなど)を識別するためにこのような動作を伴う一連のイベントを識別できるように、一連のイベントがエラーまたは例外処理あるいは捕捉動作の実行を伴うことにより発生する無効状態を無効状態情報104に表すことができる。
モニターおよび診断ロジック108は、マルチスレッド化コンピューティング環境102が無効状態にあるという状態モニター110による判断に応答して診断データ118を収集するように適合された診断データ収集ツール112をさらに含む。診断データ収集ツール112は、コンピューティング環境102に保管されたデータおよびコンピューティング環境102で実行されるスレッドを含む、コンピューティング環境102から診断データを受信するか、読み取るか、または決定する。たとえば、診断データは、コンピューティング環境102のメモリに記録されたデータ状態として読み取ることができるか、診断データ収集ツール112によって行われたデータ要求に応答してスレッドから受信することができるか、あるいはそのツールによって使用可能、読み取り可能、または受信可能なデータを基礎として診断データ収集ツール112によって決定することができる。診断データ118として診断データ収集ツール112によって記録された情報としては、スタック、ヒープ、およびその他のメモリ・ダンプを含むメモリ・ダンプなどのデータ・ダンプ、スタック追跡情報、スレッド状態情報を記録するスレッド・データ・ダンプを含むスレッド情報、メモリ、ディスク、周辺状態情報、および当業者にとって既知のものになるその他の情報を含むプロセスおよびリソース情報を含むことができる。診断データ118は、適切な不揮発性または揮発性メモリまたは記憶装置などのデータ・ストアに記録される。
したがって、図1に描写されている従来技術の配置では、モニターおよび診断ロジック108は、無効状態情報104により無効状態を識別するために、保管データならびにスレッド106、114、および116で発生する動作を含むコンピューティング環境102の状態を渋滞モニター110によってモニターする。状態モニター110が無効状態を識別すると、診断データ収集ツール112は、コンピューティング環境における診断データを受信するか、読み取るか、または決定し、その診断データを診断データ・ストア118に保管する。図1の従来技術の配置では、コンピューティング環境の状態における有効な過渡変化による診断データも収集し、診断データの不必要な収集から発生するパフォーマンスの劣化を被る可能性なしにコンピューティング環境の無効状態に関する診断データを収集することは不可能である。特に、その環境の状態における過渡変化は、スレッド106が状態モニター動作に取りかかっているのと同時にスレッド114および116の一方または両方で発生する可能性がある。本発明の好ましい諸実施形態は、図2〜図4に関連して以下に述べるようにこの問題に対処しようとするものである。
図2は、本発明の諸実施形態の動作に適したコンピュータ・システムのブロック図である。中央処理装置ユニット(CPU)202は、データ・バス208を介して記憶装置204および入出力(I/O)インターフェース206に通信可能に接続される。記憶装置204は、ランダム・アクセス・メモリ(RAM)または不揮発性記憶装置などの任意の読み取り/書き込み記憶装置にすることができる。不揮発性記憶装置の一例は、ディスクまたはテープ記憶装置を含む。I/Oインターフェース206は、データの入力または出力のための装置あるいはデータの入力および出力両方のための装置へのインターフェースである。I/Oインターフェース206に接続可能なI/O装置の例としては、キーボード、マウス、ディスプレイ(モニターなど)、およびネットワーク接続を含む。
図3は、本発明の好ましい一実施形態によりマルチスレッド化コンピューティング環境が無効状態にあるときの診断データ318の収集のためのモニターおよび診断ロジック308を含むマルチスレッド化コンピューティング環境302のブロック図である。図3の諸要素の多くは図1に関連して上述したものと同一であり、これらの説明はここでは繰り返さない。図3のモニターおよび診断ロジック308は、状態モニター310によって識別された無効状態がコンピューティング環境302の過渡状態以外の状態に対応するものとして識別されるまで診断データ収集ツール312の実行を遅延させるためのトラップ遅延コンポーネント322をさらに含む。過渡状態は、スレッドによる第1の有効状態から第2の有効状態へのコンピューティング環境302の遷移により発生する。このような遷移は、第1のスレッド306がモニターおよび診断動作に取りかかっているときに第1のスレッド306と同時に実行している第1のスレッド306以外のスレッドによって引き起こされることになる。有効状態とは、無効状態情報304内の無効状態定義を基準として無効状態であると判断できない状態である。マルチスレッド化コンピューティング環境302では、モニターおよび診断ロジック308のスレッド306と同時に実行しているその他スレッドが、モニターおよび診断ロジック308が実行している間にその環境302の状態に影響を及ぼす可能性があるので、状態モニター310によって検出される無効状態は無効状態および過渡状態にすることができる。
第1の有効状態から第2の有効状態への遷移により発生し、このように無効だが過渡的な状態を構成する無効状態の例としては、以下のものを含む。
1.新たに作成されたリスト項目が未初期化(その結果、無効な)メモリ参照(ポインタ)を含むようなリンク・リスト・データ構造への項目の追加。メモリ参照が未初期化である間、コンピューティング環境302は無効状態にある。しかし、無効状態は、新しいリスト入力が作成される前の有効状態と、新しいリスト入力が適切にリンク・リスト・データ構造に統合されたときの有効状態との間に発生する。したがって、無効状態は2つの有効状態の間の過渡状態を構成する。
2.カウンタに所定のしきい値を超えさせるようなカウンタのインクリメント。カウンタがしきい値を超えている間、コンピューティング環境302は無効状態にある。しかし、無効状態は、インクリメントする前のカウンタの有効状態と、カウンタがしきい値を超えたことをソフトウェアが検出し、カウンタをリセットした後の有効状態との間に発生する。したがって、無効状態は2つの有効状態の間の過渡状態を構成する。
3.後で成功する失敗動作を再試行するように例外ハンドラが実現された場合の例外の捕捉に対応する一連のソフトウェア動作。例外ハンドラに入った瞬間に、コンピューティング環境は無効状態(例外状態)にある。しかし、無効状態は、例外前の有効状態と、成功を達成するために動作を再試行するように例外ハンドラを処理した後の有効状態との間に発生する。したがって、無効状態は2つの有効状態の間の過渡状態を構成する。
2つの有効状態の間の過渡状態中の通常処理の単なる結果として無効状態が発生するような追加のシナリオは当業者にとって自明なことになるであろう。
トラップ遅延コンポーネント322は遅延設定320を基準としてトラップ遅延を実行する。遅延設定320は、時間固有の設定、カウント固有の設定、およびスレッド固有の設定を含むことができ、したがって、状態モニター310によって識別された無効状態が過渡状態ではないかまたは過渡状態になりそうもないことを確認するために診断データ収集ツール312の実行において十分な遅延を引き起こすのに適している。一実施形態では、たとえば、診断データ収集ツール312の実行における遅延は、スレッド固有のタイムスタンプ付きモニターまたは追跡レコードが蓄積される間に遅延させ、無効状態が他の実行中のスレッドによって引き起こされた単なる過渡状態を超えるものであることを示すことを伴う。遅延設定320は、たとえば、特定のスレッドに関する期間における無効状態追跡項目のカウントを含むことができる。遅延設定320は、モニターおよび診断ロジック308の外部に保管されるものとして示されているが、これらの規則は、コンピューティング環境302のデータベース、揮発性または不揮発性メモリ内、第1のスレッド306に関するスレッド・データ内、無効状態検証器322または任意のその他の適切な記憶位置内など、トラップ遅延コンポーネント322による使用のために任意の適切な位置および形式で保管できることは当業者にとって自明なことになるであろう。
したがって、使用中の状態モニター310は、無効状態情報304を参照することによりコンピューティング環境302の無効状態を識別し、遅延設定320を使用して無効状態が過渡状態ではないことが検証されるときまで、トラップ遅延コンポーネント322により診断データ収集ツール312の実行を遅延させる。無効状態がトラップ遅延コンポーネント322の実行後に過渡状態以外の状態であると確認された場合、診断データ収集ツール312は上記のように診断データ318を収集する。このようにして、コンピューティング環境302の状態が無効状態ではあるが、その状態が有効状態の間の過渡状態ではないときに、モニターおよび診断ロジック308は診断データ318を収集する。
図4は、本発明の好ましい一実施形態による図3のモニターおよび診断ロジック308の動作の流れ図である。ロジック開始点は開始ステップ400である。ステップ402では、状態モニター310はコンピューティング環境302の状態をモニターする。ステップ404では、状態モニター310は、無効状態情報304を基準として無効状態が存在する可能性があることを識別し、ステップ406でトラップ遅延コンポーネント322を開始する。トラップ遅延コンポーネント322は、遅延設定320に基づいて動作し、たとえば、状態モニター310が遅延設定320に設定されたある期間についてまたは発生の合計カウントについてそのスレッドに関する無効状態の複数のインジケータを蓄積するまで、ステップ402、404、406を繰り返すことにより診断データ収集ツール312の実行を遅延させる。
ステップ406で、状態モニター310が遅延設定320に設定されたある期間についてまたは発生の合計カウントについてそのスレッドに関する無効状態の複数のインジケータを蓄積した場合、システムは、その無効状態がコンピューティング環境302の過渡状態以外の状態に対応するという証拠を有し、ステップ408で診断データ収集ツール312を実行させて、ステップ410で診断データを生成する。ロジックは終了ステップ412で終了する。
本発明の好ましい諸実施形態の方法の全部または一部は、この方法の諸ステップを実行するように配置された論理素子を含む1つの論理装置または複数の論理装置で適切にかつ有用に実施することができ、このような論理素子はハードウェア・コンポーネント、ファームウェア・コンポーネント、またはこれらの組み合わせを含むことができることは当業者にとって明白なことになるであろう。
本発明の好ましい諸実施形態による論理配置の全部または一部は、この方法の諸ステップを実行するための論理素子を含む1つの論理装置で適切に実施することができ、このような論理素子は、たとえば、プログラマブル論理アレイまたは特定用途向け集積回路内の論理ゲートなどのコンポーネントを含むことができることは当業者にとって同様に明白なことになるであろう。このような論理配置は、たとえば、固定または伝送可能キャリア・メディアを使用して保管または伝送可能な仮想ハードウェア記述子言語を使用して、このようなアレイまたは回路内に論理構造を一時的にまたは永続的に確立するための素子を使用可能にする際にさらに実施することができる。
上記の方法および配置は1つまたは複数のプロセッサ(図示せず)上で実行されるソフトウェアでも完全にまたは部分的に適切に実行することができ、このソフトウェアは磁気ディスクまたは光ディスクなどの任意の適切なデータ・キャリア(同じく図示せず)上に担持される1つまたは複数のコンピュータ・プログラム要素の形で提供できることは認識されるであろう。データ伝送のためのチャネルは同様に、すべての種類の記憶媒体ならびに有線または無線信号伝送媒体などの信号伝送媒体を含むことができる。
方法とは、一般に、所望の結果に至る筋の通った一連のステップであると考えられている。これらのステップは物理量の物理的操作を必要とする。必ずではないが、通常、このような物理量は、保管、転送、結合、比較、およびその他の操作が可能な電気信号または磁気信号の形を取る。時には、主として一般的使用法という理由で、これらの信号をビット、値、パラメータ、項目、要素、オブジェクト、シンボル、文字、項、数字などと呼ぶことは都合の良いことである。しかし、これらの用語および同様の用語のすべては、適切な物理量に関連付けられるべきであり、これらの物理量に適用された便利なラベルに過ぎないことに留意されたい。
本発明は、コンピュータ・システムで使用するためのコンピュータ・プログラム(computer program product)としてさらに適切に実施することができる。このような実現例は、たとえば、ディスケット、CD−ROM、ROM、またはハード・ディスクなどのコンピュータ可読媒体などの有形媒体上に固定された一連のコンピュータ可読命令、あるいは光通信回線またはアナログ通信回線を含むがこれらに限定されない有形媒体によるか、マイクロ波、赤外線、またはその他の伝送技法を含むがこれらに限定されない無線技法を無形に使用して、モデムまたはその他のインターフェース・デバイスを介してコンピュータ・システムに伝送可能な一連のコンピュータ可読命令を含むことができる。一連のコンピュータ可読命令は本明細書で前述した機能の全部または一部を実施する。
当業者であれば、このようなコンピュータ可読命令が多くのコンピュータ・アーキテクチャまたはオペレーティング・システムで使用するためにいくつかのプログラミング言語で作成できることを認識するであろう。さらに、このような命令は、半導体、磁気、または光を含むがこれらに限定されない現在または将来の任意のメモリ技術を使用して保管するか、あるいは光、赤外線、またはマイクロ波を含むがこれらに限定されない現在または将来の任意の通信技術を使用して伝送することができる。このようなコンピュータ・プログラムは、たとえば、ソフトウェア・パッケージなど、印刷文書または電子文書が添付された取り外し可能媒体として配布するか、たとえば、システムROMまたは固定ディスク上にコンピュータ・システムとともにプリロードするか、あるいは、たとえば、インターネットまたはWorld Wide Webなどのネットワークによりサーバまたは電子掲示板から配布することができることが企図されている。
一代替例では、本発明の好ましい実施形態は、コンピュータ・インフラストラクチャ内に配備され、そこで実行されたときに、この方法のすべてのステップを前記コンピュータ・システムに実行させるように動作可能なコンピュータ・プログラム・コードを配備する諸ステップを含むサービスを配備するためのコンピュータによって実行される方法の形で具現化することができる。
他の代替例では、本発明の好ましい実施形態は、そこに機能データを有するデータ・キャリアの形で具現化することができ、前記機能データは、コンピュータ・システムにロードされ、それにより操作されたときに、この方法のすべてのステップを前記コンピュータ・システムが実行できるようにするための機能的なコンピュータ・データ構造を含む。
本発明の範囲を逸脱せずに、上記の模範的な実施形態に対して多くの改良および変更を行うことができることは当業者にとって明白なことになるであろう。

Claims (11)

  1. 診断データを収集するためにマルチスレッド化コンピューティング環境を操作するための方法であって、前記方法が、
    前記コンピューティング環境が所定の無効状態にあるとモニターが判断したことに応答して、遅延しきい値を有するトラップ遅延コンポーネントを開始するステップと、
    第1のスレッドにより、前記コンピューティング環境に関する診断データを記録するステップとを含み,
    それが前記コンピューティング環境の過渡状態以外の状態であるという所定のインジケータに対応する合計カウントまたは期間のうちの少なくとも一方について前記所定の無効状態が繰り返されたと前記モニターが判断するまで診断データを記録する前記ステップを前記トラップ遅延コンポーネントが遅延させ、前記過渡状態が1つまたは複数の他のスレッドによる第1の有効状態から第2の有効状態への前記コンピューティング環境の遷移に対応する、方法。
  2. 前記所定の無効状態が前記コンピューティング環境のデータ・ストア内のデータの内容によって示される、請求項1記載の方法。
  3. 前記データが破損している、請求項2記載の方法。
  4. 前記データが不完全である、請求項2記載の方法。
  5. 前記無効状態が前記コンピューティング環境で発生する一連のイベントによって示される、請求項1記載の方法。
  6. 前記一連のイベントが、前記コンピューティング環境内の1つまたは複数のスレッドで行われる処理アクションに対応する、請求項5記載の方法。
  7. 前記所定のインジケータを前記所定の無効状態の発生の合計カウントに設定することをさらに含む、請求項1ないし6のいずれかに記載の方法。
  8. 前記所定のインジケータを前記所定の無効状態の発生をモニターするための期間に設定することをさらに含む、請求項1ないし7のいずれかに記載の方法。
  9. 診断データを収集するためのマルチスレッド化コンピューティング環境における装置であって、
    前記コンピューティング環境が所定の無効状態にあるとモニターが判断したことに応答して、遅延しきい値を有するトラップ遅延コンポーネントを開始するための手段と、
    第1のスレッドにより、前記コンピューティング環境に関する診断データを記録するための手段とを含み,
    それが前記コンピューティング環境の過渡状態以外の状態であるという所定のインジケータに対応する合計カウントまたは期間のうちの少なくとも一方について前記所定の無効状態が繰り返されたと前記モニターが判断するまで診断データを記録するための前記手段の動作を前記トラップ遅延コンポーネントが遅延させ、前記過渡状態が1つまたは複数の他のスレッドによる第1の有効状態から第2の有効状態への前記コンピューティング環境の遷移に対応する、装置。
  10. 中央演算処理装置と、メモリ・サブシステムと、入出力サブシステムと、前記中央演算処理装置、前記メモリ・サブシステム、前記入出力サブシステム、および請求項9記載の前記装置を相互接続するバス・サブシステムとを含む装置。
  11. コンピュータ・システムにロードされ、そこで実行されたときに、請求項1ないし8のいずれかに記載の方法の前記ステップを前記コンピュータに実行させるためのコンピュータ・プログラム・コードを含むコンピュータ・プログラム。
JP2012557526A 2010-03-16 2011-03-15 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム Expired - Fee Related JP5623557B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10156667 2010-03-16
EP10156667.7 2010-03-16
PCT/EP2011/053886 WO2011113828A1 (en) 2010-03-16 2011-03-15 Diagnostic data capture in a computing environment

Publications (2)

Publication Number Publication Date
JP2013522741A true JP2013522741A (ja) 2013-06-13
JP5623557B2 JP5623557B2 (ja) 2014-11-12

Family

ID=43827983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012557526A Expired - Fee Related JP5623557B2 (ja) 2010-03-16 2011-03-15 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム

Country Status (6)

Country Link
US (1) US9009537B2 (ja)
JP (1) JP5623557B2 (ja)
CN (1) CN102792278B (ja)
DE (1) DE112011100168B4 (ja)
GB (1) GB2491274B (ja)
WO (1) WO2011113828A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102792278B (zh) * 2010-03-16 2015-09-16 国际商业机器公司 用于计算环境中的诊断数据捕获的方法和设备
US9183048B2 (en) * 2012-12-20 2015-11-10 Oracle International Corporation System and method for implementing scalable contention-adaptive statistics counters
CN104239168B (zh) * 2013-06-09 2018-03-23 腾讯科技(深圳)有限公司 卡顿检测方法和设备
US9535780B2 (en) * 2013-11-18 2017-01-03 International Business Machines Corporation Varying logging depth based on user defined policies
US10169130B2 (en) 2016-07-19 2019-01-01 International Business Machines Corporation Tailoring diagnostic information in a multithreaded environment
US11221908B1 (en) * 2021-03-02 2022-01-11 International Business Machines Corporation Discovery of an inexplicit link between a change and an incident in a computing environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10512109A (ja) * 1994-12-23 1998-11-17 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 故障監視
US20050246590A1 (en) * 2004-04-15 2005-11-03 Lancaster Peter C Efficient real-time analysis method of error logs for autonomous systems
US20060200823A1 (en) * 2005-03-02 2006-09-07 Microsoft Corporation Systems and methods of reporting multiple threads involved in a potential data race
US7165190B1 (en) * 2002-07-29 2007-01-16 Oracle International Corporation Method and mechanism for managing traces within a computer system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371930A (en) * 1980-06-03 1983-02-01 Burroughs Corporation Apparatus for detecting, correcting and logging single bit memory read errors
US7849465B2 (en) 2003-02-19 2010-12-07 Intel Corporation Programmable event driven yield mechanism which may activate service threads
US7395458B2 (en) * 2004-05-21 2008-07-01 Bea Systems, Inc. Diagnostic instrumentation
US7984220B2 (en) * 2004-09-02 2011-07-19 International Business Machines Corporation Exception tracking
US7814374B2 (en) * 2007-01-19 2010-10-12 International Business Machines Corporation System and method for the capture and preservation of intermediate error state data
US20090320021A1 (en) 2008-06-19 2009-12-24 Microsoft Corporation Diagnosis of application performance problems via analysis of thread dependencies
US8489938B2 (en) 2009-09-18 2013-07-16 International Business Machines Corporation Diagnostic data capture in a computing environment
CN102792278B (zh) * 2010-03-16 2015-09-16 国际商业机器公司 用于计算环境中的诊断数据捕获的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10512109A (ja) * 1994-12-23 1998-11-17 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 故障監視
US7165190B1 (en) * 2002-07-29 2007-01-16 Oracle International Corporation Method and mechanism for managing traces within a computer system
US20050246590A1 (en) * 2004-04-15 2005-11-03 Lancaster Peter C Efficient real-time analysis method of error logs for autonomous systems
US20060200823A1 (en) * 2005-03-02 2006-09-07 Microsoft Corporation Systems and methods of reporting multiple threads involved in a potential data race

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNH200700095003; 平野敬幸 外1名: 'BANCS接続システム(3)-ホストオンライン処理に要求される信頼性・パフォーマンスの実現' UNISYS TECHNOLOGY REVIEW 第75号, 20021130, p.42-53, 日本ユニシス株式会社 *
JPN6014019759; 平野敬幸 外1名: 'BANCS接続システム(3)-ホストオンライン処理に要求される信頼性・パフォーマンスの実現' UNISYS TECHNOLOGY REVIEW 第75号, 20021130, p.42-53, 日本ユニシス株式会社 *

Also Published As

Publication number Publication date
GB2491274A (en) 2012-11-28
WO2011113828A1 (en) 2011-09-22
US20130013963A1 (en) 2013-01-10
CN102792278B (zh) 2015-09-16
GB201209514D0 (en) 2012-07-11
DE112011100168B4 (de) 2023-12-14
JP5623557B2 (ja) 2014-11-12
DE112011100168T5 (de) 2012-10-31
CN102792278A (zh) 2012-11-21
US9009537B2 (en) 2015-04-14
GB2491274B (en) 2016-03-30

Similar Documents

Publication Publication Date Title
US8141053B2 (en) Call stack sampling using a virtual machine
US8949671B2 (en) Fault detection, diagnosis, and prevention for complex computing systems
JP5623557B2 (ja) 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム
JP2020512613A5 (ja)
US7685575B1 (en) Method and apparatus for analyzing an application
US20100017583A1 (en) Call Stack Sampling for a Multi-Processor System
JP4562568B2 (ja) 異常検出プログラムおよび異常検出方法
US8286134B2 (en) Call stack sampling for a multi-processor system
US9471655B2 (en) Enabling symptom verification
US20110072299A1 (en) Leak monitoring system and associated methods
US20090300644A1 (en) Method to Detect a Deadlock Condition by Monitoring Firmware Inactivity During the System IPL Process
US9442817B2 (en) Diagnosis of application server performance problems via thread level pattern analysis
US20120180057A1 (en) Activity Recording System for a Concurrent Software Environment
US10043139B2 (en) Method and apparatus for resolving contention in a computer system
CN114328102A (zh) 设备状态监控方法、装置、设备及计算机可读存储介质
US20120246518A1 (en) Operating a computer system
US8489938B2 (en) Diagnostic data capture in a computing environment
Ghanbari et al. Stage-aware anomaly detection through tracking log points
US10740166B2 (en) Thread based dynamic data collection
JP4992740B2 (ja) マルチプロセッサシステム、障害検出方法および障害検出プログラム
JP5365273B2 (ja) 情報処理システム、監視方法及び監視プログラム
US9317262B2 (en) Identification of code synchronization points
WO2009147738A1 (ja) 情報処理装置及びその制御方法並びにモニタプログラム
JP2012108848A (ja) 動作ログ収集システム及びプログラム
CN113704088A (zh) 一种进程追溯方法、进程追溯***及相关装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140819

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: 20140902

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140924

R150 Certificate of patent or registration of utility model

Ref document number: 5623557

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees