有3个Sql Server。示例服务器A,服务器B和服务器C.
-DTC正在所有机器中运行。
- 所有三台机器中的本地DTC属性:
-Network DTC Access
-Allow Inbound
-Allow Outboud
-No Authentication Required
-Enable XA Transaction
-Enable SNA LU 6.2 Transaction
-Account: NT AUTHORITY\NetworkService
对于链接服务器
,RPC和RPC OUT为true服务器A:Windows 8,服务器B:Windows 7和服务器C:Windows 7
所有三台服务器的防火墙都已关闭
服务器不在域中。
添加"在"上设置xact_abort在查询中。
现在,从服务器A分布式事务在两台机器上都能正常工作。
From server B Distributed transaction work in Server A only.
From server c Distributed transaction work in Server A only.
问题:分布式事务在服务器B和C之间不起作用。
答案 0 :(得分:0)
您可能在A \ B \ C服务器上配置防火墙时遇到问题。您可以尝试暂时禁用防火墙来检查这一点。有关“启用网络DTC访问”的详细信息,请参阅以下link。
答案 1 :(得分:0)
此问题是由于服务器B和服务器C的MSDTC中具有相同的唯一标识。这意味着两个MS DTC将无法相互通信。如果使用不受支持的克隆工具克隆其中一个系统,则通常会出现此问题。 MS DTC要求使用支持的克隆工具(如SYSPREP)克隆系统。正在运行' msdtc -uninstall'然后' msdtc -install'从命令提示符将解决问题。注意:运行' msdtc -uninstall'将导致系统丢失所有MS DTC配置信息。注意:在Windows 2008中,使用管理员命令提示符,必须停止服务,并且必须重新启动服务器。