是否可以指定Oracle数据库查询的连接/查询超时?在Oracle端还是在Oracle的JDBC驱动程序(10.2.0.4)中?那么,那个Java客户端刚刚收到了一个错误,比如说,等2分钟,而不是等到Oracle完成执行查询之后呢?Oracle连接/查询超时
回答
如果您在事务上下文中执行查询,则JTA事务监视器的事务超时值将成为查询超时的决定因素。这个配置依赖于一个应用服务器到另一个应用服务器。
在单个查询级别(在没有JTA事务监视器的情况下),setQueryTimeout方法可用于设置执行Statement/PreparedStatement/CallableStatement对象的超时时间。
更新
setQueryTimeout是不被依赖,但它的工作原理(ATLEAST从J2SE客户端)。它通过JDBC驱动程序执行完整的Oracle数据库服务器往返。然后,由数据库决定停止执行查询。不要依赖于时间关键型应用程序。
查看Oracle配置文件。这使您可以在数据库级别指定多个限制。其中之一是每个查询的最大CPU时间。
如果您的查询定期运行超过2分钟,则可能需要先对查询进行一些调整。
Oracle配置文件会影响用户的所有查询。 OP可能只对一个需要取消的特定查询感兴趣。 – 2009-09-07 14:56:15
但是,这将作为一个蛮力解决方案;-) – 2009-09-07 15:02:45
如果setQueryTimeout不起作用,Oracle配置文件将成为我们的下一步。 – 2009-09-08 10:40:02
- 1. Oracle查询超时
- 2. Oracle连接正常,但ORA-12170:TNS:执行查询时发生连接超时
- 3. ODBC连接到oracle超时
- 4. Oracle连接请求超时
- 5. Oracle中的查询超时
- 6. Oracle - OCI查询超时
- 7. SQL查询连接表 - Oracle
- 8. oracle外连接查询
- 9. Oracle查询自连接?
- 10. Oracle ManagedDataAccess - 连接请求超时 - 合并
- 11. Oracle查询链接查询
- 12. oracle查询使用','连接所有列
- 13. 关于Oracle连接的查询
- 14. Oracle查询到MySQL的左连接
- 15. 使用查询删除Oracle连接
- 16. Oracle SQL连接子查询dblink
- 17. Oracle SQL查询(左外部连接)
- 18. 外连接与子查询(的Oracle 11g)
- 19. Oracle SQL外连接查询拼图
- 20. couchbase:使用java查询查看错误连接超时
- 21. javax.xml.transform.TransformerException:com.sun.org.apache.xml.internal.utils.WrappedRuntimeException:连接超时:连接
- 22. 在大型表上查询时的连接超时
- 23. 连接超时
- 24. 连接超时
- 25. 连接超时
- 26. 连接超时
- 27. 连接超时
- 28. C#Oracle数据提供者(Oracle DataAccess.Dll)连接请求超时
- 29. Oracle查询优化(带连接和子查询)
- 30. 超时查询
我们遇到了JTA超时的问题,因为它不影响正在运行的查询。而我们在尝试运行实际的WebLogic服务器杀长时间运行的连接,并创建另一个线程来杀死它,但它击中的Java锁在Oracle JDBC驱动程序从而导致两个线程等待。随着WebLogic试图创建更多的杀手级线程并最终运行,问题变得更加严重。 – 2009-09-07 12:10:50
约setQueryTimeout点似乎很intresting,我以前没有actuallly想到这一点:)。我们并不关心setQueryTimeout是否需要一些时间来取消查询,这里主要的是结果:)。我将回到测试结果。 – 2009-09-07 12:13:57
原因setQueryTimeout()可能无法在WLS工作,是因为JTA的更是这样。我不认为驱动程序会在事务上下文中响应setQueryTimeout调用,但我可能不正确。 – 2009-09-07 15:02:01