エラーおよびストールの検出と分析
ストールは、しきい値で指定された時間内に完了していないトランザクション(トランザクションのコンポーネント)です。ストールしたトランザクションまたはコンポーネントの場所を特定した後に以下の操作を実行できます。
apmdevops104jp
ストール
は、しきい値で指定された時間内に完了していないトランザクション(トランザクションのコンポーネント)です。ストールしたトランザクションまたはコンポーネントの場所を特定した後に以下の操作を実行できます。3
エラーおよびストールを分析する方法
このシナリオを使用するケース
APM ダッシュボードに表示されたりレポートで通知されるようなアプリケーション パフォーマンスの問題が発生している場合にこのシナリオを使用します。
前提条件
始める前に、問題の個所を特定します。詳細については、「アプリケーションの問題の特定」を参照してください。
エージェントはトランザクションに関するデータを収集し、このデータを Enterprise Manager に送信して処理および WebView での表示を行います。このデータにはアプリケーション エラーとストールに関する情報が含まれます。
エラー
エラーは JVM または HTTP のエラー コードによってレポートされた例外です。たとえば、以下の通りです。
- HTTP エラー ステータス -- たとえば 404、Page Not Found など
- SQL 例外
- Java 例外
ストール
ストールは、しきい値で指定された時間内に完了していないトランザクション(トランザクションのコンポーネント)です。
以下のタスクを実行できます。
- 深刻なエラーおよびストールが発生した場合は、その原因を検出して問題の切り分けを行い、関連するイベントを監視します。
- エラーの頻度および性質を特定します。
- 問題の根本原因を特定します。
以下の図は、エラーやストールを分析してアプリケーション パフォーマンスの問題の根本原因を特定する方法を説明しています。

