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

相关文章
相关标签/搜索