2016-10-16 31 views
0

被拋出假設我有以下代碼UnreturnedConnectionTimeout不破的流量控制。配置與性能unreturnedConnectionTimeout:C3P0同時通過C3P0

unreturnedConnectionTimeout=300 

當我這樣做有沒有返回到池的連接時,C3P0說 - 「java.lang.Exception的:DEBUG ONLY:逾期資源退房堆棧跟蹤」 。

這個異常是由我的代碼片段中的catch塊捕獲的。通過調試我的應用程序,似乎答案是否定的。 有沒有辦法讓我發現這個異常?

回答

1

不,你不能抓到異常。你所看到的「例外」從未拋出。它是由debugUnreturnedConnectionStackTraces生成的,然後要求轉儲堆棧跟蹤,以便向您顯示泄露Connection的代碼路徑。

unreturnedConnectionTimeout存在到close()泄漏的連接(並幫助您修復泄漏)。這些連接應該不能在任何堆棧或任何try/catch塊中訪問。如果您將unreturnedConnectionTimeout設置爲過小的值,以便在應用程序仍在使用時由於該設置而關閉連接,則當應用程序在關閉後嘗試使用連接時,您將看到普通的異常。