我使用了Apache的BasicDataSource兩個公共DBCP和連接池Teradata的驅動程序問題:JDBC重新使用Spring和Apache的DataSource
org.apache.commons.dbcp.BasicDataSource
,並通過春季管理它:
org.springframework.jdbc.datasource.DataSourceTransactionManager
雖然如果我的數據庫出現故障或出現網絡故障,將此組合與Teradata JDBC驅動程序結合使用我會收到以下錯誤:
08S01 804 : I/O Error, Socket closed. Packet stream write error
這反映了正確的情況,但問題在於重新連接。當錯誤被物理化或DB恢復並且我的程序試圖查詢它時,我仍然會得到相同的錯誤一段時間,例如不同的錯誤。 20分鐘,小時,從不。 當我重新啓動我的JVM或更改連接字符串例如使用IP地址而不是主機名。
DataSource或Spring Transaction Manager中是否有任何設置可以糾正這種情況?或者可能是TCP/IP設置?
我們已經使用commons connection pool(我已經編輯了這個問題,謝謝) 它運行在Java服務包裝器(http://wrapper.tanukisoftware.com)下的普通JVM上,以運行它作爲Windows服務/ Unix守護進程。 – 2010-09-01 10:08:08
我檢查出來了。有設置爲空閒,等待,但沒有任何錯誤或重新連接 – 2010-09-01 10:54:52