天天看点

使用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