簡體   English   中英

Hibernate,C3P0,Mysql連接池

[英]Hibernate, C3P0, Mysql Connection Pooling

我最近從Apache DBCP連接池切換到了C3P0,並仔細查看了日志以查看是否存在連接超時問題。 我以前在DBCP和Tomcat中沒有這個功能,所以我想知道這是配置問題還是驅動程序問題。

每當服務器閑置一會后加載頁面時,都會看到一些內容沒有發送(因為服務器無法獲得連接或其他東西)。 當我刷新頁面時,所有內容都在那里。

既然我一直在使用MySQL,是否有人建議使用MySQL連接池? 您對MySQL連接池有何經驗?

沃爾特

如果您正在使用的數據庫配置為在一段時間不活動后使連接超時,則它們已經關閉,因此從池中借用時它們將不可用。

如果您不能或不想重新配置數據庫服務器,則可以配置C3P0(和大多數其他連接池)以在從池中借用連接時使用測試查詢來測試連接。 您可以在C3P0文檔的相關部分中找到更多詳細信息。

編輯:當然,您是對的,也有可能在DBCP池中配置了最大空閑時間,從而導致在超時之前將其從池中刪除。 無論如何,使用測試查詢或確保連接在超時之前已從池中刪除,都可以解決此問題。

只是添加到另一個連接池的鏈接; BoneCP( http://jolbox.com ); 比C3P0和DBCP都快的連接池。

與C3P0和DBCP一樣,請確保配置空閑連接測試以避免出現您描述的情況(可能是MySQL的wait_timeout設置生效了,通常設置為8小時)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM