mysql的连接自动关闭问题

在工作中好几次遇见了mysql连接自动关闭的问题,最近系统中的一个模块又碰到了同样的“conection failed症状”。
由于使用了动态表,该模块并没有使用系统标配的sessionFactory,而是自己构建了一个单独的Hibernate sessionFactory
对动态表进行操作。开始时,我怀疑是不是多线程共用了session而导致的的session关闭问题,于是发起几位同事
一同测试了一下,发现不是这个原因;再详细问一下错误产生时的状况:应用启动很长时间后,只有一个人在操作也有
会出这个错。啊?一听到“应用启动很长时间之后才出现”,立马想起了mysql这个经典的“连接关闭”问题,立刻动手为
sessionFactory配了个c3p0连接池,并设置了c3p0定期检查数据库连接:
configuration.setProperty(" idle_test_period","1800");
重启测试,问题解决。比较搞笑的是,mysql的启动参数中WaitTimeOut竟然和这个问题的出现有关系;这个参数默认设置是
八小时,于是应用启动八小时后才会出现connection failed问题;我们将WaitTimeOut设成很小之后,顺利地在几秒钟内重现了
这个Bug。对了别忘了: idle_test_period的值必须设得要比WaitTimeOut值小才管用。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值