druid多数据源(mysql+sqlserver)与atomikos分布式事务错误踩坑解决

导读:本篇文章讲解 druid多数据源(mysql+sqlserver)与atomikos分布式事务错误踩坑解决,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77967.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!