我是靠谱客的博主 稳重金鱼,最近开发中收集的这篇文章主要介绍druid多数据源(mysql+sqlserver)与atomikos分布式事务错误踩坑解决,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1.错误一
Fatal error occurred in the transaction branch-check your data for consistency
原因是你的mysql配置帐号缺少XA_RECOVER权限:
执行下面命令解决
GRANT XA_RECOVER_ADMIN ON *.* TO '你的用户名'@'%';
2.错误二
c.a.jdbc.AtomikosXAConnectionFactory
: XAConnectionFactory: failed to create pooled connection - DBMS down or unreachable?
java.sql.SQLFeatureNotSupportedException: null
Druid连接池问题,当Druid与Atomikos搭配时,如果MySQL版本高于8.0.11则不被支持
链接:https://github.com/alibaba/druid/issues/3880
解决方法:需要手动指定mysql的版本
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
3.错误三
需要在sql server库的服务器配置XA事务和安装JDBC插件
配置XA事务与jdbc分布式事务插件:https://www.ibm.com/docs/zh/integration-designer/8.5.5?topic=SSTLXK_8.5.5/com.ibm.wbpm.imuc.ebpm.doc/topics/db_xa_nd_win_man.html
#版本问题
4.错误四
java.sql.SQLException: The connection property 'zeroDateTimeBehavior' acceptable values are: 'CONVERT_TO_NULL', 'EXCEPTION' or 'ROUND'. The value 'convertToNull' is not acceptable.
java.lang.IllegalArgumentException: No enum constant com.mysql.cj.conf.PropertyDefinitions.ZeroDatetimeBehavior.CONVERTTONULL2
解决办法:由于MySql废弃了convertToNull该写法,改为 CONVERT_TO_NULL
url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxx?&zeroDateTimeBehavior=CONVERT_TO_NULL
最后
以上就是稳重金鱼为你收集整理的druid多数据源(mysql+sqlserver)与atomikos分布式事务错误踩坑解决的全部内容,希望文章能够帮你解决druid多数据源(mysql+sqlserver)与atomikos分布式事务错误踩坑解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复