以下の手順に従います。
- メトリック ブラウザでのエラーおよびストールの検出。
- 高深度可視性追跡コンポーネントを理解します。
- ビューアを使用したエラーやストールの切り分け。
- (オプション)トランザクション追跡でのエラーの確認。
メトリック ブラウザでのエラーおよびストールの検出
深刻なエラーおよびストールが発生した場合は、その原因を検出して問題の切り分けを行うことができます。[メトリック ブラウザ]タブの詳細情報を表示して、エージェントおよびコンポーネントを監視できます。
注:
CA APM では、エラーおよびストール情報の表示が 15 秒ごとに更新されます。以下の手順に従います。
- APM Team Center で、[WebView]をクリックします。
- [Investigator]-[メトリック ブラウザ]をクリックします。
- 監視するエージェントまたはコンポーネントまで移動し、[エラー]タブを選択します。[エラー]タブには、JVM または .NET CLR について 1 つのエージェントがレポートしたデータが表示されます。そのエージェントまたはコンポーネントについて何らかのエラーまたはストールがレポートされている場合は、エラーまたはストールのリストが表示されます。
- ステータス バーで、エージェントの場所、エラーのタイム スタンプおよび期間を確認します。
- [追跡]タブを選択します。エラーは、赤地の円の中に白い X 印のあるアイコンで示されています。
- 列の見出しをクリックして、その列の内容によって行を並べ替えます。新しいエラーまたはストールが発生すると、並べ替え順にしたがって表示されます。
高深度可視性追跡コンポーネント
スマート インスツルメンテーションが有効な場合、エージェントはトランザクション コンポーネントに関する詳細情報をメソッド レベルまで自動的に検出および収集します。エージェントは、ProbeBuilder ディレクティブ(PBD)を使用せずに、高深度可視性コンポーネントの検出および自動インスツルメントを実行します。ストールしたトランザクションに表示される高深度可視性コンポーネントには、クラス名、メソッド名、および期間のみが含まれます。要件および環境に応じて、高深度追跡の可視性の深度と範囲を設定できます。たとえば、エージェントが自動的に検出およびインスツルメントを行うアプリケーションコードの量を、少量、中量、大量のいずれにするかなどを設定します。詳細については、「スマート インスツルメンテーションの設定」を参照してください。
注
: スマート インスツルメンテーションは、Java エージェントでのみ使用可能であり、.NET エージェントでは使用できません。ビューアを使用したエラーやストールの切り分け。
ライブおよび履歴エラーやストールが複数のエージェントで発生するに従って、これらを確認します。
Enterprise Manager により監視されているすべてのエージェントで発生するエラーを調査する場合は、Live Error および Historical Event ビューアを使用します。エラーと特定のアプリケーションの間に相関があるかどうかを判断できます。たとえば、あるアプリケーションのバックエンド コンポーネントで発生したエラーが、いつ、別のコンポーネントのフロントエンドでエラーを引き起こしているかを確認することができます。
以下の手順に従います。
- WebView Live Error Viewer で複数のエージェントに関するライブ情報を確認するには、以下のようにします。
- [ツール] - [ライブ エラー ビューア]をクリックします。
- 現在発生しているエラーのリストをライブ エラー テーブルで確認します。情報は 15 秒ごとに更新されます。各列には、以下のような情報が表示されます。
- Timestampルート コンポーネントの呼び出し開始時刻(システム クロックに基づく)を表示します。
- 説明エラーを発生させたコンポーネントのタイプを識別します。コンポーネント リソース名の最初のセグメントに適用されます。標準の J2EE Blamed メトリックの場合は、Servlets、JSP、EJB、JNDI などが例として挙げられます。.NET コンポーネントの場合の例としては、Messaging および WebMail があります。
- エラー メッセージキャプチャされた完全一致のエラー メッセージを表示します。
- 列の見出しをクリックして、その列の内容によって行を並べ替えます。新しいエラーが発生すると、これらのエラーは並べ替え順にしたがって表示されます。
- テーブル内の行を選択してエラーに関するより詳細な情報を表示します。ステータス バーには、イベントの数および現在の日付と時刻が表示されます。ステータス バーの下に展開されるツリーには、呼び出しパスのどこでエラーが発生したかが示されます。展開されたツリーは、エラー スナップショットと呼ばれます。エラー メッセージは赤で表示されます。そのエラーがストールである場合、エラー メッセージは「Stalled Transaction」です。
- WebView で履歴情報を参照する方法。
- [ツール] - [履歴イベント ビューア]をクリックします。
- [クエリ]ペインでクエリを入力し、[実行]をクリックします。たとえば、すべてのエラーを確認する場合は、以下のように入力します。type:errorsnapshot
- [イベント リスト]内に検索結果のリストが表示されます。
- テーブル内の行を選択し、エラーに関するより詳細な情報を表示します。イベント タイプに応じて、下部ペインに[スタック ビュー]、または[サマリ ビュー]、[ツリー ビュー]および[追跡ビュー]が展開されます。
- エラー スナップショットを検査して、問題の根本的原因を究明します。Introscope は、メソッドのインスツルメントに PBD を使用した場合に限り、エラーを検出します。Introscope がエラーを検出すると、エラー スナップショットには、PBD によってインスツルメントされたコンポーネントとは別に、高深度可視性追跡コンポーネントも表示されます。エラー スナップショットのツリーの分岐をたどってメソッドを調べることにより、エラー例外の原因を特定できます。例 1エラー スナップショット ツリーにメソッド A、B、C、D および E が表示されます。メソッド A および E は、PBD を使用してインスツルメントされます。メソッド B、C および D は、高深度追跡の可視性を使用してインスツルメントされます。メソッド E は、キャッチされなかったエラー例外をスローします。エラー例外は、メソッドD、C、B、A とツリーをさかのぼりますが、どのメソッドでも例外は処理されません。エラー スナップショットは次のツリーのように表示されます。
例 2エラー スナップショット ツリーにメソッド A、B、C、D および E が表示されます。メソッド A および B は、PBD を使用してインスツルメントされます。メソッド C、D、および E は、高深度追跡の可視性を使用してインスツルメントされます。メソッド E は、キャッチされなかったエラー例外をスローします。エラー例外は、メソッドD、C、B、A とツリーをさかのぼりますが、どのメソッドでも例外は処理されません。エラー スナップショットは次のツリーのように表示されます。
メトリック ブラウザでのエラーの検出
エージェントはトランザクションに関するデータを収集し、このデータを Enterprise Manager に送信して処理および Data Viewer での表示を行います。このデータには、アプリケーションエラーに関する情報が含まれています。エラーが発生した場合は、その原因を検出して問題の切り分けを行うことができます。[メトリック ブラウザ]タブの詳細情報を表示して、エージェントおよびコンポーネントを監視できます。
注:
CA APM では、エラーおよびストール情報の表示が 15 秒ごとに更新されます。以下の手順に従います。
- APM Team Center で、[WebView]をクリックします。
- [Investigator]-[メトリック ブラウザ]をクリックします。
- 監視するエージェントまたはコンポーネントに移動します。
- [間隔ごとのエラー数]メトリックを探します。その値を調べます。値が 0 の場合、現在エラーは発生していません。値が 0 より大きい場合、手順 4 に進み、[追跡]タブを選択します。
- [追跡]タブを選択します。
- 列の見出しをクリックして、その列の内容によって行を並べ替えます。新しいエラーが発生すると、これらのエラーは並べ替え順にしたがって表示されます。エラーは、赤地の円の中に白い X 印のあるアイコンで示されています。
- Introscope が自動的に収集したトランザクション追跡でエラーを確認します。自動トランザクション追跡が表示されていない場合は、自動的に収集したトランザクション追跡を参照してください。
- [エラー]タブを選択します。
- [エラー]タブのエラー スナップショットで、その呼び出しパスおよびパラメータを含む、エラーの詳細を確認します。
- [エラー]タブには、1 つのエージェントによって JVM または .NET の CLR からレポートされたデータが表示されます。そのエージェントまたはコンポーネントに対してエラーがレポートされている場合は、エラーのリストが表示されます。列の見出しをクリックして、その列の内容によって行を並べ替えます。新しいエラーが発生すると、これらのエラーは並べ替え順にしたがって表示されます。
- ステータス バーで、エージェントの場所、エラーのタイムスタンプおよび期間を確認します。ライブ エラー ビューアおよび履歴イベント ビューアを使用して問題を切り分けます。
トランザクション追跡でのエラーの確認
トランザクション追跡では、高深度可視性コンポーネントも含めて、エラー情報を参照できます。トランザクション追跡の詳細については、「トランザクション追跡の収集および分析」を参照してください。
トランザクション追跡を収集してエラー情報を確認するには 2 つの方法があります。
- トランザクション追跡を手動で実行する
- スマート インスツルメンテーションが有効な場合、エラーが発生すると Introscope がトランザクション追跡を自動的に収集します。エラーによって自動トランザクション追跡がトリガされると、以下の情報が[コンポーネントの詳細]に表示されます。- 例外をスローしたコンポーネント、およびそのコンポーネントのプロパティ。- トランザクション追跡内の最初のコンポーネントでは、[Auto Trace Trigger Criteria]プロパティが「エラー」として表示されます。
以下の手順に従います。
- APM Team Center で、[WebView]をクリックします。
- [ツール]-[トランザクション追跡]をクリックします。
- テーブル内のトランザクション追跡を選択します。
- 下部ペインで、[追跡ビュー]タブをクリックします。注:Live モードでは、[追跡]タブに、過去 20 分のトランザクション追跡イベントがリストされます。20 分より前のトランザクション追跡イベントは、ライブ モードでは表示されません。
- 詳細情報を表示するエラーをリストから 1 つ選択します。トランザクションはタイムラインに棒の形で表示されます。
- 右向きの青い三角形を選択して、グラフィカルに表示されたトランザクションを展開し、トランザクションの個々のコンポーネントを表示します。以下の図では、エラーの発生しているトランザクション(ピンク色で表示)が、展開された状態で、個々のコンポーネントとその相対的な継続時間と共に表示されています。
稲妻のアイコンは高深度可視性追跡コンポーネントを示しています。これは、ProbeBuilder ディレクティブ(PBD)を使用せずに自動的に検出とインスツルメントが行われます。高深度可視性追跡コンポーネントに関する詳細については、「トランザクション追跡の収集および分析」を参照してください。注:スマート インスツルメンテーションは、Java エージェントでのみ使用可能であり、.NET エージェントでは使用できません。標準のトランザクション追跡コンポーネント(稲妻アイコンなし)は、PBD を使用してインスツルメントされます。 - アプリケーションのパフォーマンスに関する問題の根本原因を特定します。利用可能なタブで識別情報を使用し、問題に関する特定の詳細情報を収集します。次のフィールドを確認します: タイム スタンプ、継続時間、説明、ユーザ ID (問題と関連付けられているものがある場合)、エラー メッセージ、コール時間およびパス。以下を行うことができます。
- 列を並べ替えて、応答時間が最も長いかエラーが最も多い呼び出しまたはメソッドを見つける。
- [検索]タブを使用して結果をフィルタする。
- エラー メッセージおよびその他の情報を使用して、問題をより詳細に理解する。