您好,登錄后才能下訂單哦!
本篇文章為大家展示了com.alibaba.druid檢測排查數據庫連接數不釋放定位代碼怎么寫,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1、可能標題說的很不明白,其實就是這樣一個情況,一個工程項目錯誤日志出現GetConnectionTimeoutException: wait millis 90000, active 22000的異常,如下:
2、最先想到的是提高數據庫本身的最大連接數,查看一下數據庫連接數是否過小,平衡一下工程的使用量級別和并發級別,其中查詢數據庫的小語句如下:
select value as processes_max from v$parameter where name ='processes'; --數據庫允許的最大連接數 結果4000 select count(*) as process_now from v$process; --當前進程連接數 select value as session_max from v$parameter where name ='sessions'; --數據庫最大session數 select count(*) as session_now from v$session; --當前的session連接數 select count(*) as active_now from v$session where status='ACTIVE'; --并發連接數
3、但是當把數據庫最大連接數也調整到合理的數字了,并且druid的基本配置也是沒有什么毛病,這個可以網上搜索,有很多druid的常規配置文章參考。如果還有連接數不夠的異常出現,這就要考慮是否程序本身存在沒有回收的連接數、會話數等開支,日積月累在某個時刻,比如訪問量高峰達到了飽和。那么可以添加druid的配置來幫助你監測,哪里沒有回收。
<!-- 超過時間限制是否回收 --> <property name="removeAbandoned">4、這回注意抓取和分析日志,如下5、結果進入具體的java類排查代碼,發現存在session沒有回收的問題。解決掉。
上述內容就是com.alibaba.druid檢測排查數據庫連接數不釋放定位代碼怎么寫,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。