gpt4 book ai didi

java - plsql 远程调试断点不起作用

转载 作者:行者123 更新时间:2023-11-30 11:32:41 26 4
gpt4 key购买 nike

我在调试 pl sql 代码时遇到了一个奇怪的情况。

我将 sql developer 设置为监听调试连接。在 java 代码中,我使用以下代码附加调试器:

CallableStatement cstmt = null;
try {
cstmt = getConnection().prepareCall("begin DBMS_DEBUG_JDWP.CONNECT_TCP( '10.1.1.17', 4000); end;");
cstmt.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeStatement(cstmt);
}

调试器连接成功,即我可以在 Run Manager 的 sql developer 中看到连接存在。

尽管创建了连接,但调试器不起作用。有时断点没有用绿色标记打勾,有时是,但断点仍然不起作用。在任何情况下,调试器都不会在中断时停止,被调用的过程成功执行,就好像没有中断一样。

我放置中断的包被编译用于调试,Start Debugger Option 设置为 Step Over。我也尝试过 Sql Developer 3.2.2 和 3.0.6、3.0.4 具有相同的行为。我在“Sql Developer”和应用程序中使用的用户相同,并且此用户具有调试权限(DEBUG CONNECT SESSIONDEBUG ANY PROCEDURE)。我想不出如何让它发挥作用。

接下来要尝试什么,如何诊断这个问题?

最佳答案

我发现了根本问题。它与 oracle 无关,它与应用程序服务器和与数据库的连接有关。我在一个 bean 中附加调试器并在另一个 bean 中调用 plsql 过程。由于他们在同一笔交易中,我认为应该共享连接,但事实并非如此。所以我只是将调试器附件移动到调用过程的 bean,现在它运行良好。

关于java - plsql 远程调试断点不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16497188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com