プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle SOA SuiteでのSOAアプリケーションの開発
12c (12.2.1)
E67372-02
目次へ移動
目次

前
次

49 SOAコンポジット・アプリケーションのデバッグおよび監査

この章では、Oracle JDeveloperでSOAデバッガを使用してSOAコンポジット・アプリケーションをデバッグする方法、HTTPアナライザでHTTPリクエストとレスポンス・メッセージをテストする方法およびSOAコンポジット・アプリケーションでBPELプロセス・アクティビティの監査を構成する方法を説明します。

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

49.1 SOAデバッガの概要

Oracle JDeveloperでは、SOAデバッガを使用して、SOAコンポジット・アプリケーションをテストおよびデバッグできます。SOAデバッガは、Oracle JDeveloper内でトラブルシューティング環境を提供することによって、SOAコンポジット・アプリケーションの開発サイクルを短縮します。これにより、SOAコンポジット・アプリケーションをOracle JDeveloperでビルドし、それをSOAインフラストラクチャにデプロイし、Oracle Enterprise Manager Fusion Middleware Controlを起動して監査証跡とフロー・トレースのテストまたは表示を行ってから、Oracle JDeveloperに戻って作業を繰り返すという時間のかかるプロセスが必要なくなります。かわりに、次に示すコンポーネントのトラブルシューティングのために、Oracle JDeveloperでブレークポイントを設定できます。

  • SOAコンポジット・アプリケーションのバインディング・コンポーネントとサービス・コンポーネント

  • 同期および非同期BPELプロセス

  • Oracle BPMプロセス

  • Oracle Service Busパイプライン(『Oracle Service Busでのサービスの開発』のOracle Service Busアプリケーションのデバッグに関する項を参照)

SOAデバッガを使用する際には、次のガイドラインに注意してください。

  • SOAコンポジット・アプリケーション名とOracle JDeveloperのプロジェクト名は同じである必要があります

  • デバッグ・セッション中に発生したすべてのSOAコンポジット・アプリケーションは、Oracle JDeveloperの現在アクティブなワークスペースに存在する必要があります。

  • デバッグはOracle JDeveloperの設計ビューでのみ実行できます。Oracle Enterprise Manager Fusion Middleware ControlではSOAデバッガを実行できません。

  • デバッグは、ローカライズされたユーザー操作です。別のタスク(インスタンスの検索やOracle Enterprise Manager Fusion Middleware Controlの同じコンポジットの新しいインスタンスの起動など)に切り替える場合は、デバッグ・セッションを閉じます。

  • RESTサービスにブレークポイントは設定できません。

  • Oracle JDeveloperの1つのインストールのSOAコンポジット・アプリケーションでデバッグするために作成したブレークポイントは、他のOracle JDeveloperインストールでは使用できません。ブレークポイントをデバッグ用に再度作成する必要があります。

  • 埋込み統合WebLogic Serverを使用しているデバッグ・セッション中に、埋込みサーバーに含まれるOracle Enterprise Manager Fusion Middleware Controlのバージョンを使用して新しいインスタンスを生成したりインスタンスを問い合せることはできません。統合WebLogic Serverの詳細は、『SOA SuiteおよびBusiness Process Management SuiteのQuick Start for Developersのインストール』を参照してください。

  • Java execアクティビティ、XSLTおよびXQueryの変換などの、言語間機能はデバッグできません。

  • Oracle SOA Suiteがインストールされているサーバー上で、SOAコンポジット・アプリケーションをデバッグできます。たとえば、Oracle SOA Suiteが管理対象サーバー上で実行されている場合、クライアントは管理対象サーバーのホストとポートを使用して接続する必要があります。

  • 一度に1つのクライアントのみがSOAデバッガに接続できます。

  • 同じSOAコンポジット・アプリケーションの複数インスタンスを同時にデバッグできません。ただし、Oracle JDeveloperによってこのアクションは制限されません。これは正しい方法ではありません。SOAデバッガは開発ツールです。ユーザーの責任で、同時にデバッグされるインスタンスをただ1つに保つ必要があります。

  • アダプタ・エンドポイント・エラーは、Oracle JDeveloperのSOAデバッガには表示されません。これらのエラーは、ログ・ファイルに記録されます。

  • サーバーが開発モードの場合にのみデバッグできます。本番モードでのデバッグはサポートされていません。

  • Oracle B2BおよびOracle SOAのHealthcareサービス・コンポーネントおよび参照バインディング・コンポーネントは、両方のコンポーネントでデバッグ・ポイントを設定できる場合でも、SOAデバッガを使用してデバッグすることはできません

  • SOAコンポジット・アプリケーション対SOAコンポジット・アプリケーションのデバッグはサポートされていません。

49.2 SOAコンポジット・アプリケーションのデバッグ

この項では、Oracle JDeveloperでSOAコンポジット・アプリケーションのブレークポイントを作成し、デバッグする方法を説明します。

注意:

非常に大きなペイロードを持つSOAコンポジット・アプリケーションのデバッグを試みないでください。このようなデバッグを試みると、SOAデバッガのブレークポイントがアウトバウンド方向でハングします。

49.2.1 SOAデバッガを開始する方法

