リモートからのPL/SQLデバッグ

 

通常、JDeveloperを使用してPL/SQLをデバッグする場合は、デバッガで停止させたい場所にブレークポイントを設定した後、ナビゲータ内でPL/SQLプロシージャ/ファンクション/パッケージを選択し、「デバッグ」ボタンをクリックします。これにより、JDeveloperは、自動的にデバッグ・セッションを開始した後そのセッションに接続し、ブレークポイントに達した際に停止します。このようなデバッグは、JDeveloper自身がデバッグを起動するクライアントであるという見方をすれば、ローカル・デバッグであるといえます。

JDeveloperとOracle9i Release 2を使用し、PL/SQLをリモートからデバッグすることもできます。PL/SQLをリモートからデバッグすることは、JDeveloper外のクライアント(たとえば、PL/SQL Webアプリケーション、OCIプログラム、SQL*Plusセッションなど)からデバッグ作業を開始することを意味します。この場合は、JDeveloperがかわりに実行していたいくつかの手順を手動で実行する必要があります。

PL/SQLをリモートからデバッグする手順は次のとおりです(ローカル・デバッグ同様、ブレークポイントは設定済であることが前提です)。

  1. JDeveloperデバッガ・リスナーを起動させます。このために、「プロジェクト」->「プロジェクトの設定」の順に選択して、「デバッガ-リモート」パネルで、「リモート・デバッグ」チェックボックスと 「JPDAのリスニング」ラジオボタンをチェックしてください。次に、「デバッグ」ボタンを押して、デバッガ・リスナーのポート番号を入力します。

    注:PL/SQLをリモートからデバッグする場合、リモート・デバッグを有効にするためにはワークスペースおよびプロジェクトが必要です。ワークスペースおよびプロジェクトがない場合は、作成する必要があります。

  2. 次のプロシージャ・コールを使用して、データベース・セッションからJDeveloperデバッガ・リスナーにアタッチします。

    DBMS_DEBUG_JDWP.CONNECT_TCP ('hostname_or_ip', port_number)

    ここで、hostname_or_ipは、JDeveloperを稼動しているマシンのホスト名またはIPアドレス、 port_numberは、デバッガ・リスナーの起動時に入力したポート番号です。

  3. 最後に、デバッガ・リスナーにアタッチしたものと同じデータベース・セッションから、ブレークポイントが入っているまたはブレークポイントに到達することを促すPL/SQLプログラムをコールします。たとえば、SQL*Plusからは次のように実行します。

    EXEC my_procedure;