sql-server - 在哪里可以找到 sqljdbc_xa.dll 文件?

标签 sql-server jdbc dll xa

我正在尝试为在 Windows server 2008 R2 上运行的 MS sql server 2008 启用 XA 事务。

为此,我必须将 SQLJDBC_XA.dll 文件从 JDBC 安装目录复制到 Binn 目录。

该数据库服务器在磁盘中的任何位置都没有任何此类文件,并且我无权访问安装 CD。有什么方法可以获取这个特定文件吗?

最佳答案

为 SQL Server 启用 XA 事务是一个不明显的过程,涉及:

(a) 进入组件服务 > 分布式事务 > 本地 DTC 并勾选一个框以启用 XA 事务: 看 https://blogs.msdn.microsoft.com/dataaccesstechnologies/2011/10/26/how-a-dba-can-confirm-if-microsoft-jdbc-xa-transactions-are-set/

(b) 您必须复制与数据库分开的 DLL。下载最新的 jdbc 驱动程序(例如 6.0)。 转到 SQL Server 安装文件夹并搜索: 宾恩。

你会发现一个 binn 文件夹,里面已经有 dll。 例如。 somePath\MicrosoftSQLServer_InstanceRoot\MSSQL12.SQLEXPRESS\MSSQL\Binn

粘贴适当的: sqljdbc_6.0\enu\xa\x64\sqljdbc_xa.dll 如果您有 64 位 Express 版本,则 Dll 就在那里。 否则,使用 32 位 dll。

如果您将 dll 放在错误的文件夹中,您将得到:

XAConnection java.sql.SQLException: XA error: XAResource.XAER_RMERR start() failed on resource 'someAppDatasource': XAER_RMERR : A resource manager error has occurred in the transaction branch javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: Could not load the DLL SQLJDBC_XA.dll, or one of the DLLs it references. Reason: 126(The specified module could not be found.). at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:742) at com.microsoft.sqlserver.jdbc.SQLServerXAResource.start(SQLServerXAResource.java:774)

c) 您还会获得 xa_install.sql 随司机而来。 您将必须运行该 sql。 它将创建一个用户角色。

(d) 您需要转到使用的数据库主数据库并选择,然后选择为 XA 事务创建的新用户角色。

抱歉,SQL Server 并没有让启用 XA 事务变得简单……无论出于什么原因,您都必须在各处勾选框上跳来跳去才能使其正常工作。

关于sql-server - 在哪里可以找到 sqljdbc_xa.dll 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292663/

相关文章:

php - 即使尽可能设置 UTF-8,也无法显示德语变音符号

c# - Asp.net MVC SQL Server 连接返回空

mysql - 帮助构建使用内连接的 sql 查询

Java Oracle Jdbc 并行连接终止

windows - Air Native Extension如何使用外部Dll?

windows - VB6 程序使用的 32 位 dll 在 64 位 Win 7 中不起作用

sql-server - SQL Server - 创建数据映射/聚合的有效方法

java - H2 是否支持可序列化隔离级别?

c# - 合并两种方法的 IL 时出现 dnlib.DotNet.Writer.ModuleWriterException

java - 如何获取模式的所有表名?