SOAデバッガを開始する手順は、次のとおりです。

  1. 統合WebLogic Serverを起動します。Start Server Instanceオプションを使用した統合WebLogic Serverの起動の詳細は、『SOA SuiteおよびBusiness Process Management SuiteのQuick Start for Developersのインストール』の「Oracle SOA Suite Quick Start for Developersのインストール」を参照してください。

  2. 次のいずれかの方法でSOAデバッガを起動します。これは、単一コンポジットのデバッグに制限されます。

    1. SOAコンポジット・エディタ上部にあるデバッガ・アイコン(図49-1 を参照)をクリックします。

      図49-1 SOAコンポジット・エディタのデバッガ・アイコン

      図49-1の説明が続きます
      「図49-1 SOAコンポジット・エディタのデバッガ・アイコン」の説明
    2. 「アプリケーション」ウィンドウでSOAコンポジット・アプリケーションを右クリックして、「デバッグ」を選択します。図49-2に詳細を示します。

      図49-2 「アプリケーション」ウィンドウのSOAコンポジット・アプリケーションの「デバッグ」メニュー・オプション

      図49-2の説明が続きます
      「図49-2 「アプリケーション」ウィンドウのSOAコンポジット・アプリケーションの「デバッグ」メニュー・オプション」の説明

    図49-3 に示すように、「SOAデバッガ接続設定」ダイアログが表示されます。このダイアログにより、使用するSOAデバッグ・サーバーを定義できます。

    図49-3 「SOAデバッガ接続設定」ダイアログ

    図49-3の説明が続きます
    「図49-3 「SOAデバッガ接続設定」ダイアログ」の説明
  3. 環境に適した値を入力し、「OK」をクリックします。表49-1に詳細を示します。


    表49-1 「SOAデバッガ接続設定」ダイアログ

    フィールド 説明

    ホスト

    接続するデバッグ・サーバーを選択します。デフォルトでは、ローカル・ホストの名前が表示されます。これはOracle JDeveloperの埋込み統合WebLogic Serverです。リモート・サーバーを入力することもできます。プロジェクトが別のホストからインポートされると、そこで使用されていたホストがここに表示されます。

    ポート

    デバッグ・エージェントがリスニングするポートを入力します。デフォルト値は5004です。Oracle SOA Suiteの開発者用クイック・インストールを実行すると、デバッグが開発環境で自動的に有効になります。デバッガは、本番モードまたはサーバーがクラスタの一部の場合は有効にできません。開発環境では、setDomainEnv.shファイルに次のプロパティ設定を追加することでデバッガをオーバーライドできます。

    export SOA_DEBUG_FLAG="true"
    export SOA_DEBUG_PORT="5004"

    タイムアウト

    デバッグ・セッションの確立を試みる際に、停止する前にクライアントが待機する必要のある時間を秒単位で指定します。デフォルト値は5分です。同期プロセスの場合は、次のようにデフォルト値を増やすことができます。

    • Oracle Enterprise Manager Fusion Middleware ControlSyncMaxWaitTimeプロパティを増やします。詳細は、「トランザクションのタイムアウト値の指定方法」を参照してください。

    • Oracle WebLogic Server管理コンソールで、Enterprise JavaBeansプロパティBPELDeliveryBean「アイドル・タイムアウト」「トランザクション・タイムアウト」の値を増やします。これらのプロパティへのアクセスの詳細は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』のリモートWebサービスのエラー出力の長時間実行同期コール、または非同期トランザクションが、長時間経過した後にエラーを出して戻る場合に関する項を参照してください。

    • Oracle WebLogic Server管理コンソールのホームページにある「JTA」リンクで、Java Transaction API (JTA)のタイムアウト値を増やしてください。

    次回にこのページを表示しない

    次にデバッガ・セッションを開始するときにこのダイアログを表示しない場合に選択します。前に定義した設定が使用されます。

    「アプリケーション」ウィンドウでプロジェクトを右クリックすることで、このダイアログを再度表示できます。「プロジェクト・プロパティ」「実行/デバッグ」「編集」「ツール設定」「デバッガ」「リモート」の順に選択し、「デバッガ接続前にダイアログ・ボックスを表示」チェック・ボックスを選択します。


    注意:

    これらのプロパティは、「アプリケーション」ウィンドウでプロジェクトを右クリックし、「プロジェクト・プロパティ」「実行/デバッグ」「編集」「ツール設定」「デバッガ」「リモート」の順に選択しても編集できます。

    デバッグ対象として選択されたSOAコンポジット・アプリケーションがデプロイされているかどうかを判別するチェックが行われます。表49-2に詳細を示します。


    表49-2 SOAコンポジット・アプリケーションがデプロイ済かどうか判別するためのチェック

    SOAコンポジット・アプリケーションの状況 結果

    デプロイ済

    サービス・バインディング・コンポーネントの右側のハンドルに、次のメッセージが表示されます。

    Use context menu to initiate WS debugging

    このメッセージの例は図49-5 を参照してください。

    デバッグを開始する準備ができました。「ブレークポイントを設定してデバッグを開始する方法」に進みます。

    • 未デプロイ

    • デプロイ済、ただしデプロイ後にコンポジット内で設計変更があった。

      注意: 「同じリビジョンIDで既存のコンポジットを上書きします。」チェック・ボックスを選択して2度目にデプロイされたコンポジットには、追加のデプロイメントは必要ありません。

    • デプロイ済、ただしOracle JDeveloperのシステム・フォルダを削除した。システム・フォルダは、「ヘルプ」「バージョン情報」「プロパティ」を選択して、ide.system.dirを検索することで特定されます。

    • 1つのOracle JDeveloperでデプロイされたが、SOAコンポジット・アプリケーションのZIPファイルはOracle JDeveloperの別のインストールで開かれた。

    Project_Nameのデプロイ」ウィザードの「デプロイメント・アクション」ページが表示され、コンポジットをデプロイする必要があります。

    1. 「アプリケーション・サーバーにデプロイ」を選択します。

    2. ウィザードの各ページの指示に従って、SOAコンポジット・アプリケーションをアプリケーション・サーバーにデプロイします。

      SOAコンポジット・アプリケーションのデプロイの詳細は、「プロファイルのデプロイ」を参照してください。

    3. デプロイメントが完了したら、「ブレークポイントを設定してデバッグを開始する方法」に進みます。


    ログ・ウィンドウに次のメッセージが表示されたら、デバッグ・セッションを開始する準備ができています。

    Debugger attempting to connect to remote process at host_name 5004
    Debugger connected to remote process at host_name 5004
    Debugger process virtual machine is SOA Debugger.

