mysql數據庫連接異常問題(總結)


mysql數據庫連接異常問題(總結)

1.1 前言

    最近項目由1個數據源增加至了3個數據源(連接池使用C3P0),結果各種奇葩的數據庫連接問題接踵而至,為防止將來再次遇到同樣的問題不犯同樣錯誤,現總結如下。

1.2  An attempt by a client to checkout a Connection has timed out  (連接超時)

  1. 這種情況基本是網絡不穩定導致的;再者就是數據源配置參數有異常。

     


     

1.3 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 52,420,576 milliseconds ago.  

  1.  這種情況是由於連接池產生的部分連接長時間閑置,已經超過mysql數據庫配置的“wait_timeout”設置的超時即斷開該連接,而連接池沒有校驗該連接是否可用就直接被服務調用了,導致連接不可用報錯。解決方案如下:

             a、修改C3P0配置參數(推薦):

                   c3p0.testConnectionOnCheckout=true
             b、縮減連接池的連接的生命周期,一般比數據庫的等待超時默認8小時內即可(推薦);

             c、增加數據庫的等待超時配置為24小時(不推薦);

 

1.4 cannot get a available connection

  1. 這種情況基本是要檢查連接池的初始化連接數及最大連接數不夠的問題,需要調大點;再者就是數據庫可能出了問題。


免責聲明!

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



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