資料庫連線未能正確釋放的發現和解決

2021-09-01 09:59:19 字數 408 閱讀 6914

一段時間發現,生產環境上發現批處理定時任務經常不能正確執行,導致規定時間未產生檔案。

檢查jboss日誌,報錯資訊為無法獲取連線。

判斷應該是有程式的資料庫連線未能正確釋放。

通過jboss的jmx console 檢視連線池使用情況(

name=oracleds,service=managedconnectionpool):

其中inuseconnectioncount不為0,確定判斷正確。

在測試環境開啟全部任務,通過pl/sql developer的"tools"-"sessions"檢視會話狀態,有大量inactive狀態會話,排查會話,查詢sql,確定了未釋放連線的程式,該程式在外層已有事務控制的情況下,做了乙個sesssion.transaction且沒有結束。

修正**後問題解決。

資料庫連線資源釋放

專案執行過程中遇到了tomcat連線池資源不釋放,導致系統崩潰的問題。1 initialsize 連線池啟動時建立的初始化連線數量 2 maxactive 連線池中可同時連線的最大的連線數 3 maxidle 連線池中最大的空閒的連線數,超過的空閒連線將被釋放,如果設定為負數表示不限制 4 mini...

如何發現資料庫連線洩露

1.根據日誌查詢 首先,翻看系統日誌,找到連線池溢位的時刻。然後,對應這個時間,查詢使用者正在進行的操作。這種方法適合於不啟動任何監控程式或程序,不改變系統設定,就能人為的縮小可能洩露連線的 範圍。unreturnedconnectiontimeout default 0 debugunreturn...

mysql資料庫連線不釋放問題

mysql資料庫連線不釋放問題 按照原帖修改後效果 頁面仍舊存在資料庫連線無法釋放,且頁面較之前存在卡頓現象,訪問頁面時,後台連線資料時間超長。2 資料庫連線釋放問題解決 暫未完全解決,只是延緩 2.1 恢復dbcp連線方式 在通過程式跟蹤 project web exec.jar 實際打包後同時存...