我們使用Spring框架(版本2.5)中的DriverManagerDataSource
來連接到Oracle。但是,似乎這些連接沒有定義任何超時 - 昨天,緊急數據庫重新啓動後,我們在數據庫連接內部讀取的套接字上掛起了一個線程。我如何設置超時時間,說10分鐘,這樣下次會引發異常?如何設置春季的超時時間DriverManagerDataSource
4
A
回答
4
我最終改變以下列方式Spring上下文豆:
<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" autowire="no">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="connectionProperties">
<props>
<prop key="oracle.net.READ_TIMEOUT">60000</prop>
</props>
</property>
</bean>
我不知道它是否有效。
0
如果Oracle驅動程序實現支持超時屬性,您可以通過getConnectionProperties().put(key, timeout)
通過它傳遞給底層實現我假設你意識到DriverManagerDataSource
不是一個連接池?從文檔:
注意:此類不是實際的連接池;它實際上並不是 池連接。它只是作爲 簡單替換成一個完整的 連接池,實現相同的 標準接口,但創建新的 連接在每個呼叫。 [..]如果您需要 Apache's Jakarta Commons DBCP或 C3P0需要「容器」外的「真實」連接池 。
您可能也有興趣OCI Connection Pooling?
1
Oracle有一個內置連接池:oracle.jdbc.pool.OracleDataSource
。我建議你直接使用它。 Oracle JDBC(10gR2,其他版本類似)的參考文獻是http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/toc.htm。興趣點:
相關問題
- 1. 春季websocket超時設置
- 2. 春季安全OAuth2與Reddit - 如何設置「持續時間」
- 3. 如何設置Socket.ConnectAsync的超時時間?
- 4. 如何設置OCILogon2的超時時間?
- 5. 春季DriverManagerDataSource打開了很多連接?
- 6. Libtorrent如何設置超時時間?
- 7. 設置SSL和超時與WS調用春季(HttpsUrlConnectionMessageSender,HttpsUrlConnectionMessageSender)
- 8. 如何在春季acegi框架中配置會話超時?
- 9. 春季幫助捕捉會話超時
- 10. 春季交易超時不起作用
- 11. 春季AOP交易 - 屬性超時?
- 12. JSF春季安全會話超時viewExpiredException
- 13. 春雲 - Zuul不能設置超時
- 14. 如何使用geo.js設置查找位置的超時時間?
- 15. 如何正確設置聯合ADFS 2.0時的超時時間
- 16. 設置java.net.URLConnection的最大超時時間
- 17. 春季資源 - 如何設置
- 18. 如何設置ajax超時?
- 19. 春季webflow不閒置超時?它恢復?
- 20. tokuDb設置時間以超時語句
- 21. 爲NetworkObject.MapNetworkDrive設置超時時間
- 22. 基於查詢設置超時時間
- 23. 動態設置超時時間
- 24. iOS:Firebase存儲設置超時時間
- 25. 如何設置resque作業的超時時間
- 26. Python - 如何正確設置函數的超時時間
- 27. 如何設置redis-cli命令的超時時間?
- 28. 如何設置PHP或Javascript技術測驗的超時時間
- 29. 如何設置dataWithContentsOfURL的超時時間:url
- 30. 如何設置簡單指令的超時時間?
沒有爲我工作! – 2014-06-17 13:05:29