解決數據庫連接池連接mysql時,每隔8小時mysql自動斷開所有連接的問題


解決數據庫連接池連接mysql時,每隔8小時mysql自動斷開所有連接的問題 

最近有個問題非常討厭,我們的工程中使用自己的連接池連接mysql數據庫,可mysql數據庫每隔8小時就會自動斷開所有鏈接,連接池就失效,需要重新啟動tomcat才有效,呵呵,服務器可不能老是用“人工智能”來干預啊,后來翻了一下mysql的手冊,發現mysql有解決辦法,下面就是最簡單的解決辦法:

連接數據庫的時候加上autoReconnect=true這個參數: 

jdbc:mysql://localhost:3306/accounant?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true

但是,在mysql手冊中有這樣一段話: 

驅動程序是否應嘗試再次建立失效的和/或死連接? 如果允許,對於在失效或死連接上發出的查詢(屬於當前事務),驅動程序將拋出異常,但在新事務的連接上發出下一個查詢時,將嘗試再連接。不推薦使用該特性,這是因為,當應用程序不能恰當處理SQLExceptions時,它會造成與會話狀態和數據一致性有關的副作用,設計它的目的僅用於下述情況,即,當你無法配置應用程序來恰當處理因死連接和/或無效連接導致的SQLExceptions時。作為可選方式,可將MySQL服務器變量“wait_timeout”設置為較高的值,而不是默認的8小時。


呵呵,不知道這種“副作用”會產生什么后果,難道會使tomcat崩潰??會產生“數據一致性”問題?? 

保險一點的辦法還是增加“wait_timeout”這個值吧,把28800設置成更大的值,這樣應該就不會有什么問題了吧。

windows下在my.ini文中增加:

interactive_timeout=28800000
wait_timeout=28800000


注:目前我使用的是autoReconnect這種方式,未發現什么問題。

轉自:http://blog.csdn.net/liuxiaogangqq/article/details/41757501


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM