Atomikos + druid 多数据源数据库连接超时回收问题怎么解决


Atomikos + druid 多数据数据库连接超时回收问题怎么解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一段时间不查询数据,通常是过一夜第二天一早发起第一次连接时会出现数据库无法连接异常:出现上述前两个异常是由于数据库连接超过mysql配置的 wait_timeout 时间,连接被mysql回收,但是 druid 连接池并不知道连接已被回收,因此报错。连接池都有失败重连功能,druid的做法是在下一次请求连接数据库时,重连上一个异常的连接,所以之后的每次请求都是异常,直到池中所有连接都重连一次。即连续失败次数就是 minIdle 配置的数量。如果连接多数据库情况,每个数据库的请求都会连接失败 minIdle 次。上述配置可保证限时删除无效连接。命令行连接数据库后,执行:show global variables like “%timeout%”;上述数据库的链接有效时间是1小时,mysql默认为8小时,可使用命令修改,无须重启mysql:需要注意 链接池 removeAbandonedTimeout
异常情况三的场景更复杂一些, atomikos 工作在 druid 上层,当druid检测到超时链接并重连后,并不会通知 香港云主机 atomikos,所以下次sql执行时仍然会报错。atomikos 资料较少,看源码太费时,有空了再研究。尽量增大数据库 wait_timeout 的时间(需要注意过大的 wait_timeout 会影响数据回收无效链接)。可关闭druid removeAbandoned 功能。配置一个定时器,在 min(wait_timeout,removeAbandonedTimeout) 时间内至少执行 minIdle 次,每次都在所有数据源中执行一个简单的查询。三种方式可结合使用升级 mysql-jdbc-driver 到6以上据说也可以解决,没有测试过。看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注开发云行业资讯频道,感谢您对开发云的支持。

相关推荐: C#7.1有哪些特性

这篇文章主要讲解了“C#7.1有哪些特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#7.1有哪些特性”吧!自2003年以来,Microsoft首次考虑对C#使用带小数点后位数的版本。当前暂定下一个版本是C…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 09/01 09:16
Next 09/01 09:16

相关推荐