49.2.2 ブレークポイントを設定してデバッグを開始する方法

ブレークポイントは、SOAコンポジット・アプリケーション内でデバッグのために設定する意図的な一時停止位置です。次のコンポーネントに対してブレークポイントを設定できます。

  • サービス・バインディング・コンポーネント

  • BPELプロセス・アクティビティおよびBPMプロセスのサービス・コンポーネントのインバウンド部分とアウトバウンド部分

  • Webサービス、JCAアダプタなどの参照バインディング・コンポーネント

  • Oracle Service Busサービス(『Oracle Service Busでのサービスの開発』のOracle Service Busアプリケーションのデバッグに関する項を参照)

ブレークポイントが設定されているコンポーネントは、赤のリクエスト(アウトバウンド)アイコン、リプライ(インバウンド)アイコン、またはリクエスト/リプライ(アウトバウンド/インバウンド)アイコンによって示されます。図49-4 に、ブレークポイント・アイコンが設定されているSOAコンポジット・アプリケーションの例を示します。

図49-4 ブレークポイントが設定されたSOAコンポジット・アプリケーション

図49-4の説明が続きます
「図49-4 ブレークポイントが設定されたSOAコンポジット・アプリケーション」の説明

ブレークポイントを設定してデバッグを開始する手順は、次のとおりです。

  1. 表49-3 に示すように、ブレークポイントを設定するコンポーネントを選択します。


    表49-3 ブレークポイントを設定するコンポーネント

    ブレークポイントを設定する対象 移動先の手順

    サービス・バインディング・コンポーネント

    2

    参照バインディング・コンポーネント

    3

    BPELプロセスやBPMプロセスなどのサービス・コンポーネント

    4


  2. サービス・バインディング・コンポーネントにブレークポイントを設定する手順は、次のとおりです。

    1. 次のメッセージが表示されているサービスの右側のハンドルを右クリックします。

      Use context menu to initiate WS debugging
      

      このアクションにより、図49-5 に示すコンテキスト・メニューが開きます。

      図49-5 SOAデバッガのブレークポイント・メニューのオプション

      図49-5の説明が続きます
      「図49-5 SOAデバッガのブレークポイント・メニューのオプション」の説明
    2. 表49-4 に示すものから、該当するブレークポイント相互作用オプションを選択します。


      表49-4 ブレークポイント相互作用オプション

      オプション 説明

      ブレークポイント・ペアの作成

      リクエスト/リプライ(アウトバウンド/インバウンド)相互作用の場合に設定します。これは、リクエストとリプライの両方が重要であるシナリオに役立ちます。

      リクエスト・ブレークポイントの作成

      リクエスト(アウトバウンド)相互作用の場合に設定します。これは、リクエストのみが重要であるシナリオに役立ちます。

      リプレイ・ブレークポイントの作成

      リプライ(インバウンド)相互作用の場合に設定します。これは、リプライのみが重要であるシナリオに役立ちます。

      WSデバッグの開始

      デバッグ・セッションを開始します。たとえば、デバッグ・セッションには、WebサービスからBPELプロセス、アダプタ参照バインディング・コンポーネントへの開始SOAPリクエストが含まれます。


      相互作用の選択項目を表す赤のアイコンが追加されます。

      たとえば、「ブレークポイント・ペアの作成」を選択した場合は、リクエストとリプライのブレークポイント・アイコンが追加されます。図49-6に詳細を示します。

      図49-6 サービス・バインディング・コンポーネントのリクエストおよびリプライのブレークポイント・アイコン

      図49-6の説明が続きます
      「図49-6 サービス・バインディング・コンポーネントのリクエストおよびリプライのブレークポイント・アイコン」の説明
    3. ステップ5に進みます。

  3. 参照バインディング・コンポーネントにブレークポイントを設定する手順は、次のとおりです。

    1. 該当する参照バインディング・コンポーネント(たとえば、Webサービスまたはデータベース・アダプタ)を右クリックし、表49-4 で説明するブレークポイント・オプションの1つを選択します。

      たとえば、いくつかの参照に対して「ブレークポイント・ペアの作成」を選択した場合は、リクエストとリプライのブレークポイント・アイコンが追加されます。図49-7に詳細を示します。

      図49-7 参照バインディング・コンポーネントに対して設定されるブレークポイント

      図49-7の説明が続きます
      「図49-7 参照バインディング・コンポーネントに対して設定されるブレークポイント」の説明
    2. ステップ5に進みます。

  4. サービス・コンポーネントにブレークポイントを設定する手順は、次のとおりです(この例では、BPELプロセスが選択されています)。

    1. 図49-8 に示すように、「編集」を選択します。

      図49-8 BPELプロセスのリクエストおよびリプライのブレークポイント・アイコン

      図49-8の説明が続きます
      「図49-8 BPELプロセスのリクエストおよびリプライのブレークポイント・アイコン」の説明

      これにより、Oracle BPELデザイナでBPELプロセスが開きます。

    2. ブレークポイントを設定するBPELアクティビティを右クリックして、「ブレークポイントの切替え」を選択します。図49-9に詳細を示します。

      図49-9 BPELプロセスのブレークポイント設定

      図49-9の説明が続きます
      「図49-9 BPELプロセスのブレークポイント設定」の説明

      アイコンがアクティビティに追加されます。これらのブレークポイント・アイコンは、単なる赤い点です。これは、フローが必ず1方向に進むからです。ブレークポイントは、常に、非同期BPELプロセス内の最初のアクティビティに設定することをお薦めします。

    3. ブレークポイントを無効にするには、右クリックして「ブレークポイントの切替え」を再び選択します。赤いドットが削除されます。BPELプロセス内のすべてのブレークポイントのリストを表示するには、アクティビティを右クリックして「ブレークポイント」を選択します。このダイアログでは、ブレークポイントを有効化および無効化することもできます。

    4. ステップ5に進みます。

  5. SOAコンポジット・アプリケーションのデバッグを開始するには、図49-5 に示すサービス・バインディング・コンポーネントの右側のハンドルを右クリックして、メニューから「WSデバッグの開始」を選択します。

    これによりHTTPアナライザが起動します。

  6. 送信するリクエスト・メッセージ・データを入力して「リクエストの送信」をクリックするか、「HTTPコンテンツ」をクリックし、XMLファイルからコンテンツをコピーして貼り付けます。フィールドごとにデータを入力するか、XMLドキュメントをコピー・アンド・ペーストできます。図49-10に詳細を示します。

    図49-10 SOAデバッガのメッセージ・データ

    図49-10の説明が続きます
    「図49-10 SOAデバッガのメッセージ・データ」の説明

    デバッガは、最初に設定したブレークポイントで停止します(この例では、サービス・バインディング・コンポーネントで)。

  7. Oracle JDeveloperの下部にあるログ・ウィンドウで、「データ」をクリックします。

  8. メッセージのコンテンツを展開します。図49-11に詳細を示します。値をダブルクリックして変更できます。XML以外の変数では、右クリックして「値の表示」を選択します(この例では、データベース・アダプタから返されるメッセージ)。

    図49-11 デバッガ起動後のメッセージのコンテンツ

    図49-11の説明が続きます
    「図49-11 デバッガ起動後のメッセージのコンテンツ」の説明

