Communications link failure


針對數據庫Communications link failure的錯誤,可以理解為有兩種策略解決:
策略1(推薦):
    數據池配置 <property name="minEvictableIdleTimeMillis" value="28800" />屬性,和數據庫變量wait_timeout一致。
策略2:    
    數據池配置
    <!-- testWhileIdle會定時校驗numTestsPerEvictionRun個連接,只要發現連接失效,就將其移除再重新創建-->
        <property name= "testWhileIdle" value="true" />
        <!-- 從池中取連接的時候,發現當前連接失效,再創建一個連接供當前查詢使用-->
        <property name= "testOnBorrow" value="false" />
        <!-- 連接在return給pool時,是否提前進行validate操作-->
        <property name= "testOnReturn" value="false" />
        <!-- 測試連接是否有效的sql-->
        <property name= "validationQuery" value="select 1" />  
        <!-- 檢查連接池中空閑的連接的頻率:毫秒-->
        <property name= "timeBetweenEvictionRunsMillis" value="30000" />  
        <!-- 每次檢查空閑連接的個數-->
        <property name= "numTestsPerEvictionRun" value="30" />     
      一套屬性,定期檢查連接,發現無效的則關閉。

策略3:

修改MySQL的參數,wait_timeout最大為31536000即1年,在my.cnf中加入:

[mysqld]

wait_timeout=31536000(1年)259200(3天:個人推薦)

interactive_timeout=31536000

重啟生效,需要同時修改這兩個參數。

!!!需要重啟



免責聲明!

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



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