18 BPELプロセスのサービス・コンポーネントとエンジンの監視

この章では、ビジネス・フロー・インスタンスのフロー・トレース、BPELプロセス・アクティビティの時間の分散とインスタンスおよびフォルトのスループットのメトリック、サービス・エンジンのリクエスト統計とスレッド・パフォーマンス統計、デプロイ済BPELプロセス・サービス・コンポーネント、サービス・エンジンでのリクエストの所要時間に関する統計の監視方法について説明します。

この章の内容は次のとおりです。

サービス・コンポーネントとサービス・エンジンの概念の詳細は、次の項を参照してください。

ノート:

「フロー・インスタンス」ページでは、任意のタイプのフォルトを表示できます(フォルト・ポリシー・フォルト、BPELメッセージ・リカバリ、拒否メッセージ、EDNフォルトなど)。すべてのフォルトは、ビジネス・フロー・インスタンスの詳細の一部です。詳細は、「SOAインフラストラクチャまたはSOAフォルダ・レベルでのビジネス・フロー・インスタンスのトラッキング」を参照してください。

ビジネス・フロー・インスタンスのフロー・トレースの監視

この項では、ビジネス・フロー・インスタンスのフロー・トレースの監視方法について説明します。フロー・トレースは、メッセージ・フローの実行時証跡です。1つのビジネス・フロー・インスタンスは、1つのエンドツーエンド・ビジネス・トランザクションに相当します。ビジネス・フローは、単一のSOAコンポジット・アプリケーションまたは特定のビジネス・プロセスを実現するために組み合された複数のSOAコンポジット・アプリケーションで構成されます。ビジネス・フロー・インスタンスのフロー・トレースは、フロー・インスタンス検索の起動後に、「フロー・インスタンス」ページの「検索結果」表に表示される一意のフローID値によって識別されます。

ノート:

この項では、ビジネス・フロー・インスタンスが起動されていることを前提としています。そうでない場合は、「ビジネス・フローのテスト・インスタンスの起動」を参照してください。

ビジネス・フロー・インスタンスのフロー・トレースを監視するには:

次のいずれかのオプションを使用して、「フローのトレース」ページにアクセスします。

  1. すべてのSOAフォルダのビジネス・フロー・インスタンスにアクセスするには:

    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...
    1. 「ホーム」を選択します。

    2. 「フロー・インスタンス」タブを選択します。

    3. 「検索」アイコンをクリックして、「検索結果」表にビジネス・フローIDを移入します。

    4. 「フローID」列で、特定のビジネス・フロー・インスタンス番号をクリックします。

    1. 「SOA」フォルダを展開します。

    2. 「soa-infra」を右クリックします。

    3. 「ホーム」「フロー・インスタンス」の順に選択します。

    4. 「検索」アイコンをクリックして、「検索結果」表にビジネス・フローIDを移入します。

    5. 「フローID」列で、特定のビジネス・フロー・インスタンス番号をクリックします。

  2. 個々のSOAフォルダ内のビジネス・フロー・インスタンスにアクセスするには:

    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...
    1. 「SOAフォルダの管理」を選択します。

    2. 「SOAフォルダ」列で特定のSOAフォルダをクリックします。

    3. 「フロー・インスタンス」タブをクリックします。

    4. 「検索」アイコンをクリックして、「検索結果」表にビジネス・フローIDを移入します。

    5. 「フローID」列で、特定のビジネス・フロー・インスタンス番号をクリックします。

    1. 「SOA」「soa-infra」の順に展開します。

    2. 特定のSOAフォルダをクリックします。

    3. 「フロー・インスタンス」タブをクリックします。

    4. 「検索」アイコンをクリックして、「検索結果」表にビジネス・フローIDを移入します。

    5. 「フローID」列で、特定のビジネス・フロー・インスタンス番号をクリックします。

「フローのトレース」ページは2つのセクションで構成されます。選択したタブに応じて、上部のセクションには、選択したフロー・トレースの「フォルト」「コンポジット・センサー」「値」「コンポジット」または「リシーケンサ」(コンポジットにOracle Mediatorのリシーケンサが組み込まれている場合)タブが表示されます。下部セクションには、ビジネス・フローのトレースが表示されます。

「フローのトレース」ページの「フォルト」タブには、次の詳細が表示されます。

  • 「フォルト」表。エラー・メッセージ、フォルトを処理したコンポーネント、フォルトの発生時間およびリカバリ・ステータス(「リカバリ不能」、「リカバリが必要」など)が表示されます。表にその他の列を表示するには、「表示」「列」の順に選択します。「フロー・インスタンス」ページで列を変更すると、「フローのトレース」ページの「フォルト」表の列も変更されます。

  • 「トレース」表。SOAコンポジット・アプリケーションを構成するサービス、サービス・コンポーネントおよび参照間での一連のメッセージ・フローが表示されます。「フローのトレース」ページで選択したタブ(「フォルト」「コンポジット」「センサー値」「コンポジット」または「リシーケンサ」(コンポジットにOracle Mediatorのリシーケンサが組み込まれている場合))に関係なく、「トレース」セクションは常に表示されます。表にその他の列を表示するには、「表示」「列」の順に選択します。フロー・トレースをXML形式で表示するには、「アクション」リストを選択します。

    「監査レベル」「オフ」に設定されている場合、トレース詳細は取得されず、トレース表は表示されません。ただし、一部のコンポーネントのインスタンスの詳細は取得されます。これらのコンポーネントの場合は、インスタンスの詳細のフラット・リストが表示されます。このリストには一部のコンポーネントのインスタンス詳細のみがあり、フローに参加しているすべてのコンポーネントはない可能性があります。

    イベントによってトリガーされた中間プロセスの受信アクティビティは、フロー・トレース内に表示されます。中間プロセスの受信アクティビティは、複数のフローIDを相関させることができます。相関するBPELノードのフロー・トレースでは、そのノードによって相関させられたすべてのフローIDを表示できます。

次のフロー・トレース管理タスクを実行できます。

フロー・トレースでのフォルトからのリカバリ

「フローのトレース」ページの「フォルト」タブからフォルト・リカバリを実行できます。実行するフォルト・リカバリ・タスクは、SOAインフラストラクチャまたは個々のSOAフォルダの「フロー・インスタンス」ページの「フォルト」タブから実行するタスクと同じです。

「フォルト」セクションには、「トレース」セクションに表示されているSOAコンポジット・アプリケーションのサービス、サービス・コンポーネントおよび参照で発生しているフォルトが表示されます。いずれかのフォルトを選択すると、そのフォルトが発生した「トレース」セクションの1つ以上の行が強調表示されます(同じフォルト・チェーン内に存在する場合、その同じフォルトに複数の行が対応していることがあるため)。たとえば、BPELコンポーネント上のリカバリ可能なフォルトにより、ダウンストリームのその他のコンポーネントおよびエンドポイントのインスタンスに障害が発生する可能性があります。そのBPELプロセス・フォルトを「フォルト」表で選択すると、「トレース」セクションの影響を受けるノードがすべて強調表示されます。

フロー・トレースでフォルトからリカバリするには:

  1. 「ビジネス・フロー・インスタンスのフロー・トレースの監視」で説明しているように、「フローのトレース」ページにアクセスします。
  2. 「フォルト」セクションで、フォルトを選択します。

    選択すると、「トレース」セクションでは、フォルトが発生した行が強調表示されます。

  3. 次のいずれかのオプションを使用して、フォルト・リカバリを開始します。
    • 「リカバリ」リストから、リカバリ・オプション(「中断」「再試行」など)を選択します。

    • 「エラー・メッセージ」列で、エラーをクリックして詳細なエラー・メッセージおよびフォルト・リカバリを実行するためのオプション(「中断」「再試行」など)を表示します。

    • 「リカバリ」列で、「リカバリが必要」をクリックします。

    フォルトからのリカバリのステップは、「ビジネス・フロー・インスタンスでのフォルトからのリカバリ」のステップ5を参照してください。

    リカバリに成功すると、フォルトは「フローのトレース」ページの「フォルト」セクションおよび「トレース」セクションから消去されます。

フロー・トレースでのコンポジット・センサー値の表示

ビジネス・フロー・インスタンスのフロー・トレースに含まれているコンポジット・センサーの詳細を表示できます。コンポジット・センサーは、メッセージにトラッキング可能なフィールドを実装する手段を提供します。コンポジット・センサーは、設計時にOracle JDeveloperで、サービス・バインディング・コンポーネント、参照バインディング・コンポーネントおよびビジネス・イベントをサブスクライブしているサービス・コンポーネントに追加できます。

フロー・トレースでコンポジット・センサー値を表示するには:

  1. 「ビジネス・フロー・インスタンスのフロー・トレースの監視」で説明しているように、「フローのトレース」ページにアクセスします。
  2. 「コンポジット・センサー値」タブをクリックし、ビジネス・フロー・インスタンスのコンポジット・センサーを表示します。

    選択すると、「トレース」セクションでは、コンポジット・センサー・データが収集された行が強調表示されます。センサーを閉じると、「トレース」セクションの選択がクリアされます。

フロー・トレースでのSOAコンポジット・アプリケーションの表示

ビジネス・フロー・インスタンスのフロー・トレースに含まれている開始SOAコンポジット・アプリケーションと参加SOAコンポジット・アプリケーションを表示できます。

フロー・トレースでSOAコンポジット・アプリケーションを表示するには:

  1. 「ビジネス・フロー・インスタンスのフロー・トレースの監視」で説明しているように、「フローのトレース」ページにアクセスします。
  2. 「コンポジット」タブをクリックします。

    ビジネス・フロー・インスタンスのフロー・トレース内の開始コンポジットと参加コンポジットが表示されます。Oracle JDeveloperで設計時にビジネス・フロー・インスタンス・タイトルの値を設定すると、それは「名前」列に表示されます。

    ビジネス・フロー・インスタンス名の設定の詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』設計時のフロー・インスタンス名またはコンポジット・インスタンス名の設定方法に関する項を参照してください。

フロー・トレースでの監査証跡およびプロセス・フローの表示

ビジネス・フロー・インスタンスのフロー・トレースに含まれている監査証跡およびプロセス・フローを表示できます。監査証跡およびフロー・トレースは監査証跡データのグラフィック表示です。監査証跡には、BPELプロセス内のアクティビティに関する実行の詳細が表示されます。プロセス・フローには、プロセス内のペイロードのフローが表示されます。