49.2.3 デバッグ・セッションでのステップ実行方法

ブレークポイントを作成すると、図49-12 に示すように、対応するフレームが「構造」ウィンドウに作成されます。このフレームは、サービス・バインディング・コンポーネントのリクエスト/リプライ・エントリ・ポイント用に作成されたものです。

フレームとは場所のことです。フレームのスタックは、現在の場所までの各場所のブレッド・クラム証跡です。これは、スタック・トレースと同じです。自分の場所およびそこに進むための方法を示します。フレームは、ブレークポイントとは関係なく作成されます。ブレークポイントで停止すると、「構造」ウィンドウでそれまでに作成したすべてのフレームが表示されます。スタック・フレームにも、その時点に存在したデータが含まれています。「構造」ペインで別のスタック・フレームをクリックしても、「データ」タブが更新されます。

たとえば、参照用にBPELプロセスに接続されたWebサービスがあるときに、参照にブレークポイントを設定した場合、スタックは多くの場合、次のように表示されます。

  • 参照

  • BPEL起動

  • BPELスコープ

  • Webサービス

「Webサービス」フレームをクリックすると、「データ」タブにSOAPペイロードが表示されます。次に「BPEL起動」フレームをクリックすると、様々なBPEL変数およびその他の詳細が「データ」タブに表示されます。

フレームをステップ実行して、別のロケーション(別のブレークポイントなど)からデバッグを開始できます。この例では、LoanProcess BPELプロセスから開始します。デバッグに進むと、次のフレームが作成されます。フレームは、変数が存在する場所です。

  • 「スコープ」フレーム: スコープ変数が含まれています。

  • 「プロセス」フレーム: グローバル変数が含まれています。

変数は、上のフレームから下のフレームまで、プロセスから参照できます。フレームは、「構造」ウィンドウに表示されます。

図49-12 「構造」ウィンドウのフレーム

図49-12の説明が続きます
「図49-12 「構造」ウィンドウのフレーム」の説明

