2012-07-18 64 views
2

在一段時間後,使用JDBC連接到Derby數據庫,Derby或JDBC自動關閉連接。 (這可以稱爲「連接壽命」值或超時值)。Derby/JDBC連接生存期(或空閒超時)

在哪裏可以找出超時值是什麼?它是關閉連接的Derby或JDBC嗎?它是否爲「空閒超時」值,因此,如果該連接上有活動,Derby或JDBC會更新,因此它會關閉(LastActivity + IdleTimeoutValue)處的連接?

我看着一堆網頁,包括 Connection timeout for DriverManager getConnection How to reestablish a JDBC connection after a timeout?

回答

1

無論德比也不JDBC已任自動超時,所以據我所知。

這裏有德比JDBC connnection的配置行爲: http://db.apache.org/derby/docs/10.8/ref/rrefattrib24612.html

我不認爲這是德比關閉您的連接。

我懷疑你有一個網絡防火牆,或者VPN,或者其他一些關閉你的TCP/IP空閒連接的設備。

嘗試檢查您的IT人員的網絡配置。

+0

如果因爲不活動而導致Derby和JDBC關閉連接,則兩個鏈接中的信息(原始帖子/問題中)不正確,或者我誤解了他們的意思。有任何想法嗎? – Mary 2012-07-18 20:50:53

+0

這可能會導致另一個領域,TCP keepalive;如果這是個問題,無論是設置在操作系統級別還是以某種方式告訴Derby使用keepalive(它不在derby可配置行爲文檔中)。我也使用ActiveMq,所以必須告訴ActiveMq的套接字保持活躍。如果有關於如何配置和編程這些類型的問題的文章,我想閱讀它! – Mary 2012-07-19 01:05:26

+0

更確切地說,我的意思是Derby的JDBC實現由於超時而沒有關閉空閒連接,並且JDBC不需要這樣的特性。事實上,其他JDBC實現可能會提供這樣的功能,正如您在原始問題中鏈接的那樣。同樣,您應該請求您的IT員工幫助啓用網絡層診斷,以確定您的閒置連接爲何關閉,因爲我不相信這是Derby的做法。 – 2012-07-19 13:58:26