フロー・トレースで監査証跡およびプロセス・フローを表示するには:

  1. 「ビジネス・フロー・インスタンスのフロー・トレースの監視」で説明しているように、「フローのトレース」ページにアクセスします。

    「トレース」セクションに、SOAコンポジット・アプリケーションを構成するサービス、サービス・コンポーネントおよび参照間での一連のメッセージ・フローが表示されます。この例では、フローに関連するサービス・バインディング・コンポーネント、サービス・コンポーネントおよび参照バインディング・コンポーネントでメッセージが正常に受信されて処理されています。

  2. 「トレース」セクションの「インスタンス」列で、特定のBPELプロセス・サービス・コンポーネントをクリックします。サービス・コンポーネントには「フローのトレース」ページからアクセスできます。サービスと参照にはアクセスできません。

    選択したサービス・コンポーネントの監査証跡が表示されます。

  3. 「フォルトの強調表示」チェック・ボックスを選択し、監査証跡のフォルトを強調表示します。
  4. 「表示」リストから、「監査証跡XML」を選択して監査証跡のXML出力を表示します。XML出力はファイルとして保存できます。
  5. 監査証跡をスクロールしてエラーを確認し、「ペイロードの表示」リンクをクリックしてフローの特定の場所にある内容を表示します。

    ノート:

    • 実行されなかったpickアクティビティまたはscopeアクティビティの取り消されたonMessageブランチは監査証跡に表示されます。ただし、フロー・ダイアグラムには、これらの取り消された同じonMessageブランチは表示されません。これは予想された動作です。

    • トランザクションがロールバックとして「監査証跡」ページに表示されると、次のエラー・メッセージが表示されます。

      The transaction was rolled back. The work performed for bpel
      instance "instance_ number" was rolled back to the previous
      dehydration point,  but the audit trail has been saved.
      You can recover the instance from the recovery console by
      resubmitting the callback message or activity for execution
      

      このメッセージは、リカバリがアクティビティまたはコールバックのどちらに基づいて発生するかを具体的に示すものではありません。これは所定の動作です。監査メッセージを通じて各インスタンスをリカバリしないことをお薦めします。かわりに、自動リカバリを設定してこれらのインスタンスをリカバリしてください。

  6. 「フロー」タブをクリックします。

    BPELプロセス内のアクティビティのフロー・ダイアグラムが表示されます。フロー・ダイアグラムでは、フォルトが強調表示されます。

  7. アクティビティをクリックして、プロセス内のペイロードのフローを表示します。

    ノート:

    Microsoft Internet Explorerを使用する場合は、「詳細をクリップボードにコピー」をクリックすると、アクティビティ詳細をクリップボードにコピーできます。Mozilla Firefoxを使用する場合、このリンクは表示されません。かわりに、手動でテキストを選択してコピーし、ファイルに貼り付ける必要があります。

  8. フロー・ダイアグラムをスクロールしてエラーを確認します。
  9. 強調表示されたアクティビティをクリックして、エラー・メッセージを表示します。
  10. メッセージを閉じます。

フロー・トレースでのフォルト、アクティビティおよび変数の各センサーの監視

BPELプロセス・サービス・コンポーネントのフォルト、アクティビティおよび変数の各センサー・データを表示できます。Oracle JDeveloperでBPELプロセスのセンサーを設計します。センサーを使用すると、実行時にBPELプロセスのアクティビティ、変数およびフォルトを監視できます。

BPELプロセスのフォルト、アクティビティおよび変数の各センサー・データを監視する手順は、次のとおりです。

  1. 「ビジネス・フロー・インスタンスのフロー・トレースの監視」で説明しているように、「フローのトレース」ページにアクセスします。
  2. 「トレース」セクションの「インスタンス」列で、特定のBPELプロセス・サービス・コンポーネントをクリックします。
  3. 「センサー」タブをクリックします。
  4. センサー・タイプを開いて、詳細を表示します。

    BPELプロセスでJMSセンサーを作成した場合、Oracle Enterprise Manager Fusion Middleware Controlには、JMSセンサー値が表示されません。センサー・アクションがデータベースに値を格納するセンサー値(データベース・センサー値など)のみが表示されます。

    センサーの詳細は、『Oracle SOAスイートでのSOAアプリケーションの開発』「Oracle BPEL Process Managerのセンサーおよび分析の使用方法」を参照してください。

    フォルト・リカバリの詳細は、「ビジネス・フロー・インスタンスでのフォルトからのリカバリ」および「BPELプロセス・サービス・エンジンのメッセージ・リカバリの実行」を参照してください。

その他のフロー・トレース動作のシナリオの理解

この項では、その他のフロー・トレース動作のシナリオについて説明します。

BPEL 2.0のCompensateおよびCompensateScopeアクティビティ内でのアクティビティ・センサーの動作

BPEL 2.0 compensateScopeアクティビティ内に、評価時間を完了時に設定したアクティビティ・センサーがあり、かつ、アクティビティの変数センサーが変数を指すように構成したとします。センサーがトリガーされると、compensationアクティビティが完了し、compensationアクティビティが完了した状態であることが変数によって示されると予想されます。

