プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Service Busでのサービスの開発
12c (12.1.3)
E53004-06
目次へ移動
目次

前
次

57 Oracle Service Busアプリケーションのデバッグ

この章では、メッセージ・フローでブレークポイントを設定し、JDeveloperデバッガを使用して、Service Busのパイプラインおよび分割-結合をデバッグする方法を説明します。次の項が含まれます:

57.1 デバッガの概要

JDeveloperは、Service Busプロジェクト・コンポーネントを評価し強化するために役立つ包括的な統合デバッガを提供します。デバッガは、開発環境内に直接トラブルシューティング機能を提供することで、開発サイクルを短縮します。つまり、JDeveloperでService Busアプリケーションを構築して実行し、JDeveloperに戻って問題を修正し、これらの手順を繰り返すという必要はありません。かわりに、パイプラインと分割-結合をトラブルシューティングするためのブレークポイントをJDeveloper内で直接設定できます。

デバッガでは、Javaコールアウトを処理できます。また、並列処理を使用する分割-結合でのマルチ・スレッド・デバッグをサポートします。デバッガを使用するときは次のガイドラインに留意してください。

  • デバッグは、JDeveloperのデザイン・ビューに制限されています。

  • Javaコールアウト・アクション、XSLTおよびXQuery変換などのクロス言語機能はデバッグできません。

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

  • サーバーが開発モードの場合にのみデバッグできます。

  • デバッガは本番モード、あるいはサーバーがクラスタの一部か非クラスタドメインの管理サーバーと1つ以上の管理対象サーバーの場合には有効にできません。

デバッガ・ウィンドウの一般的な情報は、『Oracle JDeveloperによるアプリケーションの開発』のJavaプロジェクトの実行およびデバッグに関する項を参照してください。

57.1.1 デバッグ・サーバー

統合またはスタンドアロンのWebLogic ServerにデプロイされているService Busコンポーネントをデバッグできます。JDeveloperではローカル統合WebLogic Serverインスタンスのライフサイクルを管理できます。ローカル統合サーバーを構成する場合は、「JDeveloperでこのサーバー・インスタンスのライフサイクルを管理します」を選択できます。この構成では、JDeveloperは、ユーザーが実行コマンドまたはデバッグ・コマンドを選択したときにサーバーを起動します。統合サーバーがJDeveloperによって管理されるように構成されていない場合は、サーバーを手動で起動および停止する必要があります。ただし、引き続き実行コマンドを使用して、テストするサービスをサーバーにデプロイできます。統合サーバーがリモートの場合、「JDeveloperでこのサーバー・インスタンスのライフサイクルを管理します」は選択しないでください。

デバッグ用にスタンドアロン・サーバーを使用する場合は、それがローカルであるか、リモートであるかに関係なく構成は同じです。アプリケーション・プロパティでサーバーを構成する必要はありません。スタンドアロン・サーバーでは、アプリケーション・ナビゲータから実行コマンドを使用できません。そのかわりに、デプロイ・コマンドを使用してService Busアプリケーションをサーバーに手動でデプロイし、テスト・コンソールを手動で起動する必要があります。

57.1.2 ローカルおよびリモートでのデバッグ

デバッグは、ローカルまたはリモートのいずれかのWebLogic Serverで実行できます。ローカルのデバッグ・セッションは、ソース・ファイルにブレークポイントを設定してからデバッガを起動することで、開始されます。Service Busコンポーネントのデバッグ時には、実行フローを完全に制御し、変数の値を表示および変更できます。

リモート・デバッグには、デバッガとデバッグ対象の2つのJDeveloperプロセスが必要です。デバッグ対象は実行中のサーバーで、JDeveloperで定義されている場合もあれば定義されていない場合もあり、異なるプラットフォームに常駐していることもあります。デバッグ対象サーバーには、Service Busアプリケーションがデプロイされている必要があります。リモート・デバッグを実行するには、「リモート・デバッグ用実行構成の作成方法」に説明されているとおり、プロジェクト・プロパティで実行構成を構成する必要があります。

