您的位置:首页 > 产品设计 > UI/UE

dbcp连接池八小时失效配置(testQuery/validationQuery)

2016-09-29 11:30 239 查看
公司的项目最近上线,项目使用了spingboot,老大们总是提微服务这个概念,于是学习了一番,我自己启动了一个项目作为后台服务组成部分编码完成以后将项目部署到了服务器上,每次在测试的时候测没有出现问题,但是等项目部署到服务器上以后,问题来了。



困扰了一段时间,一般出现这个错误的情况是:打开app停留在即将请求服务器中我负责的部分,切换到后台等到很长时间以后重新发起请求就会出现这个问题。影响用户体验,排查了几天也没有排查出来,昨天在查看tomcat自带日志的时候查看到出现了错



后面百度关键字设置了autoreconnect=true

才知道mysql的机制,当一旦连接闲置超过八小时后,mysql会自动断开连接,要重启tomcat

下面是一些相关连接
http://gcq04552015.iteye.com/blog/1696915 href="http://gcq04552015.iteye.com/blog/1696915" target=_blank>mysql八小时的设置
http://kabuchino.iteye.com/blog/1140323 href="http://kabuchino.iteye.com/blog/1140323" target=_blank>关于mysql的八小时解释

当我查看本地代码的时候。发现代码在初始化配置的环境的时候就是已经设置了这些属性



顺着这条线查找,百度和问了一下老大,可能是使用了连接池以后经过一段时间,连接失效了,所以设置如下属性

<!-- testOnBorrow true 指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个. -->
<property name="testOnBorrow">
<value>true</value>
</property>
<!-- 该选项用来验证数据库连接的有效性 -->
<property name="validationQuery">
<value>SELECT 1 </value>
</property>
昨天特意打开了app,然后等今天早上打开以后就没有出现了问题。。。。注释也一并贴在了代码中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: