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爲例:sql

           第一種解決辦法,就是將mysql回收空閒鏈接的時間變長,mysql默認回收時間是8小時,能夠在mysql目錄下的my.ini中增長下面配置,將時間改成1天。數據庫

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

 

          [mysqld]線程

          wait_timeout=86400server

           第二種解決辦法,能夠經過配置,讓緩衝池去測試鏈接是否被回收,若是被回收,則不繼續使用,以dbcp爲例:it

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

相關文章
相關標籤/搜索