2
我使用的是c3p0(0.9.1.2)版本,一小時左右後我看到numUnclosedOrphanedConnections
以每小時1次的速度緩慢增加。 c3p0 docs said爲什麼c3p0中的numUnclosedOrphanedConnections增加?
numUnclosedOrphanedConnections將只在softReset()調用 後非零。它表示在發生軟重置時檢出的 的連接數,因此從池中排除了 ,並且其仍未被客戶端 應用程序關閉。
爲什麼c3p0正在進行軟復位?我的c3p0設置就像
initialPoolSize=1
minPoolSize=1
maxPoolSize=100
maxIdleTime=60
checkoutTimeout=5000
testConnectionOnCheckin=true
你跑什麼樣的環境?你跟蹤numUnclosedOrphanedConnections vi JMX或編程?你有沒有修改任何c3p0屬性? (這樣做會導致池的softReset(),以便修改後的屬性值可以採用。)另一個需要注意的事情是如何關閉連接。 unclosedOrphanedConnections的單調上升表明Connections正在泄露。 –
我正在運行一個64位的Linux機器。 Jdk版本1.6.0_31。我正在通過JMX手動跟蹤它。 c3p0屬性不會被修改。有跟蹤c3p0連接泄漏的好工具嗎? –
是的。請參閱config params unreturnedConnectionTimeout和debugUnreturnedConnectionStackTraces(請參閱http://www.mchange.com/projects/c3p0/)注意,您必須將這些屬性的BOTH設置爲獲取泄漏的堆棧痕跡。你是在自己的應用中嵌入c3p0,還是通過更大的庫/應用服務器(hibernate,spring等)運行它?另一件事,只是爲了讓我感覺更好,是升級到最新版本,c3p0-0.9.2-pre5我不記得任何問題,可以解釋你神祕的軟復位,但自0.9.1以來改變了很多 –