Javaプログラムのデバッグ

このトピックでは、Oracle® Database NavigatorでJavaプログラムをデバッグする手順について説明します。

Oracle Database NavigatorプラグインのOJVMサポートの一部として、Oracleデータベース内で実行されるJavaプログラムのデバッグでは、Javaデバッガ(JDB)リスナーの設定とJava Debug Wire Protocol (JDWP)を使用した接続が行われます。DBNインタフェースを介してJavaプログラムをデバッグすると、次のプロセスが統合されます:
  1. IDEプラットフォームでリモートJVMデバッグ用のリスナーを開きます。
  2. 次の目的でデータベース・スキーマに適切な権限を付与します:
    • Javaプログラムのデバッグ
    • リスナーへの接続
  3. データベース・スキーマからJava Debug Wire Protocol (JDWP)を使用してリスナーに接続します。
  4. Javaプログラムの実行。

Javaプログラムをデバッグするには、次の手順に従います:

  1. DBブラウザ・ウィンドウから、データベース・スキーマにロードされたJavaクラス(またはJavaソース・コード)を展開します。
  2. Javaクラス・ファイルまたはJavaクラス内のメソッドを右クリックし、コンテキスト・メニューからデバッグ・オプションを選択します。

    Javaクラス・ファイルのデバッグ

    または、Javaクラス・ファイルをダブルクリックしてJavaエディタ・ウィンドウで開き、エディタのツールバー・メニューからメソッドのデバッグ・アイコンをクリックします。


    Javaメソッドのデバッグ

  3. そのJavaクラス・ファイルでデバッグするpublic staticメソッドを選択します。

    システムは、デバッグ操作を実行するための前提条件の検証を開始します。


    Javaデバッグの前提条件の確認

    必要な権限がすべて正常に検証されると、DBナビゲータ - メソッドのデバッグ・ウィンドウが開き、使用されているデバッガ・タイプデバッガ・バージョンが表示されます。


    DBナビゲータ - Javaメソッドのデバッグ・ダイアログ・ボックス

    すべての前提条件が満たされていない場合、DBナビゲータ - 欠落している前提条件ダイアログ・ボックスがポップアップして、プログラムのデバッグに必要な権限を無視して続行するか、その接続に必要な権限を表示するかの確認メッセージが表示されます。


    Javaデバッガの欠落している前提条件

    • ダイアログ・ボックスの詳細をクリックして、DBナビゲータ - 前提条件の検証ダイアログ・ボックスを開きます。このダイアログ・ボックスには、Javaコードのデバッグに必要なすべての権限がリストされます。データベース管理者に連絡して、必要な権限を提供するように依頼してください。


      DBナビゲータ - 前提条件の検証ダイアログ・ボックス

    • 必要な権限なしでデバッグ・セッションを続行するには、続行をクリックします。
  4. DBナビゲータ - メソッドのデバッグ・ウィンドウで、テキスト・ボックスに入力パラメータ値を入力します。入力パラメータの定義済データ型は、テキスト・ボックスの横に示されます。テキスト・ボックスの横にある値履歴を開くアイコンをクリックすると、Javaメソッドの実行/デバッグに使用された入力パラメータ値の履歴が選択できるように表示されます。
    • ターゲット・コンテキスト・セクションには、ターゲット・データベース接続、スキーマおよびセッションの情報が表示されます。デフォルトでは、ターゲット・セッションはデバッグ・セッションです。
    • 実行エンジン設定でデフォルト時間を構成しない場合は、実行タイムアウト期間(ターゲットJavaプログラムの実行時間)を秒単位で設定します。設定アイコンをクリックして、カスタム実行タイムアウト期間をすべてのデバッグ・セッションの構成された時間として設定します。
    • 実行トランザクションをデータベースに自動コミットするには、実行後にコミット・チェック・ボックスを選択します。
  5. デバッグをクリックします。デバッグ・セッションが開始され、プロセスがデバッグ・コンソール・ウィンドウにリストされます。デバッグ・コンソールには、次のタブが表示されます:
    • スレッドと変数 - ライブ・スレッド(式)および変数のリスト、および変数に追加されたウォッチを表示します。スレッドを評価して切り替えたり、プログラムの状態を分析するためのウォッチを追加できます。


      Javaデバッグ出力ウィンドウ- スレッドと変数タブ

    • コンソール - デバッガ出力およびデバッガ・セッション・ステータス・メッセージに加えて、プログラムの出力を表示します。


      Javaデバッグ出力ウィンドウ - コンソール・タブ