この章では、メッセージ・フローでブレークポイントを設定し、JDeveloperデバッガを使用して、Service Busのパイプラインおよび分割-結合をデバッグする方法を説明します。次の項が含まれます:
JDeveloperは、Service Busプロジェクト・コンポーネントを評価し強化するために役立つ包括的な統合デバッガを提供します。デバッガは、開発環境内に直接トラブルシューティング機能を提供することで、開発サイクルを短縮します。つまり、JDeveloperでService Busアプリケーションを構築して実行し、JDeveloperに戻って問題を修正し、これらの手順を繰り返すという必要はありません。かわりに、パイプラインと分割-結合をトラブルシューティングするためのブレークポイントをJDeveloper内で直接設定できます。
デバッガでは、Javaコールアウトを処理できます。また、並列処理を使用する分割-結合でのマルチ・スレッド・デバッグをサポートします。デバッガを使用するときは次のガイドラインに留意してください。
デバッグは、JDeveloperのデザイン・ビューに制限されています。
Javaコールアウト・アクション、XSLTおよびXQuery変換などのクロス言語機能はデバッグできません。
一度に1つのクライアントのみがデバッガに接続できます。
サーバーが開発モードの場合にのみデバッグできます。
デバッガは本番モード、あるいはサーバーがクラスタの一部か非クラスタドメインの管理サーバーと1つ以上の管理対象サーバーの場合には有効にできません。
デバッガ・ウィンドウの一般的な情報は、『Oracle JDeveloperによるアプリケーションの開発』のJavaプロジェクトの実行およびデバッグに関する項を参照してください。
統合またはスタンドアロンのWebLogic ServerにデプロイされているService Busコンポーネントをデバッグできます。JDeveloperではローカル統合WebLogic Serverインスタンスのライフサイクルを管理できます。ローカル統合サーバーを構成する場合は、「JDeveloperでこのサーバー・インスタンスのライフサイクルを管理します」を選択できます。この構成では、JDeveloperは、ユーザーが実行コマンドまたはデバッグ・コマンドを選択したときにサーバーを起動します。統合サーバーがJDeveloperによって管理されるように構成されていない場合は、サーバーを手動で起動および停止する必要があります。ただし、引き続き実行コマンドを使用して、テストするサービスをサーバーにデプロイできます。統合サーバーがリモートの場合、「JDeveloperでこのサーバー・インスタンスのライフサイクルを管理します」は選択しないでください。
デバッグ用にスタンドアロン・サーバーを使用する場合は、それがローカルであるか、リモートであるかに関係なく構成は同じです。アプリケーション・プロパティでサーバーを構成する必要はありません。スタンドアロン・サーバーでは、アプリケーション・ナビゲータから実行コマンドを使用できません。そのかわりに、デプロイ・コマンドを使用してService Busアプリケーションをサーバーに手動でデプロイし、テスト・コンソールを手動で起動する必要があります。
デバッグは、ローカルまたはリモートのいずれかのWebLogic Serverで実行できます。ローカルのデバッグ・セッションは、ソース・ファイルにブレークポイントを設定してからデバッガを起動することで、開始されます。Service Busコンポーネントのデバッグ時には、実行フローを完全に制御し、変数の値を表示および変更できます。
リモート・デバッグには、デバッガとデバッグ対象の2つのJDeveloperプロセスが必要です。デバッグ対象は実行中のサーバーで、JDeveloperで定義されている場合もあれば定義されていない場合もあり、異なるプラットフォームに常駐していることもあります。デバッグ対象サーバーには、Service Busアプリケーションがデプロイされている必要があります。リモート・デバッグを実行するには、「リモート・デバッグ用実行構成の作成方法」に説明されているとおり、プロジェクト・プロパティで実行構成を構成する必要があります。
ブレークポイントは、パイプラインまたは分割-結合内でメッセージ処理を一時停止するポイントをマークします。これによって、一部またはすべてのメッセージ変数の値を確認できます。メッセージ・フローの考えられる問題領域にブレークポイントを設定することで、デバッグする位置に達するまでメッセージ・フローを通じてデータを実行できます。ブレークポイントに達すると、メッセージ処理は一時停止し、デバッガはソース・エディタ内のブレークポイントを含むアクションに着目します。その後、デバッガを使用してプログラムの状態を表示できます。ブレークポイントは、デバッグを開始する前に、またはデバッグ中に随時、柔軟に設定できます。
ブレークポイントは、パイプライン上の次のノードに追加できます。
ルート・ノード
ルート・アクション
ブランチ・ノード
パイプライン・ペア・パス(リクエストまたはレスポンス)
ステージ(パイプライン・ペアとエラー・ハンドラの両方)
ステージ・アクション(パイプライン・ペアとエラー・ハンドラの両方)
すべての分割-結合アクションにブレークポイントを追加できますが、Ifノードでブレークポイントを切り替えると、Ifノード自体ではなく、Ifノード内のIf条件のブレークポイントが切り替わります。
デバッグ・プロセスを制御するため、プロジェクトおよびデバッガの設定を構成できます。プログラムのデバッグまたは実行方法を制御する設定は実行構成で定義されます。これらの設定には、ターゲット、起動オプションおよびデバッガ、ログ出力、プロファイラの動作などが含まれます。Service Busは、ローカルでのデバッグおよびテスト用のデフォルトの実行構成を提供していますが、新しい構成を作成することもできます。1つのプロジェクトに、それぞれプロジェクトの特定のファセットまたは開発プロセスのフェーズに対応して設定されている複数の実行構成が存在する場合があります。実行構成は、プロジェクトにバインドされ、プロジェクトで作業する全員が使用できる場合もあれば、自分専用のカスタム構成の場合もあります。
これらの手順はオプションで、統合サーバーでデフォルト構成を使用してローカル・デバッグを実行できます。詳細と手順は、『Oracle JDeveloperによるアプリケーションの開発』の次のトピックを参照してください。
デバッグ用にプロジェクトを構成する方法
デバッガ開始オプションの設定方法
実行用のプロジェクトの構成
Service Busが提供するデフォルト構成などの既存の構成をコピーして、新しい実行構成を作成します。コピー後に、新しい構成に応じて設定を変更します
リモート・デバッグ用に実行構成を作成するには:
ヒント:
実行構成ウィンドウで作業するウィンドウとフィールドの詳細を参照するには、「ヘルプ」をクリックしてください。
デフォルトの実行構成は、新しいプロジェクトごとに作成され、ローカル・デバッグに統合WebLogic Serverを使用します。このデフォルト構成または作成した他の構成を選択して、選択したプロジェクトを実行できます。JDeveloperツールバーからデバッガを実行する場合は、「デバッグ」アイコンの横にある使用可能な構成オプションのリストから実行構成を選択できます。
デバッグ用に実行構成を選択するには:
JDeveloperデバッガを起動する方法は複数あります。この章に記載された手順では、アプリケーション・ナビゲータを使用してデバッガを起動しますが、準備が整った時点で次のいずれかの方法を使用してデバッガを起動できます。
アプリケーション内のプロジェクトまたはコンポーネントを右クリックし、「デバッグ」を選択します。
JDeveloperツールバーで、「デバッグ」アイコンをクリックします。デバッグ・プロセスは選択された実行構成を使用します。「デバッグ用に実行構成を選択する方法」を参照してください。
Service Busコンポジット概要エディタでパイプラインまたは分割-結合を右クリックし、「デバッグ」を選択します。
開かれたパイプラインまたは分割-結合のエディタ内を右クリックし、「デバッグ」を選択します。
この項では、JDeveloperでデバッガの起動、ブレークポイントの作成、およびService Busアプリケーションのデバッグを実行する方法を説明します。テスト・コンソールとデバッガを使用する以外にもデバッグする方法があります。JMSメッセージのポスト、ファイル・プロキシ・サービスのディレクトリへの入力ファイルの配置など、他の方法でサービスを実行することもできます。
ブレークポイントは、デバッグ・プロセス用に設定されるService Busアプリケーション内の意図的な一時停止位置です。テスト・コンソールを使用してテスト・データを実行すると、プロセスはブレークポイントごとに一時停止し、ユーザーが指示するまで再開しません。ブレークポイントは、パイプラインと分割-結合に設定できます。
Service Busコンポーネントにブレークポイントを設定するには:
ローカル・サーバーを使用してコンポーネントをデバッグする場合は、デバッグ・プロセスに入力情報を入力できるようにテスト・コンソールが起動されます。統合WebLogicサーバーを使用する場合は、ローカルでのみテストできます。プロジェクトのプロパティで、ローカルでテストするか、リモートでテストするかを指定します。また、デバッグ中のブレークポイントの処理方法も構成できます。
これらのオプションの設定方法の詳細は、『Oracle JDeveloperによるアプリケーションの開発』のデバッグ用にプロジェクトを構成する方法およびデバッガ起動オプションの設定方法に関する項を参照してください。
ブレークポイントを使用してコンポーネントでデバッグを開始するには:
デバッグ・フレームワークを使用すると、デバッグ・コードに対してステップ・アクションを実行してインクリメンタルにデバッグできます。メッセージ・フロー部分に対してステップ実行し、同じまたは異なるコンポーネントの異なるブレークポイントなどの異なる位置でデバッグを開始できます。デバッグが進行するにつれ、ブレークポイント用の追加のフレームが作成され、スタック・ビューが表示されます。
次のステップで示されるすべてのアイコンが、ツールバーの「デバッグ」アイコンの右側にあります。アイコンにポインタを重ねると、アイコンの名前が表示されます。
デバッグ・セッションでステップ実行するには:
デバッグ・セッションを開始すると、「ログ」ウィンドウにいくつかのタブが表示され、デバッグ・プロセスに役立つ追加情報と機能が示されます。これらのウィンドウは、「ウィンドウ」→「デバッガ」メニューから開くこともできます。
「ブレークポイント」ウィンドウでは、ブレークポイントをグループに追加し、グループ内のすべてのブレークポイントを有効化または無効化できます。また、ロギング、サウンドおよびブレークポイントに達したら処理を停止するかどうかも構成できます。デバッグ・セッションの内側または外側のいずれにいる場合でも、「ブレークポイント」ウィンドウは使用可能です。
ブレークポイントのオプションを表示および変更するには:
ブレークポイント・グループを作成することで、ブレークポイントに対して一括編集を実行できます。グループを作成すると、新しいノードが「ブレークポイント」ウィンドウに追加され、グループに追加されたブレークポイントがそのグループ・ノードの下に表示されます。
個々のブレークポイントまたはすべてのブレークポイントを無効化するか、または削除できます。
ブレークポイントを削除または無効化するには:
ブレークポイントを無効にした場合、それを再度有効にして、デバッグ・プロセスに含めることができます。
ブレークポイントを有効にするには:
「データ」ウィンドウには、現在のブレークポイントのコンテキスト変数とその値が表示されます。デバッグ・プロセス全体を通じたリクエストまたはレスポンス・データを表示し、さらにデバッグするためにそれらの値を変更できます。単純型の変数値のみを変更できます。
変数値を表示および変更するには:
ウォッチを使用して、プログラムの実行につれて変化する変数や式の値をモニターできます。ウォッチ式を入力後、「ウォッチ」ウィンドウに式の現在の値が表示されます。プログラムの実行に伴い、プログラムがウォッチ式の変数の値を更新すると、ウォッチの値も変化します。
ウォッチは、「スタック」ウィンドウでの選択によって制御される現在のコンテキストに従って式を評価します。新しいコンテキストに移動すると、式は新しいコンテキストに応じて再評価されます。ウォッチ式内の変数が定義されていない位置に実行ポイントが移動すると、ウォッチ式全体が未定義となります。ウォッチ式が評価可能な位置に実行ポイントが戻ると、「ウォッチ」ウィンドウに再度ウォッチ式の値が表示されます。
ウォッチを追加するには: