The last packet sent successfully to the server was 0 milliseconds ago


出現異常”The last packet sent successfully to the server was 0 milliseconds ago.“的大部分原因是由於數據庫回收了連接,而系統的緩沖池不知道,繼續使用被回收的連接所致的。

           以mysql為例:

           第一種解決辦法,就是將mysql回收空閑連接的時間變長,mysql默認回收時間是8小時,可以在mysql目錄下的my.ini中增加下面配置,將時間改為1天。

           單位是秒,最大好像是24天:

 

          [mysqld]

          wait_timeout=86400

           第二種解決辦法,可以通過配置,讓緩沖池去測試連接是否被回收,如果被回收,則不繼續使用,以dbcp為例:

          #SQL查詢,用來驗證從連接池取出的連接           dbcp.validationQuery=SELECT 1           #指明連接是否被空閑連接回收器(如果有)進行檢驗,如果檢測失敗,則連接將被從池中去除           dbcp.testWhileIdle=true           #在空閑連接回收器線程運行期間休眠的時間值,以毫秒為單位,一般比minEvictableIdleTimeMillis小           dbcp.timeBetweenEvictionRunsMillis=300000           #在每次空閑連接回收器線程(如果有)運行時檢查的連接數量,最好和maxActive一致          dbcp.numTestsPerEvictionRun=50           #連接池中連接,在時間段內一直空閑,被逐出連接池的時間(1000*60*60),以毫秒為單位           dbcp.minEvictableIdleTimeMillis=3600000


免責聲明!

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



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