Java Atomikos XA事务连SQL Server时遇到的问题

最近在配置多数据源分布式事务,mysql + SQL Server,
项目环境:spring boot + mybatis + druid + Atomikos

mysql一切正常,配置sql server时报错,error:找不到存储过程 'master..xp_sqljdbc_xa_init_ex'。由于头一次接触sql server简直一头雾水,百度了一下是sql server库的服务器没有配置XA事务和安装JDBC插件

官方解释:您必须在安装 Microsoft SQL Server 数据库之后,启动服务器之前配置 XA 事务。SQL Server JDBC 驱动程序为提供对 Java Platform, Enterprise Edition/JDBC 2.0 可选分布式事务的支持。从 SQLServerXADataSource 类获取的 JDBC 连接可参与标准分布式事务处理环境,如 Java 平台、Enterprise Edition (Java EE) 应用程序服务器。

附上官方链接

操作步骤:

1、选择控制面板 > 管理工具 > 组件服务。
2、选择组件服务 > 计算机 > 我的电脑 > Distributed Transaction Coordinator。
3、右键单击本地 DTC,然后选择属性。
4、单击本地 DTC 属性窗口上的安全性选项卡。
5、选中启用 XA 事务复选框,然后单击确定。这将重新启动 MS DTC 服务。
6、再次单击确定以关闭“属性”窗口,然后关闭“组件服务”。
7、重新启动 SQL Server 以确保它与 MS DTC 更改同步。

8、然后下载jdbc插件,我下载的是6.0版本的,附上下载链接 windows系统勾选.exe 下载,

Java Atomikos XA事务连SQL Server时遇到的问题_第1张图片
这样一个东西,

9、放到服务器上安装,点击Unzip解压
Java Atomikos XA事务连SQL Server时遇到的问题_第2张图片
安装界面!

10、Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\chs\xa\x64\sqljdbc_xa.dll
sqljdbc_xa.dll 文件copy到SQL Server的binn路径下,
我的路径是C:\Program Files\Microsoft SQL Server\MSSQL11.STARYNI\MSSQL\Binn
11、打开SSMS运行 xa_install.sql数据脚本
路径:Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\chs\xa\xa_install.sql

我用的sa账号,到这步就可以了,连接成功!,如果是其他账号可以尝试获取账号权限

最后补充一下,如果出现Atomikos无限刷日志的情况在log配置文件中加入
限制只打印error日志就好了

你可能感兴趣的:(Java Atomikos XA事务连SQL Server时遇到的问题)