外部アプリケーション・デバッグ・モード
このデバッグ・モードでは、任意のプラットフォーム、ローカルまたはリモートで実行されている外部アプリケーションによってコールされる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
説明:
-
IPaddressorhostnameは、Visual Studioを実行しているコンピュータのインターネット・プロトコルのドット区切りのアドレスまたはホスト名です。 -
debuggingportnumberは、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.config、web.configまたはapp.configにORA_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プログラムで1つのブレークポイントを設定する必要があります。.NETコードのデバッグに使用されるVisual Studioの2番目のインスタンスがある場合、PL/SQLプログラムの実行後にある時点でブレークポイントを設定できます。
-
外部アプリケーションの環境で
ORA_DEBUG_JDWP環境変数を設定するか、ORA_DEBUG_JDWPODP.NET構成ファイル変数を設定します。「ORA_DEBUG_JDWP構成/環境変数の使用」を参照してください。
または
-
デバッグするPL/SQLを変更して、
DBMS_DEBUG_JDWP.CONNECT_TCP(正しいIPアドレスおよびポート番号を使用)およびDBMS_DEBUG_JDWP.DISCONNECTへのコールを追加します。「DBMS_DEBUG_JDWPパッケージの使用」を参照してください。