資料庫連接池之逾時總結

來源:互聯網
上載者:User
{轉載}大家都覺得使用串連池可以使串連更好的控制,於是乎簡單的配置了一下串連池就行了,只要能串連到資料庫就覺得什麼都ok了.其實不然,如果不正確的配置一 下串連池,那將得不償失!原因是:串連池的確會減少每次串連資料庫對系統帶來的開銷,因為串連池中會存在一些可用的串連,程式使用的時候直接來這裡取就行 了,串連池中的串連一般情況下是不會被關閉的,這點就是問題的所在!這麼多的沒關閉串連會直接耗掉資料庫所能提供的串連數!這和直接使用程式去串連而忘了 關閉串連是一樣的效果!甚至更為嚴重(因為串連池中的串連會不停的被發sql去test而不會過時,程式中的串連會逾時)!         所以以後使用串連池時,一定要記得配置逾時選項,而不是簡單的配置一下最大數和最小數就行了.大多數串連池都有一個配置池中逾時串連的選項,比如dpcp 的maxWait,proxool的maximum-connection-lifetime,jboss內建串連池的 IdleTimeoutMinutes等,但是它們預設都是0過-1L!也就是說,預設情況下,串連池中的串連是不會逾時的!這點很重要:池中的串連永遠保持著與資料庫的串連!!當使用完這些串連後如果再有其它外來串連想使用資料庫的話,資料庫就再沒有可用的串連可以提供了!(註:這句話可能有問題,需要查證)         所以在配置串連池的時候一定要記得把這些逾時選項配置好,不然,使用串連池將得不償失. 

造成資料庫連接池之逾時總結:  

1.串連池配置時,要注意的 地方:最大串連數小於或者等於資料庫伺服器端配置的最大串連數,否則多餘的串連在被應用程式使用時將可能會出現連線逾時  
2.網路阻塞:由於每次串連同時往資料庫伺服器端提交或者維護大量資料,如果網路不穩定也會造成串連超  時

3.應用程式中釋放佔用的資料庫資源,由於connect--->statement--->resultSet為爺--->父--->子關係,statement和resultSet被執行個體化,實際上在資料庫端開啟遊標之類的資源,需要應用程式這邊close掉,所以在close串連時,先要關閉和resultSet,statement ,否則可能導致伺服器端資源耗盡,同樣也會出現應用程式連線逾時問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.