ただし、compensateScopeアクティビティ(およびcompensateアクティビティ)は、制御がcompensationアクティビティに渡された直後に終了します。その結果、アクティビティの変数センサーには、compensationアクティビティが終了でなく開始した状態だということが示されます。

これは予想された動作です。

補正の完了時に変数状態が取得されないようにするために、compensateまたはcompensateScopeアクティビティの後に空のアクティビティを追加し、この空のアクティビティに対して、評価時間をアクティブ化に設定したアクティビティ・センサーを設定します。

BPELプロセス・アクティビティの時間の分散とインスタンスおよびフォルトのスループットのメトリックの監視

BPELプロセス・アクティビティの時間の分散とBPELプロセス・サービス・コンポーネントに関するインスタンスおよびフォルトのスループットのメトリックのグラフィック表示を監視できます。

BPELプロセス・アクティビティの時間の分散とインスタンスおよびフォルトのスループットのメトリックを監視するには:

  1. 次のいずれかのオプションを使用して、このページにアクセスします。

    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...
    1. 「ホーム」を選択します。

    2. 「デプロイ済コンポジット」タブを選択します。

    3. 「コンポジット」セクションで、特定のSOAコンポジット・アプリケーションを選択します。

    1. soa-infraの下にあるSOAフォルダを展開します。

    2. 特定のSOAコンポジット・アプリケーションを選択します。

    「ダッシュボード」ページが表示されます。

  2. 「コンポーネント」セクションで、BPELプロセス・サービス・コンポーネントを選択します。

    「ダッシュボード」ページに、次の詳細が表示されます。

    • アクティビティについての時間分布の詳細(アクティビティ名、すべてのインスタンスについてのアクティビティの合計数、平均実行時間など)が表示されます。

    • 特定時間帯におけるBPELプロセス・サービス・コンポーネントの成功、失敗および受信(保留中)のインスタンス数のグラフィカル表示。

  3. 「表ビュー」をクリックすると、成功したインスタンスのスループット、合計フォルトのスループットおよびインスタンスのスループットなどの過去5分間のスループットの詳細が表形式で表示されます。

詳細は、「ビジネス・フロー・インスタンスの概要」を参照してください。また、ログ・ファイルの表示および検索の詳細は、『Oracle Fusion Middlewareの管理』を参照してください。

BPELプロセス・サービス・エンジンのリクエスト統計とスレッド・パフォーマンス統計の監視

サービス・エンジンで実行しているすべてのBPELプロセス・サービス・コンポーネントのリクエスト統計とスレッド・パフォーマンス統計を監視できます。

BPELプロセス・サービス・エンジンのリクエスト統計とスレッド・パフォーマンス統計を監視するには:

  1. 次のいずれかのオプションを使用して、このページにアクセスします。

    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...
    1. 「サービス・エンジン」「BPEL」の順に選択します。

    1. 「soa-infra」を右クリックします。

    2. 「サービス・エンジン」「BPEL」の順に選択します。

  2. 「統計」をクリックします。

    「統計」ページの「保留中のリクエスト」セクションと「アクティブ・リクエスト」セクションには、次の詳細が表示されます。「ヘルプ」アイコンをクリックすると、追加情報が表示されます。

    • サービス・エンジン内の保留中のリクエスト数

    • サービス・エンジン内のアクティブ・リクエスト数

    「統計」ページの「スレッド統計」および「リクエストのブレークダウン」の部分には、サービス・エンジンのアクティブ・スレッド数と件数、最小、最大および平均のリクエスト処理時間に関する詳細が表示されます。

    BPELプロセスのチューニングとパフォーマンスの詳細は、パフォーマンスのチューニングを参照してください。

「リクエストのブレークダウン」表の下位レベルの詳細の表示

「統計」ページの「リクエストのブレークダウン」の部分は、リクエストが処理中に様々なサービス・エンジン・レイヤーで費やす時間に関する下位レベルの詳細を表示するように構成できます。この部分を表示するには、「統計」ページを下にスクロールすることが必要な場合があります。

