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 下载,

这样一个东西,

9、放到服务器上安装,点击Unzip解压
安装界面!

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配置文件中加入
<logger name="com.atomikos" level="error"></logger> 限制只打印error日志就好了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容