原:现在一个mule流程需要同时访问多个数据库且保证事务的完整性,需要修改MS SQL数据库支持XA。

    MS SQL数据库 数据库默认是不支持XA 数据源和 Microsoft 分布式事务处理协调器 (MS DTC),现在需要配置使用 XA 数据源和 Microsoft 分布式事务处理协调器 (MS DTC) 来处理分布式事务过程如下:

  首先:配置 JDBC 分布式事务组件: 

  JDBC 分布式事务组件包含在 JDBC 驱动程序安装的 xa 目录中。这些组件包括 xa_install.sql 和 sqljdbc_xa.dll 文件。安装Microsoft SQL Server JDBC Driver 3.0过程如下: 

  1. 下载Microsoft SQL Server JDBC Driver:sqljdbc_3.0.1301.101_enu.exe或sqljdbc_4.2.6225.100_enu.exe,地址http://www.microsoft.com/en-us/download/details.aspx?id=21599或https://www.microsoft.com/en-us/download/details.aspx?id=11774
  2. 运行sqljdbc_3.0.1301.101_enu.exe,解压缩到文件夹Microsoft SQL Server JDBC Driver 3.0  。
  3. 拷贝解压缩后的64位的sqljdbc_xa.dllSQLServer Binn目录下:
  4.   在SQL Server Management Studio中运行xa_install.sql,生成相关sp
  5. 检查对应SP是否生成,例如xp_sqljdbc_xa_init
  6. 授权用户访问执行这些sp 

USE master

GO

EXEC sp_grantdbaccess 'appuser', 'appuser'

GO

EXEC sp_addrolemember [SqlJDBCXAUser], 'appuser'

 

       验证:用'appuser'登陆ssms执行SP验证

 

exec xp_sqljdbc_xa_init 

Command(s) completed successfully.

  其次,运行 MS DTC 服务

  在服务管理器中,MS DTC 服务配置为“自动启动”(PRC SAM服务也一样需要自动且已经启动,服务器已经是可用状态,不需要修改),以确保其在启动 SQL Server 服务时运行。若要为 XA 事务启用 MS DTC,必须执行以下步骤:

  1. 从“开始 ”、“管理工具”、 打开“组件服务”。
  2. 依次展开“组件服务”、“计算机”、“我的电脑”和“分布式事务处理协调器”。
  3. 右键单击“本地 DTC”,再选择“属性”。
  4. 单击“本地 DTC 属性”对话框上的“安全”选项卡。
  5. 选中“启用 XA 事务”复选框,然后单击“确定”。这将使 MS DTC 服务重新启动。
  6. 再次单击“确定”以关闭“属性”对话框,然后关闭“组件服务”。
  7. 停止 SQL Server,然后重新启动,确保它与 MS DTC 更改同步。

 

posted @ 2015-07-03 16:55  Vivydata  阅读(376)  评论(0编辑  收藏  举报