您必须在安装 Microsoft SQL
Server 数据库之后,启动服务器之前配置 XA 事务。SQL Server JDBC 驱动程序为提供对 Java Platform, Enterprise Edition/JDBC 2.0 可选分布式事务的支持。从 SQLServerXADataSource 类获取的 JDBC 连接可参与标准分布式事务处理环境,如 Java 平台、Enterprise Edition (Java EE) 应用程序服务器。
关于此任务
配置 XA 事务失败可能会在服务器启动时导致以下错误:javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: Failed to create the XA control connection. Error: "Could not find stored procedure
'master..xp_sqljdbc_xa_init_ex'."..
在 Service Manager 中,应将 MS DTC 服务标记为“自动”,以确保在 SQL Server 服务启动时运行 MS DTC 服务。
过程
- 要为 XA 事务启用 MS DTC,必须遵循下列步骤:
在 Windows XP 和 Windows
Server 2003 上:- 选择。
- 选择,然后右键单击我的电脑,然后选择属性。
- 单击 MSDTC 选项卡,然后单击安全性配置。
- 选中启用 XA 事务复选框,然后单击确定。这将使 MS DTC 服务重新启动。
- 再次单击确定以关闭属性窗口,然后关闭组件服务。
- 重新启动 SQL Server 以确保它与 MS DTC 更改同步。
在 Windows Vista、Windows
7、Windows Server 2008 R2 或 Windows Server 2012 上:- 选择。
- 选择。
- 右键单击本地 DTC,然后选择属性。
- 单击本地 DTC 属性窗口上的安全性选项卡。
- 选中启用 XA 事务复选框,然后单击确定。这将重新启动 MS DTC 服务。
- 再次单击确定以关闭“属性”窗口,然后关闭“组件服务”。
- 重新启动 SQL Server 以确保它与 MS DTC 更改同步。
- 配置 JDBC 分布式事务组件:
- 如果您尚未安装 IBM® Business Process Manager,请从 Microsoft Web 站点下载 Microsoft SQL Server JDBC Driver 4.0,并将其解压至任意文件夹。
- 如果已安装 IBM BPM,请转至 bpm_install_root\jdbcdrivers\SQLServer\xa,以获取以下步骤中需要的文件:
- 将 sqljdbc_xa.dll 文件复制到 SQL Server 计算机的 Binn 目录(对于缺省 SQL Server 安装,该位置为 C:\Program
Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn)。如果将 XA 事务与 32 位 SQL Server 一起使用,请使用 x86 文件夹中的 sqljdbc_xa.dll 文件,即使该 SQL Server 安装在 x64 处理器上也如此。如果将 XA 事务与 x64 处理器上的 64 位 SQL Server 一起使用,那么请使用 x64 文件夹中的 sqljdbc_xa.dll 文件。
- 在 SQL Server 上运行 xa_install.sql 数据库脚本。例如,从命令提示符中运行 sqlcmd
-i xa_install.sql。该脚本会安装由 sqljdbc_xa.dll 调用的扩展存储过程。这些扩展存储过程会针对 Microsoft SQL Server JDBC 驱动程序实施分布式事务和 XA 支持。您将需要以 SQL Server 实例管理员的身份运行该脚本。您可以忽略有关无法删除不存在的过程的错误。
- 遵循以下步骤来配置 Windows 认证:
- 找到 sqljdbc_auth.dll 文件。
如果您已安装 IBM BPM,请转至 BPM_install_root\jdbcdrivers\SQLServer\auth 目录以获取此文件。如果您尚未安装 IBM BPM,请在下载的 Microsoft JDBC 驱动程序包中找到 DLL 文件。
- 将 sqljdbc_auth.dll 文件复制到 SQL Server 计算机的 Binn 目录(对于缺省 SQL Server 安装,该位置为 C:/Program Files/Microsoft SQL
Server/MSSQL10_50.MSSQLSERVER/MSSQL/Binn)。如果您的 JRE 是 32 位,请使用 x86 文件夹中的 sqljdbc_auth.dll 文件,即使该 SQL Server 安装在 x64 处理器上也如此。如果您的 JRE 是 64 位,请使用 x64 文件夹中的 sqljdbc_auth.dll 文件。
下一步做什么
在配置 XA 事务之后,启动服务器之前,必须使用以下步骤配置您的 TCP/IP 连接:
- 从“开始”菜单中依次单击 。
- 展开
- 找到右侧的 TCP/IP。
- 双击 TCP/IP 并在协议选项卡下启用此协议。
- 双击 IP 地址选项卡,为各个已配置的 IP
地址启用 TCP 端口。
在某些情况中,您还可以在 IBM BPM
SystemOut.logs 中看到以下锁定超时错误:
Lock request time out period exceeded.; nested exception
is com.microsoft.sqlserver.jdbc.SQLServerException:
Lock request time out period exceeded.
要防止发生锁定超时(或者在锁定超时发生之后进行解决),您可以在事务服务上添加定制属性 ENABLE_XARESOURCE_TIMEOUT。事务服务将在全局事务中列出 XA 资源时为其提供相应的超时值。有关 ENABLE_XARESOURCE_TIMEOUT
定制属性的信息可在主题
事务服务定制属性中找到。