天天看點

使用JDeveloper Remote debug PLSQL程式

在使用JDeveloper進行開發的時候,程式中經常會調用Oracle資料庫中的過程、函數、Package中的過程和函數。我們也希望能在Debug頁面代碼的時候能跟蹤PLSQL代碼。JDeveloper的debugger使用資料庫對JPDA (Java Platform Debugger Architecture)的實作,提供了Remote debug的功能,使得開發人員可以輕松的在JDeveloper中remote  debug PLSQL程式。 

下面介紹如何使用:

1,資料庫連接配接使用者需要有以下權限:

      DEBUG ANY PROCEDURE

      DEBUG CONNECT SESSION

2,監聽端的設定:

1),在JDeveloper的應用中建立資料庫連接配接

2),在Database Navigator中,右鍵選擇建立的連接配接,然後‘Remote Debug’

3),在彈出的Listen for JPDA參數中填寫(port: 4000,Timeout: 0,Local address: 127.0.0.1)

      port可以任意指定,Local address本地Debug可以是127.0.0.1,如果不同的機器,可以指定可通路的IP

4),在Database Navigator中打開需要Debug的PLSQL程式,在其中添加斷點。

3,調用端的設定:

1)調用可以在SQL*Plus中,也可以在ADF應用中。

2)在調用PLSQL代碼前,添加如下代碼來與前面建立的端進行連接配接:dbms_debug_jdwp.connect_tcp('127.0.0.1', '4000')

       AM中代碼:getDBTransaction().executeCommand("begin dbms_debug_jdwp.connect_tcp('127.0.0.1', '4000'); end;");

      成功後JDeveloper會提示:Debugger accepted connection from remote process on port 4000.

3)運作程式,在執行到PLSQL程式的時候,會在添加的斷點處停下來

4)完成後,斷開連接配接:EXEC DBMS_DEBUG_JDWP.DISCONNECT;

      成功後的提示:Debugger disconnected from remote process.

2011/11/27  盧玉雙 @上海

參考:

Debugging PL/SQL and Java Stored Procedures with JPDA

Remote Debugging PL/SQL using JDeveloper

User's Guide for Oracle JDeveloper: Running and Debugging PL/SQL and JavaStored Procedures