57.1.3 ブレークポイントを使用したデバッグ

ブレークポイントは、パイプラインまたは分割-結合内でメッセージ処理を一時停止するポイントをマークします。これによって、一部またはすべてのメッセージ変数の値を確認できます。メッセージ・フローの考えられる問題領域にブレークポイントを設定することで、デバッグする位置に達するまでメッセージ・フローを通じてデータを実行できます。ブレークポイントに達すると、メッセージ処理は一時停止し、デバッガはソース・エディタ内のブレークポイントを含むアクションに着目します。その後、デバッガを使用してプログラムの状態を表示できます。ブレークポイントは、デバッグを開始する前に、またはデバッグ中に随時、柔軟に設定できます。

ブレークポイントは、パイプライン上の次のノードに追加できます。

  • ルート・ノード

  • ルート・アクション

  • ブランチ・ノード

  • パイプライン・ペア・パス(リクエストまたはレスポンス)

  • ステージ(パイプライン・ペアとエラー・ハンドラの両方)

  • ステージ・アクション(パイプライン・ペアとエラー・ハンドラの両方)

すべての分割-結合アクションにブレークポイントを追加できますが、Ifノードでブレークポイントを切り替えると、Ifノード自体ではなく、Ifノード内のIf条件のブレークポイントが切り替わります。

57.1.4 JDeveloperデバッグ・ウィンドウ

JDeveloperは、デバッガとともにいくつかの異なるデバッグ・ウィンドウを提供します。これらのウィンドウで、デバッグ・プロセスを経過中のデータを表示および分析できます。Service Busは次のデバッグ・ウィンドウを使用します。

  • ブレークポイント

  • データ

  • ウォッチ

  • スタック

  • スレッド

  • ログ

これらのウィンドウの詳細は、『Oracle JDeveloperによるアプリケーションの開発』のデバッガ・ウィンドウの使用方法に関する項を参照してください。

57.2 プロジェクトおよびデバッガの構成

デバッグ・プロセスを制御するため、プロジェクトおよびデバッガの設定を構成できます。プログラムのデバッグまたは実行方法を制御する設定は実行構成で定義されます。これらの設定には、ターゲット、起動オプションおよびデバッガ、ログ出力、プロファイラの動作などが含まれます。Service Busは、ローカルでのデバッグおよびテスト用のデフォルトの実行構成を提供していますが、新しい構成を作成することもできます。1つのプロジェクトに、それぞれプロジェクトの特定のファセットまたは開発プロセスのフェーズに対応して設定されている複数の実行構成が存在する場合があります。実行構成は、プロジェクトにバインドされ、プロジェクトで作業する全員が使用できる場合もあれば、自分専用のカスタム構成の場合もあります。

これらの手順はオプションで、統合サーバーでデフォルト構成を使用してローカル・デバッグを実行できます。詳細と手順は、『Oracle JDeveloperによるアプリケーションの開発』の次のトピックを参照してください。

  • デバッグ用にプロジェクトを構成する方法

  • デバッガ開始オプションの設定方法

  • 実行用のプロジェクトの構成

57.2.1 リモート・デバッグ用に実行構成を作成する方法

Service Busが提供するデフォルト構成などの既存の構成をコピーして、新しい実行構成を作成します。コピー後に、新しい構成に応じて設定を変更します

リモート・デバッグ用に実行構成を作成するには:

ヒント:

