Neo's Blog

首頁 相本 討論 書籤

分類目錄
本站日誌 (51)
碎碎唸啦 (173)
網站架設 (84)
程式設計 (161)
軟體使用 (69)
電子商務 (126)
經營奇想 (48)
基金理財 (11)
聰明消費 (87)
電影心得 (47)
開放原碼 (16)
工作記錄 (2)
毛毛小記 (9)
就是不同 (2)




歷史資料
 




April 15, 2005
[Java、JSP] DBCP 偵測資料庫連線是否正常釋放的小技巧

隨著系統愈大愈難去偵測 Memory Leak,雖然可以找一些 Profiler 來協助,但是通常最容易造成記憶體不足的狀況,絕大多數是資料庫連線沒有正常釋放。

如果有使用 DBCP 當 Connection Pool 的話,可以用一個小技巧來看看自己的程式到底有沒有正常釋放連線。

說起來也很簡單,先在資料庫配置參數裡面把 maxIdle 調整為 0。

<parameter>
      <name>maxIdle</name>
      <value>0</value>
</parameter>

方法1:
使用 org.apache.commons.dbcp.BasicDataSource 的 getNumIdle() 取出 idle 的 connection 數量,如果大於 0 的話,就代表有連線未正常釋放。

方法2:
先把資料庫重新啟動,或把 Process 給清空。在執行程式之後再去從資料庫裡面看 Process ,如果還有 sleep 之類的閒置狀態,就是有資料庫連線沒有正常釋放了。

 
由 Neo 發表於 April 15, 2005 10:19 PM 收進你的MyShare個人書籤  

不错


第六世纪 發表於 January 5, 2006 08:09 PM
發表迴響  
(*星號開頭為必填欄位)











(請輸入您看到的數字,看不到請按右鍵->顯示圖片)


記住我的資訊?







Copyright 2005 Neo's Blog All rights reserved.