错误:

Software caused connection abort: recv failed  

 Communications link failure

The last packet successfully received from the server was 204,219 milliseconds ago.  The last packet sent successfully to the server was 0 milliseconds ago.

 

不知道有没有其他情况 我遇到的情况是因为与数据库建立的连接有问题了:

mysql 默认连接是8小时wait_timeout  也就是说Connection如果8小时闲置不用就会失效(或者上手动关闭 跟失效一样)

可以查看变量值:

show global variables like 'wait_timeout';  

修改:

windows系统 就在安装目录下的my.ini (也可能上my.cnf)中  添加如下wait_timeout 参数 参数单位是秒  如果设置成10天失效60*60*24*10

Software caused connection abort: recv failed   /  Communications link failure / The last packet suc_mysql

linux系统 /etc/my.cnf   跟windows修改一样 也是添加一个参数 

 

代码:

如果不想修改数据库的参数 可以用代码实现 

如果是使用的连接池的话  每种不同的连接池应该会有类似自动连接 或者是超时重连机制 需要针对不同技术看需要设置什么参数

如果是自己用jdbc的话 就需要写一个定时(最好小于数据库默认的超时时间  8小时) 比如 每隔7小时监测一次Connection(执行一个简单查询) 如果失败的话 就新建连接 如果成功就不需要做处理