デバッグ・セッションでステップ実行するには:

  1. Oracle JDeveloperのツールバーに進みます。ステップ・オプションを図49-13 に示します。

    図49-13 Oracle JDeveloperのステップ・オプション

    図49-13の説明が続きます
    「図49-13 Oracle JDeveloperのステップ・オプション」の説明

    表49-5 に、各オプションを示します。


    表49-5 Oracle JDeveloperメイン・メニューのステップ・オプション

    アイコン 説明
    「終了」または「連結解除」アイコン

    デバッグ・セッションを終了または切断します。

    「ステップ実行」ボタン

    フレームをステップ実行します。

    これにより、次のブレークポイントに進みます(たとえば、図49-9 でブレークポイントを設定したBPELプロセス内のreceiveアクティビティ)。ブレークポイントが存在しない場合は、すべてのフレームをステップ実行して最初のフレームに戻ります。

    [F8]を押してフレームをステップ実行することもできます。

    「トレース実行」オプション

    次の有効なロケーションまでトレース実行します。

    このロケーションは、新規フレームまたは同じフレーム(ただし別のロケーションにある)です。

    [F7]を押してフレームでステップ実行することもできます。

    「ステップ・アウト」オプション

    フレームのステップ・アウトを行います。

    このオプションは、BPELスコープまたはシーケンスのアクティビティを処理するためにのみ使用されます。スコープ処理の完了後、プロセス内で次にあるスコープまたはアクティビティで一時停止します。[Shift]キーを押しながら[F7]を押すこともできます。

    ステップの再開

    ステップ操作を再開します。

    [F9]を押して再開することもできます。


  2. 「ステップ実行」オプションを選択した場合は、receiveアクティビティで停止します。
  3. ログ・ウィンドウ内で、「データ」をクリックし、図49-14 に示すように内容を展開してBPELプロセスに定義された変数を表示します。デバッグ時にBPELプロセス変数を編集できます。図49-14 に示す例では、ペイロードは空です。

    図49-14 空のペイロード

    図49-14の説明が続きます
    「図49-14 空のペイロード」の説明

    これは、図49-15 に示すように、receiveアクティビティのブレークポイントがまだ実行されていないためです。

    図49-15 Receiveアクティビティのブレークポイント実行前の空のペイロード

    図49-15の説明が続きます
    「図49-15 Receiveアクティビティのブレークポイント実行前の空のペイロード」の説明
  4. 表49-5 で説明するように、「トレース実行」オプションをクリックします。

    これにより、図49-16 に示すreceiveアクティビティが実行されます。

    図49-16 Receiveアクティビティのブレークポイント実行後のデータ取込み済ペイロード

    図49-16の説明が続きます
    「図49-16 Receiveアクティビティのブレークポイント実行後のデータ取込み済ペイロード」の説明
  5. ペイロードを展開します。

    「ブレークポイントを設定してデバッグを開始する方法」のステップ6で入力したデータが、ペイロードに取り込まれます。図49-17に詳細を示します。

    図49-17 開いた状態のペイロード

    図49-17の説明が続きます
    「図49-17 開いた状態のペイロード」の説明
  6. 表49-5 で説明するように、「ステップ実行」オプションを選択します。デバッガは次のブレークポイントで一時停止します(この例では、図49-7 に示したように、Webサービス参照バインディング・コンポーネント)。

    Webサービス・コールへのリクエスト・メッセージの内容を図49-18 に示します。

    図49-18 リクエスト・メッセージのペイロードの内容

    図49-18の説明が続きます
    「図49-18 リクエスト・メッセージのペイロードの内容」の説明
  7. 「ステップ実行」オプションを選択します。
  8. ペイロードを展開して、メッセージのリプライを表示します。図49-19に詳細を示します。

    図49-19 リクエスト・メッセージのペイロードの内容

    図49-19の説明が続きます
    「図49-19 リクエスト・メッセージのペイロードの内容」の説明
  9. デバッグを続行します。

    assignアクティビティのコピー・ルールを実行すると、SOAデバッガによって、assignアクティビティにあるコピー・ルールを示すウィンドウが表示されます。ウィンドウには、すべてのコピー・ルールが表示された表があり、コピー・ルールの横にはデバッガを停止する「ブレークポイント」アイコンがあります。

    注意:

    アダプタ(たとえば、データベース・アダプタ)にブレークポイントを設定した場合、SOAデバッガはBPELプロセス・サービス・コンポーネントのステップ・アウトを行い、SOAコンポジット・エディタに進みます。

49.2.4 デバッグ・セッションを終了または切断する方法

デバッグ・セッションを終了または連結解除するには:

  1. ツール・メニューのボタンをクリックして、デバッグ・セッションを終了します。図49-20に詳細を示します。

    図49-20 デバッグ・セッションの終了または切断

    図49-20の説明が続きます
    「図49-20 デバッグ・セッションの終了または切断」の説明

    デバッガ・プロセスの終了ダイアログが表示されます。

  2. オプションを選択します。表49-6に詳細を示します。

    表49-6 ブレークポイント・メニューのオプション

    オプション 説明

    連結解除

    デバッグ処理を終了せずにデバッガを除去します。

    終了

    デバッグ処理を終了します。


  3. 「連結解除」を選択した場合は、図49-1 に示したSOAコンポジット・エディタの上部のデバッガ・アイコンをクリックしてデバッグを再開します。
  4. 「終了」を選択した場合は、右クリックして「WSデバッグの開始」を選択することによってデバッガを再び開始し、新規デバッグ・セッションを開始します。

49.2.5 ブレークポイントを削除する方法

個々のブレークポイントを削除することも、すべてのブレークポイントを削除することもできます。

ブレークポイントを削除する手順は、次のとおりです。

  1. 個々のブレークポイントを削除する手順は、次のとおりです。
    • ブレークポイントが設定されているアクティビティを右クリックして、「ブレークポイントの切替え」を選択します。

    • Oracle BPELデザイナ上部にある「ブレークポイント」アイコンをクリックして、「ブレークポイント」ダイアログでブレークポイントを削除するアクティビティを選択します。

  2. すべてのブレークポイントを削除するには、SOAコンポジット・アプリケーション内で右クリックして、「すべてのブレークポイントを削除」を選択します。
  3. 図49-21 に示すように、Oracle BPELデザイナ内でBPELプロセスの上部にあるアイコンをクリックします。

    図49-21 Oracle BPELデザイナのブレークポイント・アイコン

    図49-21の説明が続きます
    「図49-21 Oracle BPELデザイナのブレークポイント・アイコン」の説明

    図49-22 に示すように、「ブレークポイント」ダイアログが起動します。

    図49-22 「ブレークポイント」ダイアログ

    図49-22の説明が続きます
    「図49-22 「ブレークポイント」ダイアログ」の説明
  4. 「有効化」チェック・ボックスで、無効にするBPELプロセスのブレークポイントを選択します。

49.2.6 アダプタ・プロパティを表示する方法

ログ・ウィンドウの「データ」タブで、アダプタのプロパティを表示できます。

アダプタのプロパティを表示する手順は、次のとおりです。

  1. データベース・アダプタなどの参照バインディング・コンポーネントのブレークポイントで停止するまで、「ステップ実行」アイコンをクリックします。図49-23に詳細を示します。

    図49-23 JCAアダプタのプロパティ

    図49-23の説明が続きます
    「図49-23 JCAアダプタのプロパティ」の説明

    顧客の存在を確認するためにプロセスが停止します。アダプタ・エンドポイントのプロパティが表示されます。図49-24に詳細を示します。実行されるSQL構文も表示されます。

    図49-24 アダプタの出力

    図49-24の説明が続きます
    「図49-24 アダプタの出力」の説明
  2. プロパティを右クリックし、「全値の表示」を選択して、顧客に渡されるデータを表示します(この例では、nativePayloadが選択されています)。図49-25 は、渡される顧客IDを示しています。「全値の表示」は、XML以外のBPEL変数にも有用です。

    図49-25 渡されるリクエスト・メッセージのコンテンツ

    図49-25の説明が続きます
    「図49-25 渡されるリクエスト・メッセージのコンテンツ」の説明
  3. 「ステップ実行」アイコンをクリックして、データベース・アダプタを実行します。
  4. プロパティを右クリックし、「全値の表示」を選択して顧客のリプライ・メッセージ・データを表示します。この例では、値1は顧客が存在することを示しています。図49-26に詳細を示します。

    図49-26 返されるリプライ・メッセージのコンテンツ

    図49-26の説明が続きます
    「図49-26 返されるリプライ・メッセージのコンテンツ」の説明
  5. 値を変更するには、プロパティを右クリックして「値の変更」を選択します。

49.2.7 スレッドを表示する方法

プロセス・インスタンスは常に、単一の論理スレッド(同期、非同期にかかわらず)で実行されます(プロセスIDはスレッドと考えられます)。SOAデバッガは、論理スレッドを確認して使用します。プロセスにflowアクティビティまたはflowNアクティビティがある場合、複数の論理スレッドがそのflowアクティビティまたはflowNアクティビティを実行します。

スレッドを表示する手順は、次のとおりです。

  1. メイン・メニューから、「ウィンドウ」「デバッガ」「スレッド」を選択します。

    「構造」ウィンドウに「スレッド」タブが表示されます。

  2. BPELプロセスのサービス・バインディング・コンポーネントをトレース実行して、デバッグを開始します。

    図49-27 の「構造」ウィンドウに示すように、リクエストのスレッド値は40です。

    図49-27 リクエストのスレッド値

    図49-27の説明が続きます
    「図49-27 リクエストのスレッド値」の説明
  3. 非同期BPELプロセスのreceiveアクティビティをトレース実行します。

    図49-28 に示すように、リプライのスレッド値は41です。

    図49-28 リプライのスレッド値

    図49-28の説明が続きます
    「図49-28 リプライのスレッド値」の説明

49.3 HTTPアナライザを使用したSOAコンポジット・アプリケーションのテスト

Oracle JDeveloperのHTTPアナライザを使用して、SOAコンポジット・アプリケーション内のHTTPリクエストとレスポンスをテストできます。HTTPアナライザを使用して、HTTPリクエスト/レスポンス・パッケージ・ペアのコンテンツを検査できます。リクエスト・パッケージの内容を編集して再送信し、戻されるレスポンス・パケットを確認できます。HTTPアナライザの詳細は、Oracle JDeveloperによるアプリケーションの開発の「Javaプロジェクトの監査と監視」を参照してください。

HTTPアナライザを使用してSOAコンポジット・アプリケーションをテストする手順は、次のとおりです。

  1. 「ウィンドウ」メイン・メニューから、「アプリケーション・サーバー」 を選択します。
  2. 「アプリケーション・サーバー」ウィンドウで、SOAコンポジット・アプリケーションを展開します。
  3. テストするコンポーネント(この例では、Webサービス・バインディング・コンポーネント)を右クリックして、「Webサービスのテスト」を選択します。図49-29に詳細を示します。

    図49-29 「アプリケーション・サーバー」ウィンドウ内のテスト対象コンポーネント

    図49-29の説明が続きます
    「図49-29 「アプリケーション・サーバー」ウィンドウ内のテスト対象コンポーネント」の説明

    HTTPアナライザが表示されます。

  4. 送信するリクエスト・メッセージ・データを入力して「リクエストの送信」をクリックするか、「HTTPコンテンツ」をクリックし、XMLファイルからコンテンツをコピーして貼り付けます。図49-30に詳細を示します。

    正常に実行されると、図49-31 に示すような出力が右側のペインに表示されます。

    図49-31 レスポンスHTTPヘッダー

    図49-31の説明が続きます
    「図49-31 レスポンスHTTPヘッダー」の説明

「Webサービスのテスト」ページを使用してもテストを実行できます。詳細は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』のビジネス・フローのテスト・インスタンスの起動に関する項を参照してください。

49.4 BPELアクティビティ・レベルでのSOAコンポジット・アプリケーションの監査

監査証跡データは、データベースに永続保存される状態データの大きな割合を占めることがよくあります。永続保存される状態データの量を削減するために、BPELプロセス・アクティビティ・レベルで細分性の高い監査レベルを指定できます。これらの設定は、サービス・コンポーネント、SOAコンポジット・アプリケーション、BPELプロセス・サービス・エンジン、およびSOAインフラストラクチャのレベルで構成された監査証跡設定より優先されます。

次の手順を実行します。

  • SOAコンポジット・アプリケーション内でBPELアクティビティに対して実行する監査のレベルを定義する、監査ポリシーXMLファイルを作成および構成します。

  • 監査ポリシーをBPELプロセスにバインドする監査ポリシー・バインディングXMLファイルを作成し、構成します。

  • composite.xmlファイルと同じディレクトリ・ロケーション、またはcomposite.xmlファイル内のプロパティで指定した別のディレクトリに、これらのファイルを配置します。

  • SOAコンポジット・アプリケーションをSOAインフラストラクチャにデプロイします。

  • Oracle Enterprise Manager Fusion Middleware ControlのSOAコンポジット・アプリケーションのフロー・トレース内で、BPELプロセス・アクティビティの監査証跡を表示します。

次のガイドラインに留意してください。

  • 監査ポリシーは、標準のBPEL 1.1および2.0のアクティビティおよびスコープと、BPEL拡張アクティビティ(たとえば、電子メール、通知、その他すべて)の両方の監査をサポートします。親スコープ内で、監査対象にする特定の子スコープ、および監査対象にしないその他の子スコープを構成できます。

  • サポートされる監査レベルを表49-7 に示します。


    表49-7 監査レベル

    レベル 説明

    Inherit

    ロギングは、Oracle Enterprise Manager Fusion Middleware Controlの「SOAインフラストラクチャの共通プロパティ」ページで設定したSOAインフラストラクチャ監査レベルと一致します。これがデフォルトの設定です。

    Production

    ビジネス・フロー・インスタンスに関する最小限の情報が収集されます。たとえば、BPELプロセス・サービス・エンジンはペイロードを収集しません。したがって、フローの監査証跡でペイロード詳細は使用できません。このレベルは、標準の操作とテストに最適です。

    Development

    BPELプロセス・アクティビティに関する完全な情報が収集されます。このオプションを選択すると、コンポジット・インスタンスのトラッキングとペイロード・トラッキングの両方が実行されます。ただし、メッセージ・フローの各ステップでペイロードが格納されるため、パフォーマンスに影響を与える可能性があります。この設定は、デバッグする際に便利です。

    Off

    ロギングは実行されません。コンポジット・インスタンスのトラッキング情報とペイロード・トラッキング情報は収集されません。


  • フォルト・ポリシー・バインディング・ファイルでは、プロセス名とリビジョン番号のワイルドカード・マッチングがサポートされています。次に例を示します。

    • Order*と入力すると、コンポジットOrderProcessOrderRejected、およびOrderConfirmedに含まれるBPELプロセス・サービス・コンポーネントに一致します。

      <process auditPolicy="noLoops" name="Order*"/>
      
    • 1*と入力すると、コンポジット・リビジョン1.01.1、および1.2に一致します。

      <process auditPolicy="noAssign" name="*" revision="1.*"/>
      

次の例は、使用する監査ポリシー・スキーマを示しています。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.oracle.com/bpel/auditpolicy"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:tns="http://schemas.oracle.com/bpel/auditpolicy"
   elementFormDefault="qualified">
   <!-- activity can have a type or a name as optional attribute.-->
   <!-- Audit rules apply to all activities if no specific type or name is -->
   <!-- provided -->
   <xs:complexType name="Activity">
        <xs:attribute name="type" type="xs:QName" use="optional"/>
        <xs:attribute name="name" type="tns:idType" use="optional"/>
        <xs:attribute name="auditLevel" type="tns:auditLevelType" use="required"/>
   </xs:complexType>
   <xs:simpleType name="idType">
        <xs:restriction base="xs:string">
             <xs:minLength value="1"/>
         </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="auditLevelType">
         <xs:restriction base="xs:string">
              <xs:enumeration value="off"/>
              <xs:enumeration value="minimal"/>
              <xs:enumeration value="production"/>
              <xs:enumeration value="development"/>
         </xs:restriction>
   </xs:simpleType>
   <xs:element name="auditPolicy">
        <xs:complexType>
             <xs:sequence>
                  <xs:element name="activity" type="tns:Activity" minOccurs="0"
                   maxOccurs="unbounded"/>
             </xs:sequence>
             <xs:attribute name="id" type="tns:idType" use="required"/>
             <xs:attribute name="version" type="xs:string" default="1.0"/>
        </xs:complexType>
        <!-- we restrict users to provide mulitple rules for same activity -->
        <xs:key name="UniqueActivity">
             <xs:selector xpath="tns:activity"/>
             <xs:field xpath="@type"/>
             <xs:field xpath="@name"/>
        </xs:key>
     </xs:element>
