是否可以指定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