javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。(SQL 2000,SQL2005,SQL2008)

javax.transaction.xa.XAException: java.sql.SQLException:无法创建 XA 控制连接。错误: 未能找到存储过程‘master..xp_sqljdbc_xa_init‘。

配置JTA  SQL Server XADataSource参考:http://technet.microsoft.com/zh-cn/library/aa342335.aspx

来源:http://blog.csdn.net/gjf8510/article/details/16118687

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驱动程序有问题,这得感谢一网络朋友的提醒!!!在此感谢。

时间: 2024-10-13 22:44:12

javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。(SQL 2000,SQL2005,SQL2008)的相关文章

Java中通过方法创建一个http连接并请求

1.Java代码创建一个连接并请求该连接返回的数据 doGet()方法,execute()方法中调用 package demo2.x.com; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import javax.print.attribute.

Caused by: java.lang.ClassNotFoundException: javax.transaction.TransactionManager

1.错误叙述性说明 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop } 2014-7-12 14:54:49 org.apache.catalina.core.AprLifecycleListener init 信息: Loaded APR based Apache Tomcat Native library 1.1.29 us

java.sql.SQLException: 调用中无效的参数DSRA0010E: SQL 状态 = null,错误代码 = 17,433

在节点 cnshh171Node01 上的服务器 server1 上,对数据源 testj2cbug 执行的测试连接操作由于以下异常 java.sql.SQLException: 调用中无效的参数DSRA0010E: SQL 状态 = null,错误代码 = 17,433 而失败. 查看 JVM 日志 JVM 日志: java.sql.SQLException: invalid arguments in call DSRA0010E: SQL State = null, Error Code =

使用JDBC连接SQL Server

源文:http://bbs.bc-cn.net/dispbbs.asp?boardid=12&id=140292 整理:秋忆 接触Java或者JSP,难免会使用到数据库SQL Server 2000/2005(我使用2005标准版[9.0.3054]测试),经过自己的搜索和研究,使用JDBC连接SQL Server成功,特此整理方法(使用Eclipse 3.2)如下. 准备工作 首先,操作系统中安装好SQL Server 2000/2005,如果系统中都装有2000和2005版,记得停用一个,只

JDBC连接SQL Server 2005步骤详解

一.设置SQL Server服务器:    1."开始" → "程序" → "Microsoft SQL Server 2005" → "配置工具" → "SQL Server Configuration Manager"(确认"SQL Server Management Studio"已关闭)    2."SQL Server 2005 服务"中停止服务"

PHP连接sql server 2005环境配置

一.Windows下PHP连接SQLServer 2005 设定:安装的Windows操作系统(Win7 或XP均可,其他系统暂未测试),在C盘下:PHP的相关文件位于c:/PHP下面,其配置文件php.ini位于C:\Windows下面. 连接前配置系统: 1.检查文件 php\ntwdblib.dll, 默认PHP的安装目录下面有一个,不能连接再替换. 下载正确版本的 ntwdblib.dll (2000.80.194.0) 2.配置php a.打开php.in将extension=php_

php连接sql server

这两天有个php连接sql server的项目,顺便学习学习sql server  说明: 1:PHP5.2.x本身有个php_mssql.dll的扩展用来连接Sql server,但是这个dll只是用来连接低版本 Sql server的(2000以下版本),在Sql server 2005及以上版本无法使用mssql_connect连接到数据库. 2:php5.3.x不再支持php_mssql.dll 拓展库了,及时使用php5.2.x中的php_mssql.dll也无法使用. 微软专门为PH

Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Connectio

严重: StandardWrapper.Throwableorg.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!

[Spring MVC - 2A] - java.sql.SQLException: Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)

严重: Servlet.service() for servlet [springMVC] in context with path [/ExceptionManageSystem] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.Pe