javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。(SQL 2000,SQL2005,SQL2008)
2016-08-18 13:41
651 查看
javax.transaction.xa.XAException: java.sql.SQLException:无法创建 XA 控制连接。错误: 未能找到存储过程'master..xp_sqljdbc_xa_init'。
来源:http://blog.csdn.net/gjf8510/article/details/16118687配置JTA SQL Server XADataSource及驱动下载,请参考:http://technet.microsoft.com/zh-cn/library/aa342335.aspx
1.sqljdbc_3.0\chs\auth\x86(x64|IA64)\sqljdbc_auth.dll放入WINDOWS\system32中
2.sqljdbc_3.0\chs\xa\x86(x64|IA64)\sqljdbc_xa.dll放入Microsoft SQLServer\MSSQL\Binn\sqljdbc_xa.dll
3.执行xa_install.sql
4.为SQL Server登录用户赋予权限。可参与:http://www.blogjava.net/zyw090111/
如果要同时使用 XA 数据源和 Microsoft 分布式事务处理协调器 (MS DTC)来处理分布式事务,则需要执行以下步骤
(1)在 Windows XP 和 Windows Server 2003 上:
1.在“控制面板”中,打开“管理工具”,然后打开“组件服务”。也可以单击“开始”按钮,单击“运行”,在“打开”框中键入dcomcnfg,然后按“确定”打开“组件服务”。
2.展开“组件服务”、“计算机”,右键单击“我的电脑”,然后选择“属性”。
3.单击“MSDTC”选项卡,再单击“安全性配置”。
4.选中“启用 XA 事务”复选框,然后单击“确定”。这将使 MS DTC 服务重新启动。
5.再次单击“确定”以关闭“属性”对话框,然后关闭“组件服务”。
6.停止 SQL Server,然后重新启动,以确保它与 MS DTC 更改同步。
(2)在Win8或Server 2008上:
1.在“控制面板”中,打开“管理工具”,然后打开“组件服务”。也可以单击“开始”按钮,单击“运行”,在“打开”框中键入dcomcnfg,然后按“确定”打开“组件服务”。
2.展开“组件服务”\“计算机”\"Distribute Transaction Coordinator",右键单击“本地DTC”,然后选择“属性”。
3.单击“安全”选项卡,再单击“启用XA事务”。
4.然后单击“确定”。这将使 MS DTC 服务重新启动。
5.再次单击“确定”以关闭“属性”对话框,然后关闭“组件服务”。
6.停止 SQL Server,然后重新启动,以确保它与 MS DTC 更改同步。
注:在这些配置完成以后如果还出现:
错误:atomikos:error in recovery。
1.驱动程序有问题。即sqljdbc4.jar。我之前遇到这种问题后就重新在Miscrosoft官网上下载了“sqljdbc_3.0.1301.101_chs.exe";解压后,所有的配置都用该解压包中的文件。包括(sqljdbc_xa.dll)
2.SQL Server 2000用的是x86(即32)位的文件来配置。因为通过查询分析器输入"select @@version"来查看SQL的版本后就会发现,即使操作系统是Server 2003 X64位,但SQL Server 2000仍然是32位的。
在WIn8上面输入“select @@version”后得到版本号“Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) ”,由此可看出SQL Server是X64的。
3.SQL Server 2000在配置JTA XADataSource时,如果用sqljdbc.jar包,里面是没有com.microsoft.sqlserver.jdbc.SQLServerXADataSource该类的。因此SQL Server 2000也用sqljdbc4.jar该包来配置。
通过这些后应该没有什么问题了。困扰了我1周的问题啊,如果所有都配置好后还出问题,肯定就是jdbc驱动程序有问题,这得感谢一网络朋友的提醒!!!在此感谢。
相关文章推荐
- javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。(SQL 2000,SQL2005,SQL2008)
- javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。(SQL 2000,SQL2005,SQL2008)
- javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。错误: 未能找到存储过程 'master..xp_sqljd
- javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。错误: 未能找到存储过程 'master..xp_sqljdbc_xa_init'
- 关于javax.servlet.ServletException: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 错
- 【Java】【FAQ】Java连接SQL Server 2000问题:“com.microsoft.sqlserver.jdbc.SQLServerException:用户'sa'登录失败。
- spring+ibatis问题1—— 程序报错:java.sql.SQLException: Io 异常: Connection reset by peer, socket write error; ”或“java.sql.SQLException 关闭的连接”异常
- java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver Eclipse3.1 数据库连接测试程序(SQL Server 2000 Driver for JDBC Service Pack 3 安装测试)
- 【J2EE】Java连接SQL Server 2000问题:“com.microsoft.sqlserver.jdbc.SQLServerException:用户'sa'登录失败。该用户与可信SQL Server连接无关联”
- Oracle ORA-3137[12333] 关闭的连接 java.sql.SQLRecoverableException: 无法从套接字读取更多的数据 _optim_peek_user_binds
- java.sql.SQLException:ORA-24778:无法打开连接
- com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“java
- java里连接sqlserver对象名无效的解决方法 java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 无效
- (sql2005)com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: con
- 【MySQL】连接MySQL时,字符无法识别(java.sql.SQLException: Unknown character set index for field '224' received )
- java.sql.SQLException: 当事务仍处于活动状态时,无法关闭连接。解决办法
- com.microsoft.sqlserver.jdbc.SQLServerException: 到主机的TCP/IP 连接失败。java.net.ConnectException: Connection refused: connect
- java.sql.SQLException: 无法从套接字读取更多的数据
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
- java.sql.SQLException: [ Microsoft ][SQLServer 2000 Driver for JDBC ] Error establishing socket.