消息7391无法执行操作,因为链接服务器的OLE DB提供程序无法启动分布式事务

时间:2014-07-22 05:49:38

标签: sql sql-server distributed-transactions msdtc

有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之间不起作用。

2 个答案:

答案 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中,使用管理员命令提示符,必须停止服务,并且必须重新启动服务器。

http://www.sqlwebpedia.com/content/msdtc-troubleshooting