外部アプリケーション・デバッグ・モード

このデバッグ・モードでは、任意のプラットフォーム、ローカルまたはリモートで実行されている外部アプリケーションによってコールされるPL/SQLプログラムをデバッグするために、Visual Studioのインスタンスを専用に設定できます。通常、このプロシージャは中間層のWebアプリケーションによってコールされます。

外部アプリケーションは、可能な2つの方法のうちの1つを使用し、Oracle PL/SQLデバッガ、ORA_DEBUG_JDWP構成ファイル値または環境変数(PL/SQLプログラムを変更する必要がない)またはDBMS_DEBUG_JDWP PL/SQLパッケージ(PL/SQLプログラムの変更が必要)に接続します。

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

外部アプリケーション・デバッグの仕組み

Oracle PL/SQLデバッガは、Visual Studioの「ツール」メニューから「Start Oracle External Application Debugger」を選択すると起動します。ダイアログ・ボックスが表示され、Visual Studioが配置されているコンピュータのIPアドレスとポート番号の入力が求められます。これは、アプリケーションまたは環境変数のORA_DEBUG_JDWP構成ファイル、またはPL/SQL内のDBMS_DEBUG_JDWPパッケージ・コールを介して指定したものと同じIPアドレスおよびポート番号である必要があります。

外部アプリケーションがデータベース接続を開くと、データベースは指定されたIPアドレスおよびポート番号でOracle PL/SQLデバッガに接続され、最終的にブレークポイントがヒットし、Visual Studioで開発者に制御が渡されます。

ノート:

デバッガに接続する外部アプリケーションは一度に1つのみにすることをお薦めします。

Oracle PL/SQLデバッガが起動すると、「Debug Location」ツールバーにOracleデバッガが表示されます。

ORA_DEBUG_JDWP構成/環境変数の使用

ORA_DEBUG_JDWP変数は、外部アプリケーションの環境に設定でき、Visual Studioが配置されているコンピュータの有効なIPアドレスおよびポート番号を提供します。いずれかのオペレーティング・システム上のOracleアプリケーションがOracleに接続すると、この変数が読み取られ、データベースに渡され、Visual StudioのOracleデバッガに接続してデバッグ・セッションを開始します。

環境変数の使用

次の形式でORA_DEBUG_JDWPの値を設定します:

host=IP address or host name;port=debugging port number

説明:

  • IP address or host nameは、Visual Studioを実行しているコンピュータのインターネット・プロトコルのドット区切りのアドレスまたはホスト名です。

  • debugging port numberは、PL/SQLデバッガによって使用されているTCPポート番号です。

次の例では、コマンド・プロンプトでORA_DEBUG_JDWP変数を設定しています:

set ORA_DEBUG_JDWP=host=130.35.12.111;port=1234

ORA_DEBUG_JDWP変数の値には空白を含めることはできません。

外部アプリケーションがデータベース接続を作成すると、データベースはIPアドレス130.35.12.111、Oracle PL/SQLデバッガがリスニングしているTCPポート番号1234のOracle PL/SQLデバッガに接続します。

ノート:

Visual Studioのランタイム環境でORA_DEBUG_JDWP変数を設定しないでください。

ODP.NET構成ファイル変数の使用

ODP.NETバージョン12.1.0.2以降では、アプリケーションのmachine.configweb.configまたはapp.configORA_DEBUG_JDWPを設定できます。これは、環境変数の設定と同じ効果があります。構成ファイルの値は、どの環境変数よりも優先されます。

ODP.NET構成ファイルのエントリの例:

<oracle.manageddataaccess.client>
  <version number="*">
    <settings>
      <setting name="ORA_DEBUG_JDWP" value="host=130.35.12.111;port=1234"/>
    </settings>
  </version>
</oracle.manageddataaccess.client> 

DBMS_DEBUG_JDWPパッケージの使用

DBMS_DEBUG_JDWP PL/SQLパッケージを使用すると、Visual StudioでデータベースがPL/SQLデバッガに接続または切断するタイミングを正確に制御できます。アプリケーションがOracleに接続するとすぐにデバッグ・セッションを開始するかわりに、このパッケージを使用すると、PL/SQLコード内の特定のポイントまで待機できます。これは、たとえば、大きなパッケージのごく一部のみデバッグする場合に役立ちます。DBMS_DEBUG_JDWP接続プロシージャおよび切断プロシージャをコールするには、PL/SQLにコードを追加する必要があります。

DBMS_DEBUG_JDWPパッケージは、アプリケーションがOracle PL/SQLデバッガに対して接続や切断を行うための2つのプロシージャを提供します。

次のように、PL/SQLコード内にこれらの2つのプロシージャを実装する必要があります:

  • 接続のプロシージャ

    CONNECT_TCP(HOST VARCHAR2, PORT VARCHAR2)
    

    このプロシージャにより、データベースをOracle PL/SQLデバッガに接続できるようになります。

    説明:

    • HOSTは、Oracle PL/SQLデバッガが存在するホスト・アドレスです。

    • PORTは、PL/SQLデバッグに使用するTCPポート番号です。デバッガを起動したときと同じポート番号を指定する必要があります。

    アプリケーションは通常、データベース接続を開きます。データベースは、DBMS_DEBUG_JDWP.CONNECT_TCPメソッドを実行する際にデバッガに接続します。

  • 切断のプロシージャ

    DISCONNECT()
    

    このプロシージャにより、データベースをOracle PL/SQLデバッガから切断できるようになります。

外部アプリケーション・デバッグの要件

外部データベース・デバッグを使用する前に、「PL/SQLデバッグの設定」にリストされているすべての設定要件を実行します。

外部アプリケーション・デバッグ・モードを使用する前に

外部アプリケーション・デバッグ・モードを使用する前に、次を行う必要があります:

  • ブレークポイントを設定します。

    外部アプリケーションのデバッグを使用するには、コールするPL/SQLプログラムで1つのブレークポイントを設定する必要があります。.NETコードのデバッグに使用されるVisual Studioの2番目のインスタンスがある場合、PL/SQLプログラムの実行後にある時点でブレークポイントを設定できます。

  • 外部アプリケーションの環境でORA_DEBUG_JDWP環境変数を設定するか、ORA_DEBUG_JDWP ODP.NET構成ファイル変数を設定します。

    「ORA_DEBUG_JDWP構成/環境変数の使用」を参照してください。

    または

  • デバッグするPL/SQLを変更して、DBMS_DEBUG_JDWP.CONNECT_TCP (正しいIPアドレスおよびポート番号を使用)およびDBMS_DEBUG_JDWP.DISCONNECTへのコールを追加します。

    「DBMS_DEBUG_JDWPパッケージの使用」を参照してください。

外部アプリケーションのデバッグ・モードを使用したデバッグ

外部アプリケーション・デバッグ・モードを使用してデバッグするには、「デバッグ設定チェックリスト」のすべてのステップに従います。