</xs:schema>

次の例は、使用する監査ポリシー・バインディング・スキーマを示しています。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.oracle.com/bpel/auditpolicyBinding"
     xmlns:tns="http://schemas.oracle.com/bpel/auditpolicy"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      elementFormDefault="qualified">
        <xs:complexType name="Process">
             <xs:attribute name="auditPolicyId" type="tns:idType" use="optional"/>
             <xs:attribute name="name" type="tns:idType" use="optional"/>
             <xs:attribute name="revision" type="tns:idType" use="optional"/>
        </xs:complexType>
        <xs:simpleType name="idType">
                <xs:restriction base="xs:string">
                       <xs:minLength value="1"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:element name="auditPolicyBinding">
                <xs:complexType>
                       <xs:sequence>
                            <xs:element name="process" type="tns:Process"
                             minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="version" type="xs:string"
                         default="1.0"/>
                 </xs:complexType>
                 <xs:key name="UniqueActivity">
                       <xs:selector xpath="tns:process"/>
                       <xs:field xpath="@name"/>
                       <xs:field xpath="@revision"/>
                 </xs:key>
         </xs:element>
</xs:schema>

49.4.1 BPELアクティビティ・レベルでSOAコンポジット・アプリケーションを監査する方法

この項では、監査ポリシーと監査ポリシー・バインディング・ファイルを作成し、構成する方法を説明します。

BPELアクティビティ・レベルでSOAコンポジット・アプリケーションを監査する手順は、次のとおりです。

  1. BPELアクティビティの監査レベル設定を定義する監査ポリシー・ファイル(たとえば、audit-policy.xmlという名前)を作成し、構成します。ファイルには任意の名前を付けることができ、前の項で説明したスキーマに従っている必要があります。
    <auditPolicies xmlns="http://schemas.oracle.com/bpel/auditpolicy"
    xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension" version="1.0">
      <auditPolicy name="whilePolicy">
         <!-- enabling this will cause all assign activities to not log -->
         <!-- anything to the audit trail -->
      <activity type="bpel:assign" auditLevel="production"/>
       
        <!-- enabling this will cause all scope activities and all -->
        <!-- enclosed activities to not log anything to the audit trail -->
         <activity type="bpel:scope" auditLevel="production"/>
         <!-- enabling this will cause all while activities to log with -->
         <!-- minimak level  -->
         <activity type="bpel:while" auditLevel="production"/>
          <activity type="bpel:reply" auditLevel="production"/>
          <activity type="bpel:flow" auditLevel="production"/>
           <activity type="bpel:switch" auditLevel="off"/>
           <activity type="bpel:terminate" auditLevel="production"/>
           <activity type="bpel:empty" auditLevel="development"/>
            <activity type="bpel:wait" auditLevel="production"/>
             <activity type="bpel:throw" auditLevel="off"/>
              <activity type="bpel:catchAll" auditLevel="production"/>
               <activity type="bpel:sequence" auditLevel="off"/>
                <activity type="bpel:receive" auditLevel="production"/>
      </auditPolicy>
    </auditPolicies>

    注意:

    BPEL拡張の監査を有効にするには、該当する監査レベル(たとえば、production)を指定してbpelx:execを入力します。

    <activity type="bpelx:exec" auditLevel="production"/>
  2. 監査ポリシーをBPELプロセスにバインドする監査ポリシー・バインディングXMLファイル(たとえば、audit-binding.xmlという名前)を作成し、構成します。ファイルには任意の名前を付けることができ、前の項で説明したスキーマに従っている必要があります。この例では、myProcessで始まるすべてのBPELプロセスの監査が有効になるように、ワイルドカード・オプションを使用しています。その他いくつかの監査オプションはコメント化されています。
    <auditPolicyBindings xmlns="http://schemas.oracle.com/bpel/auditpolicyBinding"
     version="1.0">
      <!-- enabling this will cause all processes in the domain to use this -->
      <!-- policy audit -->
      <!-- <process auditPolicyName="whilePolicy" name="BPELProcess*"/> -->
      <!-- enabling this will cause all processes that start with the name -->
      <!-- myProcess to use the audit policy 'noLoops' -->
      <process auditPolicyName="noLoops" name="myProcess*"/>
      <!-- enabling this will cause all processes -->
      <!-- process auditPolicyName="noAssign" name="*"/> -->
    </auditPolicyBindings>
    
  3. composite.xmlファイルと同じディレクトリにXMLファイルを配置します。
  4. composite.xmlファイル内でaudit-policy.xmlファイルとaudit-binding.xmlファイルを定義します。
    <property name="oracle.composite.bpelAuditPolicyFile">audit-policy.xml</property>
    <property
    name="oracle.composite.bpelAuditBindingFile">audit-binding.xml</property>
    
  5. SOAコンポジット・アプリケーションをデプロイします。