Failed to create the XA control connection. Error: "找不到存储过程 'master..xp_sqljdbc_xa_init_ex'。
Failed to create the XA control connection. Error: "找不到存储过程 'master..xp_sqljdbc_xa_init_ex'。
抛出异常的环境:使用atomikos配置分布式事务(MySQL和SQL server),在启动项目的时候抛出的异常。
分析原因:没有开启SQL server对XA事务支持
解决办法:
1.首先了解XA事务并下载JDBC驱动,参考:http://technet.microsoft.com/zh-cn/library/aa342335.aspx
2.对下载的驱动进行解压缩得到文件

3.将对应文件放入目标文件夹下,具体使用32位还是64位,看自己的操作系统
3.1 将auth\x86(x64|IA64)\sqljdbc_auth.dll放入WINDOWS\system32中
3.2 将xa\x86(x64|IA64)\sqljdbc_xa.dll放入Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn下 (具体在那个硬盘下,需要看SQL server的安装位置)
4.执行xa_install.sql生成sqlJDBCXAUser角色

5.创建新的SQL server用户,并将该角色赋给新建用户,可参考:http://www.blogjava.net/zyw090111/
6.修改操作系统上的配置:
6.1 在 Windows XP 和 Windows Server 2003 上:
6.1.1.在“控制面板”中,打开“管理工具”,然后打开“组件服务”。也可以单击“开始”按钮,单击“运行”,在“打开”框中键入dcomcnfg,然后按“确定”打开“组件服务”。
6.1.2.展开“组件服务”、“计算机”,右键单击“我的电脑”,然后选择“属性”。
6.1.3.单击“MSDTC”选项卡,再单击“安全性配置”。
6.1.4.选中“启用 XA 事务”复选框,然后单击“确定”。这将使 MS DTC 服务重新启动。
6.1.5.再次单击“确定”以关闭“属性”对话框,然后关闭“组件服务”。
6.1.6.停止 SQL Server,然后重新启动,以确保它与 MS DTC 更改同步。
6.2 在Win8或Server 2008上:
6.2.1.在“控制面板”中,打开“管理工具”,然后打开“组件服务”。也可以单击“开始”按钮,单击“运行”,在“打开”框中键入dcomcnfg,然后按“确定”打开“组件服务”。
6.2.2.展开“组件服务”\“计算机”\"Distribute Transaction Coordinator",右键单击“本地DTC”,然后选择“属性”。
6.2.3.单击“安全”选项卡,再单击“启用XA事务”。
6.2.4.然后单击“确定”。这将使 MS DTC 服务重新启动。
6.2.5.再次单击“确定”以关闭“属性”对话框,然后关闭“组件服务”。
6.2.6.停止 SQL Server,然后重新启动,以确保它与 MS DTC 更改同步。
7.配置时候遇到的问题:
7.1 所有的操作都配置好并且重启了SQL server以后再次启动项目抛出异常:
Failed to create the XA control connection. Error: "无法加载 DLL SQLJDBC_XA.dll 或它引用的一个 DLL。原因:
无法加载首先想到的就是找不到dll文件,,但是我明明放进去了,当时我参考了一篇博客放置的DLL SQLJDBC_XA.dll文件,由于博客描述不清楚,然后我全局搜索文件找到了两个,我就把dll放进去了其中我感觉更像的哪一个,结果明显不行,那就只能两个一起放了,后边进行追溯原因的时候发现第一次放的位置是c盘下的,但是我的SQL server安装的时候我选择的是e盘,所以会抛出上边的异常
原文:https://blog.csdn.net/gjf8510/article/details/16118687
该文章大部分内容来自于https://blog.csdn.net/gjf8510/article/details/16118687,本人只是对其中的一些地方进行了更改
Failed to create the XA control connection. Error: "找不到存储过程 'master..xp_sqljdbc_xa_init_ex'。的更多相关文章
- javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。错误: 未能找到存储过程 'master..xp_sqljdbc_xa_init'
配置JTA SQL Server XADataSource参考:https://msdn.microsoft.com/zh-cn/library/aa342335.aspx 使用 JDBC 驱动程序 ...
- AndroidStudio 更新gradle Error:Failed to complete Gradle execution. Cause: Connection reset
Android Studio 报错:Error:Failed to complete Gradle execution. Cause: Connection reset.把最新可以运行的项目中g ...
- 安装VMWare WorkStation 10 异常【 Failed to create the requested registry keyKey:Installer Error: 1021】
下载了新的workstation 10,在安装的时候出现了异常Failed to create the requested registry keyKey:Installer Error: 1021. ...
- Connection to Oracle failed. [66000][12505] Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor .
我安装了Oracle数据库,默认的数据库用户名是system,密码口令是安装过程中你自己设置的.可以先使用命令框,输入 sqlplus system; 然后再输入密码即可. 然后我的数据库连接工具使用 ...
- pip错误-failed to create process/fatal error in launcher
电脑同时装了python2和python3,并且都配置了环境变量 将python2的python.exe改成python2.exe,python3的python.exe没有改(主要用python2时则 ...
- Object type TYPE failed to create with error
ORA-39083: Object type TYPE failed to create with error: ORA-02304: invalid object identifier litera ...
- ubuntu下pig报错ERROR 2999: Unexpected internal error. Failed to create DataStorage的解决
2019-03-04 00:10:03,998 [main] ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error. Fa ...
- 在k8s中安装flannel的故障解决: Failed to create SubnetManager: error retrieving pod spec for : the server does not allow access to the requested resource
花了一个上午来追踪问题,k8s都反复新建了十多次,docker都重启了几次.(一次显示不有获取磁盘空间,重启docker,清空存储解决) 在用kubeadm安装容器化的几个组件时,flannel组件死 ...
- ERROR 14856 --- [reate-882003853] com.alibaba.druid.pool.DruidDataSource : create connection error, url: jdbc:mysql://localhost:3306/xhb?useUnicode=true&characterEncoding=UTF-8, errorCode 1045, sta
ERROR 14856 --- [reate-882003853] com.alibaba.druid.pool.DruidDataSource : create connection error, ...
随机推荐
- Linux c codeblock的使用(四):创建自己的静态函数库
从我之前的博文当中,大家应该大概了解了linux下的函数库究竟是一个什么样的东西.linux下的函数库其实就像windows中的dll文件,里面包含了程序运行所需要的函数. 其实无论是我们使用linu ...
- GIT 生成公钥
ssh-keygen -t rsa -C "xxxxx@xxxxx.com" cat ~/.ssh/id_rsa.pub
- Spring、SpringMVC区别
1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合. 2). AOP编程的 ...
- K2百家讲坛 | 越秀地产:K2为房企数字化转型带来更多可能
随着数字化经济时代的到来,房地产行业逐渐形成了新的竞争和市场格局,房企要在此背景下实现稳步发展,需要由原本的粗放式管理逐渐向集团性管理.精细化管控转变,这对房企的经营发展战略和业务管理方式都提出了不小 ...
- C# [GDI+] [API] Get Image bytes Length
MemoryBMP "{b96b3caa-0728-11d3-9d7b-0000f81ef32e}" 2 Bmp "{b96b3cab-0728-11d3-9d7b-00 ...
- Java 访问限制符 在同一包中或在不同包中:使用类创建对象的权限 & 对象访问成员变量与方法的权限 & 继承的权限 & 深入理解protected权限
一.实例成员与类成员 1. 当类的字节码被加载到内存, 类中类变量.类方法即被分配了相应内存空间.入口地址(所有对象共享). 2. 当该类创建对象后,类中实例变量被分配内存(不同对象的实例变量互不相同 ...
- 背景图片利用backgrond-posintion属性实现不同形式的分割
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Python条件判断 if-else for循环 while循环 break continue
条件判断 if-else if-else语句是通过if 后面的是否为真,当为True,就执行if代码块后面的,如果为False,同时又有else语句,执行else后面的内容.没有else,什么都不执行 ...
- java + tomcat cookie 异常
Cookie cookie = new Cookie(username,value); cookie.setMaxAge(60*60*24*7,cookie); ...
- 初读"Thinking in Java"读书笔记之第八章 --- 多态
再论向上转型 在某些方法中,仅接收基类作为参数,而不是特殊的导出类,会使得程序更容易扩展. 转机 方法调用绑定 前期绑定(编译期绑定):在编译期将一个方法调用和方法主体关联起来. 后期绑定(动态绑定或 ...