使用atomikos作分布式事务,连接池超时问题

发布于 2021-12-31 23:47:03 字数 1452 浏览 777 评论 3

mysql会自动断开超过60秒的连接,而atomikos连接池没有检测机制去保持空闲的连接

造成连接池的连接超时掉了,以下是日志内容

com.mysql.jdbc.jdbc2.optional.MysqlXAException: Communications link failure


The last packet successfully received from the server was 157,969 milliseconds ago.  The last packet sent successfully to the server was 3 milliseconds ago.
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:604)
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:583)
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.start(MysqlXAConnection.java:523)
at com.atomikos.datasource.xa.XAResourceTransaction.resume(XAResourceTransaction.java:498)
at com.atomikos.datasource.xa.session.BranchEnlistedStateHandler.<init>(BranchEnlistedStateHandler.java:59)
at com.atomikos.datasource.xa.session.NotInBranchStateHandler.checkEnlistBeforeUse(NotInBranchStateHandler.java:65)
at com.atomikos.datasource.xa.session.TransactionContext.checkEnlistBeforeUse(TransactionContext.java:88)
at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:179)
at com.atomikos.jdbc.AtomikosConnectionProxy.enlist(AtomikosConnectionProxy.java:208)
at com.atomikos.jdbc.AtomikosConnectionProxy.invoke(AtomikosConnectionProxy.java:142)

google下看到几个说修改mysql连接超时设置,我觉得mysql连接超时配置是不建议修改的,有没有更好的方式解决呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

残花月 2022-01-07 13:27:27

引用来自“走在岸上的鱼”的评论

请问博主解决了吗

 

命硬 2022-01-07 10:27:05

请问博主解决了吗

 

水水月牙 2022-01-07 06:07:07

可以配置maxLifeTime

连接最大存活时间,超过这个且没有正在使用的连接将自动销毁,0无限制,1000 =1000s,对于一些会自动中断连接的数据库如mysql,可以设置这个参数,在达到这个时间的时候会自动关闭连接,下次数据库调用的时候就会新建

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文