當前位置:首頁 » 文件傳輸 » 連接池長時間不訪問資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

連接池長時間不訪問資料庫

發布時間: 2022-12-14 22:30:47

『壹』 資料庫連接超時的問題

超時設置增加
Connect
Timeout=30
30的單位是秒

『貳』 tomcat啟動時間過長就無法連接資料庫了,必須重啟,但頁面能正常訪問,怎麼解決

你的連接池是自己實現的嗎
應該是連接池裡的連接都沒有了:
1 要麼被銷毀了
2 要麼是你沒釋放連接,導致沒有空閑連接,
所有得不到連接包空指針
要是用的tomcat自己的連接池,是不是配置有問題,重新仔細檢查下,
再或許看看是不是tomcat的bug,重新換個tomcat試試

『叄』 資料庫連接池,該怎麼處理

由於創建連接的代價是很高的, 我們每次訪問資料庫都重新創建連接的話是非常消耗性的.

我們可以再程序啟動的時候先創建出一些連接, 放在一個集合中, 訪問資料庫的時候從集合中獲取, 使用結束再放回集合中.

這樣做只是在程序啟動的時候消耗性能去創建連接, 每次訪問資料庫的時候都是從內存中獲取連接, 可以大大提升效率.

注意事項:
由於池中增刪非常頻繁, 使用集合LinkedList效率較高
集合中所有連接都被佔用時創建新連接, 但需要注意連接總數
使用組合模式/動態代理處理釋放連接的方法, 當運行close方法時, 將連接放回池中
關於資料庫連接池:
資料庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網頁應用程序中體現得尤為突出。對資料庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標。資料庫連接池正是針對這個問題提出來的。

資料庫連接池負責分配、管理和釋放資料庫連接,它允許應用程序重復使用一個現有的資料庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的資料庫連接來避免因為沒有釋放資料庫連接而引起的資料庫連接遺漏。這項技術能明顯提高對資料庫操作的性能。

資料庫連接池在初始化時將創建一定數量的資料庫連接放到連接池中,這些資料庫連接的數量是由最小資料庫連接數來設定的。無論這些資料庫連接是否被 使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大資料庫連接數量限定了這個連接池能佔有的最大連接數,當應用程序向連接池請求的連接數超 過最大連接數量時,這些請求將被加入到等待隊列中。

資料庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素:
1) 最小連接數是連接池一直保持的資料庫連接,所以如果應用程序對資料庫連接的使用量不大,將會有大量的資料庫連接資源被浪費;
2) 最大連接數是連接池能申請的最大連接數,如果資料庫連接請求超過此數,後面的資料庫連接請求將被加入到等待隊列中,這會影響之後的資料庫操作。
3) 如果最小連接數與最大連接數相差太大,那麼最先的連接請求將會獲利,之後超過最小連接數量的連接請求等價於建立一個新的資料庫連接。不過,這些大於最小連接數的資料庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時後被釋放。

J2EE伺服器啟動時會建立一定數量的池連接,並一直維持不少於此數目的池連接。

調用:客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接並將其表記為 忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。
釋放:當使用的池連接調用完成後,池驅動程序將此連接表記為空閑, 其他調用就可以使用這個連接