轉自:http://www.newwhy.com/archiver/tid-1096.html
在以往的開發中,常常遇到tomcat連接池斷掉后(比如網絡斷線),無法自動重新連接,導致數據庫連接始終無效,今天發現此問題的一個解決方案。
首先,在連接池的配置中(XXX.XML),DB的url后加上參數,如sqlserver的加;autoReconnect=true,這是自動重連的基礎保證。
其次,一定要在tomcat中拋出連接異常,這一點很重要。一般我們的連接都會用class封裝起來,一場也會在class中捕獲,并處理掉,這樣會導致連接無法自動恢復。估計tomcat所帶的dbcp連接池的重連機制是捕獲tomcat中拋出的連接異常再重新連接,所以,連接異常一定要被拋出而不是自行處理掉。否則連接池會無法重新連接。
所以,實現tomcat自帶連接池dbcp自動重連的解決方案是,1。加上autoReconnect=true的參數 2。連接異常要被拋出