実行構成ウィンドウで作業するウィンドウとフィールドの詳細を参照するには、「ヘルプ」をクリックしてください。

  1. メイン・メニューから「アプリケーション」をクリックし、「プロジェクト・プロパティ」を選択します。
  2. ナビゲーション・ペインで、「実行/デバッグ」を選択し、「実行/デバッグ」ページで「新規」をクリックします。
  3. 「実行構成の作成」ダイアログで、新しい構成の名前を入力し、初期プロパティのコピー元となる既存の実行構成を選択します。
  4. 「OK」をクリックします。
  5. 「実行/デバッグ」ページの「実行構成」セクションで、作成した構成を選択し、「編集」をクリックします。

    「実行構成の編集」ウィンドウが現れ、「起動設定」ページが表示されます。

  6. 「リモート・デバッグ」を選択し、必要に応じてその他のフィールドを変更します。
  7. ナビゲーション・ペインで、「ツール設定」→「デバッガ」の下の「リモート」を選択します。
  8. 「プロトコル」フィールドで「Service Busにアタッチ」を選択します。
  9. 以下のいずれか、または両方を実行します。
    • この実行構成が選択されたときに特定のサーバーに自動的に接続するには、ホスト名、ポート番号およびタイムアウト値を入力します。

    • この実行構成の選択時にホスト情報を入力できるダイアログを表示するには、「デバッガ接続前にダイアログ・ボックスを表示」を選択します。

    前述の両方の手順を実行すると、実行構成の選択時にダイアログが表示され、指定した接続情報がすでに移入されています。

  10. 「OK」をクリックし、さらに再度「OK」をクリックします。
  11. 「保存」をクリックします。

57.2.2 デバッグ用の実行構成を作成する方法

デフォルトの実行構成は、新しいプロジェクトごとに作成され、ローカル・デバッグに統合WebLogic Serverを使用します。このデフォルト構成または作成した他の構成を選択して、選択したプロジェクトを実行できます。JDeveloperツールバーからデバッガを実行する場合は、「デバッグ」アイコンの横にある使用可能な構成オプションのリストから実行構成を選択できます。

デバッグ用に実行構成を選択するには:

  1. メイン・メニューから「アプリケーション」をクリックし、「プロジェクト・プロパティ」を選択します。
  2. 「実行/デバッグ」を選択します。
  3. 「実行構成」リストで、使用する実行構成を選択して、「OK」をクリックします。

57.3 デバッガへのアクセス

JDeveloperデバッガを起動する方法は複数あります。この章に記載された手順では、アプリケーション・ナビゲータを使用してデバッガを起動しますが、準備が整った時点で次のいずれかの方法を使用してデバッガを起動できます。

  • アプリケーション内のプロジェクトまたはコンポーネントを右クリックし、「デバッグ」を選択します。

  • JDeveloperツールバーで、「デバッグ」アイコンをクリックします。デバッグ・プロセスは選択された実行構成を使用します。「デバッグ用に実行構成を選択する方法」を参照してください。

  • Service Busコンポジット概要エディタでパイプラインまたは分割-結合を右クリックし、「デバッグ」を選択します。

  • 開かれたパイプラインまたは分割-結合のエディタ内を右クリックし、「デバッグ」を選択します。

57.4 Service Busアプリケーションのデバッグ

この項では、JDeveloperでデバッガの起動、ブレークポイントの作成、およびService Busアプリケーションのデバッグを実行する方法を説明します。テスト・コンソールとデバッガを使用する以外にもデバッグする方法があります。JMSメッセージのポスト、ファイル・プロキシ・サービスのディレクトリへの入力ファイルの配置など、他の方法でサービスを実行することもできます。

57.4.1 Service Busコンポーネントにブレークポイントを設定する方法

ブレークポイントは、デバッグ・プロセス用に設定されるService Busアプリケーション内の意図的な一時停止位置です。テスト・コンソールを使用してテスト・データを実行すると、プロセスはブレークポイントごとに一時停止し、ユーザーが指示するまで再開しません。ブレークポイントは、パイプラインと分割-結合に設定できます。

