我们运行Java 1.6并使用最新的ojdbc14.jar。我们连接到远程Oracle数据库。 我们想要设置QueryTimeout,因为查询的完成时间不得超过2分钟。
我做到了:
statement = conn.prepareCall(call);
statement.setQueryTimeout(120);
statement.executeQuery();
经过8分钟后,它最终会超时!有什么想法或解决方法吗? 一如既往,非常感谢您的帮助!
编辑:我们使用瘦驱动程序
答案 0 :(得分:2)
在此处查看Oracle JDBC驱动程序中的查询超时如何工作:https://forums.oracle.com/forums/thread.jspa?threadID=550257
长话短说:
答案 1 :(得分:1)
尝试在客户端JVM系统属性中传递-Doracle.net.disableOob = true。根据{{3}},
Thin默认从11g开始使用带外中断。如果用户更喜欢使用Inband中断而不是带外中断,则可以将此属性设置为true。
在某些情况下,基础协议不支持带外中断,或者数据库未配置为侦听带外中断。