「BPELサービス・エンジン・プロパティ」ページの「詳細BPEL構成プロパティ」リンクの「StatsLastN」プロパティを構成します。デフォルトでは、このプロパティは-1に設定されています。このプロパティをより適切な値に設定できます(たとえば、1000)。このプロパティは、問題を生じる可能性のある領域を分析して隔離するための情報を提供します。

このプロパティへのアクセスと構成の詳細は、「BPELプロセス・サービス・エンジン・プロパティの構成」を参照してください。

「StatsLastN」プロパティの構成後に「統計」ページの「リクエストのブレークダウン」の部分に表示される情報は、システムMBeanブラウザの次のプロパティを使用しても表示されます。

  • AsyncProcessStats: 下位レベルの非同期プロセス統計を提供します。

  • SyncProcessStats: 下位レベルの同期プロセス統計を提供します。

  • RequestStats: 下位レベルのリクエストのブレークダウンを提供します。

これらのプロパティへのアクセスの詳細は、「BPELプロセス・サービス・エンジンでのリクエストの所要時間に関する統計の表示」を参照してください。

サービス・エンジンのデプロイ済BPELプロセス・サービス・コンポーネントの監視

サービス・エンジンで実行しているBPELプロセス・サービス・コンポーネントで構成されたすべてのデプロイ済SOAコンポジット・アプリケーションを監視できます。

サービス・エンジンにデプロイされたBPELプロセスを監視するには:

  1. 次のいずれかのオプションを使用して、このページにアクセスします。

    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...
    1. 「サービス・エンジン」「BPEL」の順に選択します。

    1. 「soa-infra」を右クリックします。

    2. 「サービス・エンジン」「BPEL」の順に選択します。

    「デプロイ済コンポーネント」ページに、次の詳細が表示されます。

    • デプロイ済の特定のSOAコンポジット・アプリケーションを検索するためのユーティリティ。基準を指定して「検索」をクリックします。この検索では大文字と小文字が区別されます。コンポーネントまたはコンポジットの正確な名前を(リビジョン部分なしで)入力する必要があります。検索後に、フィルタ処理されていないすべてのコンポーネントのリストを表示するには、「リセット」をクリックします。

    • サービス・エンジンで実行しているBPELプロセス・サービス・コンポーネントで構成されたデプロイ済SOAコンポジット・アプリケーションの詳細。サービス・コンポーネント名、SOAコンポジット・アプリケーションおよび現在のステータス(稼働中または停止中)が表示されます。

  2. 「名前」列で、特定のサービス・コンポーネントをクリックし、そのホーム・ページにアクセスします。

  3. 「コンポジット」列で、特定のSOAコンポジット・アプリケーションをクリックし、そのホーム・ページにアクセスします。

BPELプロセス・サービス・エンジンでのリクエストの所要時間に関する統計の表示

システムMBeanブラウザのいくつかのプロパティを使用して、処理中にリクエストが様々なサービス・エンジン・レイヤーで費やす時間に関する下位レベルの詳細を表示できます。

  1. ナビゲーション・ツリーで「SOA」フォルダを開きます。
  2. 「soa-infra」を右クリックして、「管理」「システムMBeanブラウザ」の順に選択します。
  3. 「アプリケーション定義のMBean」「EMDomain」「サーバー: server_name「アプリケーション: soa-infra」「EMIntegration」「soa-infra」の順に選択します。

    次のプロパティを構成できます。

    • AsyncProcessStats: 非同期プロセス統計

    • RequestStats: リクエストのブレークダウン統計

    • SyncProcessStats: 同期プロセス統計

  4. 「AsyncProcessStats」プロパティの内容を表示します。
  5. 「RequestStats」プロパティの内容を表示します。
  6. SyncProcessStatsプロパティの内容を表示します。

「BPELサービス・エンジン・プロパティ」ページの「StatsLastN」プロパティを使用してこの情報を構成する方法の詳細は、「BPELプロセス・サービス・エンジン・プロパティの構成」を参照してください。