Service Busコンポーネントにブレークポイントを設定するには:

  1. デバッグするパイプラインまたは分割-結合をエディタで開きます。
  2. ブレークポイントを追加するノードが表示されるまで、アクションを開きます。
  3. ノードを右クリックし、「ブレークポイントの設定」を選択します。

    ノードの横に、ブレークポイントが設定されていることを示す赤いアイコンが表示されます。

  4. 前述の手順を、ブレークポイントを追加するノードごとに繰り返します。
  5. ブレークポイントを無効にするには、ノードを右クリックし、「ブレークポイントを無効化」を選択します。

    「ブレークポイントを削除または無効にする方法」および「無効なブレークポイントを有効にする方法」に説明されているとおり、ブレークポイント・ビューでブレークポイントを有効化、無効化および削除することもできます。

  6. ブレークポイントを削除するには、ノードを右クリックし、「ブレークポイントの設定」を再度選択します。
  7. 「ブレークポイントを使用してデバッグする方法」に説明されているとおり、デバッグを開始します。

57.4.2 ブレークポイントを使用してデバッグする方法

ローカル・サーバーを使用してコンポーネントをデバッグする場合は、デバッグ・プロセスに入力情報を入力できるようにテスト・コンソールが起動されます。統合WebLogicサーバーを使用する場合は、ローカルでのみテストできます。プロジェクトのプロパティで、ローカルでテストするか、リモートでテストするかを指定します。また、デバッグ中のブレークポイントの処理方法も構成できます。

これらのオプションの設定方法の詳細は、『Oracle JDeveloperによるアプリケーションの開発』のデバッグ用にプロジェクトを構成する方法およびデバッガ起動オプションの設定方法に関する項を参照してください。

ブレークポイントを使用してコンポーネントでデバッグを開始するには:

  1. 「Service Busコンポーネントにブレークポイントを設定する方法」の説明に従って、デバッグするコンポーネントのブレークポイントを定義します。
  2. アプリケーション・ナビゲータでパイプラインまたは分割-結合を右クリックし、「デバッグ」を選択します。

    テスト・コンソールが表示されます。

    注意:

    実行中のドメインがない場合は、「デフォルト・ドメインの作成」ダイアログが表示されます。統合サーバーの接続情報を入力し、「OK」をクリックします。これには数分かかることがあります。

  3. 「リクエスト・ドキュメント」セクションにテスト・データを入力し、追加の入力を構成します。

    詳細は、「テスト・コンソールの使用」を参照してください。

  4. テスト・コンソールで「実行」をクリックします。

    テスト・コンソールはコマンドを実行しますが、最初のブレークポイントに達すると一時停止し、パイプラインまたは分割-結合のエディタに戻ります。この時点でブレークポイント・アイコンは、デバッガが停止されていることを示す赤色ではなく青色になります。

  5. JDeveloperの下部の「ログ」ウィンドウで、「データ」をクリックします。

    このウィンドウで、処理中の現在の状態の変数値を表示できます。ここで実行できる操作の詳細は、「デバッガ・ウィンドウでの操作」を参照してください。

  6. メッセージ処理で操作を続行するには、「デバッグ・セッションでのステップ実行方法」のステップを実行します。

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

デバッグ・フレームワークを使用すると、デバッグ・コードに対してステップ・アクションを実行してインクリメンタルにデバッグできます。メッセージ・フロー部分に対してステップ実行し、同じまたは異なるコンポーネントの異なるブレークポイントなどの異なる位置でデバッグを開始できます。デバッグが進行するにつれ、ブレークポイント用の追加のフレームが作成され、スタック・ビューが表示されます。

次のステップで示されるすべてのアイコンが、ツールバーの「デバッグ」アイコンの右側にあります。アイコンにポインタを重ねると、アイコンの名前が表示されます。

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

  1. 「ブレークポイントを使用してデバッグする方法」の説明に従って、パイプラインまたは分割-結合のデバッグを開始します。

    デバッガがブレークポイントに到達すると、ステップ実行を開始できます。

  2. 現在のどのブレークポイントでアクションが停止しているかを確認するには、「実行ポイントの検索」アイコンをクリックします。

    現在のブレークポイント・アイコンは赤色ではなく青色です。

  3. ブレークポイントでステップ実行し、次のアクションに移動するには、「ステップ実行」アイコンをクリックします。
  4. メッセージ・フローの次の有効な位置にステップ・インするには、「トレース実行」アイコンをクリックします。
  5. ブレークポイント・フレームからステップ・アウトするには、「ステップ・アウト」アイコンをクリックします。
  6. デバッガがブレークポイントで一時停止している場合は、「再開」をクリックして処理を再開します。プロセスは、次のブレークポイントに達するまで実行されます。

