com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after co

分析,出现这种异常的原因是:

Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空间超过8个小时,Mysql将自动断开该connection,这就是问题所在,在连接池中的connection如果空闲超过8小时,mysql将其断开,连接池并不知道该connection已失效,如果这时有client请求connection,连接池将失效的connection提供给client,将会造成上面的异常。

 

解决的方法:

(1)增加wait_timeout的时间。

(2)测试连接池中的connection的有效性。

 

可以使用hibernate等持久化管理框架,如使用配置:

 

<property name=”connection.autoReconnect”>true</property>  <!–这个是最主要的–>

<property name=”connection.autoReconnectForPools”>true</property>

<property name=”connection.is-connection-validation-required”>true</property

 

也可以在Mysql的url中加入autoReconnect=true。

 

在data source 配置时加入下面三行也可以解决问题:

 

<property name=”connection.autoReconnect”>true</property>  <!–这个是最主要的–>

<property name=”connection.autoReconnectForPools”>true</property>

<property name=”connection.is-connection-validation-required”>true</property

 

 

最后欢迎大家访问我的个人网站:1024s

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值