2015-04-14 139 views
0

tomcat在使用後不能釋放連接的原因是什麼?Tomcat jdbc連接池,使用後不釋放連接

Herem是我的配置

<Resource name="jdbc/DataSource" auth="Container" 
type="javax.sql.DataSource" username="))" password="))" 
driverClassName="oracle.jdbc.driver.OracleDriver" 
url="))" 
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
initialSize="55" 
maxActive="55" maxIdle="55" maxWait="15000" 

testWhileIdle="true" 
testOnBorrow="true" 
testOnReturn="false" 
validationQuery="SELECT 1 FROM DUAL" 
validationInterval="20000" 

timeBetweenEvictionRunsMillis="30000" 
removeAbandoned="true" 
removeAbandonedTimeout="60" 
/> 
+0

我得到這個錯誤回收當嘗試從池中獲取連接時「超時:池空,無法在15秒內獲取連接,但無法獲得 」 – user3569530

+0

如果您提供一小段代碼,單獨運行會導致出現錯誤,這將會很有幫助。如果你這樣做,我們可以建議你可以做些什麼來解決這個問題的具體信息。 – Rob

回答

0

最有可能的是,你不使用後關閉連接。 例如,如果您不正確管理異常,它可能會發生。

1

您仍然需要在代碼中調用connection.close()以將連接釋放到池中。它不會自動發生。

您可以配置的池來檢測「遺留連接」室內用:

removeAbandoned="true" 
removeAbandonedTimeout="60" 

連接閒置超過給定的秒數將被自動關閉,不再和游泳池