57.4.4 デバッグから終了または連結解除する方法

デバッグを停止するには、デバッガを連結解除するか、または終了します。

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

  1. ツール・メニューで「終了」アイコンをクリックします。

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

  2. 「デタッチ」または「終了」を選択します。

    両オプションとも、デバッガのサーバーへの接続を終了しますが、プロセスは完了するまでサーバー上で実行を継続します。

  3. 「連結解除」を選択した場合、デバッグを再開するにはツール・メニューのデバッガ・アイコンをクリックします。

57.5 デバッガ・ウィンドウでの操作

デバッグ・セッションを開始すると、「ログ」ウィンドウにいくつかのタブが表示され、デバッグ・プロセスに役立つ追加情報と機能が示されます。これらのウィンドウは、「ウィンドウ」「デバッガ」メニューから開くこともできます。

57.5.1 ブレークポイント・オプションの編集方法

「ブレークポイント」ウィンドウでは、ブレークポイントをグループに追加し、グループ内のすべてのブレークポイントを有効化または無効化できます。また、ロギング、サウンドおよびブレークポイントに達したら処理を停止するかどうかも構成できます。デバッグ・セッションの内側または外側のいずれにいる場合でも、「ブレークポイント」ウィンドウは使用可能です。

ブレークポイントのオプションを表示および変更するには:

  1. 「ブレークポイント」ウィンドウが開いていない場合は、メイン・メニューから「ウィンドウ」「ブレークポイント」を選択します。
  2. ブレークポイントを右クリックして「編集」を選択するか、またはブレークポイントを選択して、ブレークポイント・ツールバーの「編集」アイコンをクリックします。

    「ブレークポイントの編集」ダイアログが表示され、「定義」タブ、「条件」タブおよび「アクション」タブが示されます。Service Busの「条件」タブで変更するものはありません。条件ブレークポイントはサポートされません。

  3. ブレークポイント・オプションに必要な変更を加えます。

    「定義」および「アクション」タブの詳細を参照するには、「ヘルプ」をクリックしてください。

  4. 変更を保存するため、「OK」をクリックします。

57.5.2 ブレークポイント・グループの作成方法

ブレークポイント・グループを作成することで、ブレークポイントに対して一括編集を実行できます。グループを作成すると、新しいノードが「ブレークポイント」ウィンドウに追加され、グループに追加されたブレークポイントがそのグループ・ノードの下に表示されます。

57.5.2.1 ブレークポイント・グループの作成

ブレークポイント・グループを作成するには:

  1. 「ブレークポイント」ウィンドウが開いていない場合は、メイン・メニューから「ウィンドウ」「ブレークポイント」を選択します。
  2. ブレークポイントを右クリックして「編集」を選択するか、またはブレークポイントを選択して、ブレークポイント・ツールバーの「編集」アイコンをクリックします。

    「ブレークポイントの編集」ダイアログが現れ、「定義」タブが表示されます。

  3. 「ブレークポイントのグループ名」フィールドにグループの新しい名前を入力します。
  4. 変更を保存するため、「OK」をクリックします。

    新しいグループが「ブレークポイント」ウィンドウに追加され、ブレークポイントがそのグループに追加されます。

57.5.2.2 既存のグループへのブレークポイントの追加

ブレークポイントを既存のグループに追加するには:

  1. 「ブレークポイント」ウィンドウが開いていない場合は、メイン・メニューから「ウィンドウ」「ブレークポイント」を選択します。
  2. ブレークポイントを右クリックして「編集」を選択するか、またはブレークポイントを選択して、ブレークポイント・ツールバーの「編集」アイコンをクリックします。

    「ブレークポイントの編集」ダイアログが現れ、「定義」タブが表示されます。

  3. 「ブレークポイントのグループ名」フィールドで、ブレークポイントを追加するグループの名前を選択します。
  4. 変更を保存するため、「OK」をクリックします。

57.5.3 ブレークポイントを削除または無効にする方法

個々のブレークポイントまたはすべてのブレークポイントを無効化するか、または削除できます。

ブレークポイントを削除または無効化するには:

  1. 個々のブレークポイントを削除するには、パイプラインまたは分割-結合エディタでブレークポイントに関連付けられたアクションを右クリックし、「ブレークポイントの設定」を選択します。また、「ブレークポイント」ウィンドウでブレークポイントを選択して、「削除」をクリックすることもできます。
  2. すべてのブレークポイントを削除するには、「ブレークポイント」ウィンドウを右クリックし、「すべて削除」を選択します。
  3. 個々のブレークポイントを無効にするには、パイプラインまたは分割-結合エディタでブレークポイントに関連付けられたアクションを右クリックし、「ブレークポイントを無効化」を選択します。また、「ブレークポイント」ウィンドウでブレークポイントを選択して、「無効化」をクリックすることもできます。
  4. すべてのブレークポイントを無効にするには、「ブレークポイント」ウィンドウを右クリックし、「すべて無効化」を選択します。

57.5.4 無効なブレークポイントを有効にする方法

ブレークポイントを無効にした場合、それを再度有効にして、デバッグ・プロセスに含めることができます。

ブレークポイントを有効にするには:

  1. 個々のブレークポイントを有効にするには、パイプラインまたは分割-結合エディタでブレークポイントに関連付けられたアクションを右クリックし、「ブレークポイントの有効化」を選択します。また、「ブレークポイント」ウィンドウでブレークポイントを選択して、「有効化」をクリックすることもできます。
  2. 設定されているすべてのブレークポイントを有効にするには、「ブレークポイント」ウィンドウを右クリックし、「すべて有効化」を選択します。

57.5.5 現在のブレークポイントの変数値の表示および変更方法

「データ」ウィンドウには、現在のブレークポイントのコンテキスト変数とその値が表示されます。デバッグ・プロセス全体を通じたリクエストまたはレスポンス・データを表示し、さらにデバッグするためにそれらの値を変更できます。単純型の変数値のみを変更できます。

変数値を表示および変更するには:

  1. デバッグを開始し、デバッガがブレークポイントに達した時点で、「ログ」ウィンドウの「データ」タブをクリックします。
  2. 「名前」列で変数を開き、各変数とノードの値を表示します。
  3. 変数値を変更するには、値をダブルクリックし、表示されたダイアログに新しい値を入力します。
  4. 変数値を定義する文字列全体を表示するには、変数を右クリックして、「全値の表示」を選択します。

57.5.6 監視の追加方法

ウォッチを使用して、プログラムの実行につれて変化する変数や式の値をモニターできます。ウォッチ式を入力後、「ウォッチ」ウィンドウに式の現在の値が表示されます。プログラムの実行に伴い、プログラムがウォッチ式の変数の値を更新すると、ウォッチの値も変化します。

ウォッチは、「スタック」ウィンドウでの選択によって制御される現在のコンテキストに従って式を評価します。新しいコンテキストに移動すると、式は新しいコンテキストに応じて再評価されます。ウォッチ式内の変数が定義されていない位置に実行ポイントが移動すると、ウォッチ式全体が未定義となります。ウォッチ式が評価可能な位置に実行ポイントが戻ると、「ウォッチ」ウィンドウに再度ウォッチ式の値が表示されます。

ウォッチを追加するには:

  1. デバッグを開始し、デバッガがブレークポイントに達した時点で、「ログ」ウィンドウの「データ」タブをクリックします。
  2. 「名前」列で、モニターする変数が表示されるまでノードを開きます。
  3. 変数を右クリックして、「ウォッチ」を選択します。

    「ウォッチ」ウィンドウが開き、選択された変数のウォッチを定義する新しい行が示されます。