Posted on 2010-01-14 22:54
斷點 閱讀(889)
評論(0) 編輯 收藏 所屬分類:
Tomcat
tomcat 連接池泄露的問題
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
轉載:
1 問題描述
Web程序在tomcat剛開始運行時速度很快,但過一段時間后發現速度變得很慢。
檢查日志輸出,發現異常如下:
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted, cause:
java.util.NoSuchElementException: Timeout waiting for idle object
2 問題解決
tomcat 的數據源定義提供了三個參數:
a. 如果設為true則tomcat自動檢查恢復重新利用,沒有正常關閉的Connection.(默認是false)
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
b. 設定連接在多少秒內被認為是放棄的連接,即可進行恢復利用。
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
c. 輸出回收的日志,可以詳細打印出異常從而發現是在那里發生了泄漏
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
posted @ 2009-02-17 16:03 斷點 閱讀(738) | 評論 (0)