你好,我目前有两个带有 SQL 2K8R2 的集群(W2K8R2),都启用了 MSDTC 集群服务。
我已使用所有复选框配置了 MSDTC,并且需要“传入呼叫者身份验证”和“NT AUTHORITY\NetworkService”作为 DTC 登录帐户。
我还在两个集群的所有集群节点上配置了注册表,以将端口限制为 5000-5100(来自此知识库文章http://support.microsoft.com/kb/250367)
这些机器不在同一个域中,但存在信任关系,它们之间有防火墙,防火墙上的机器之间允许使用端口 1433、1434、135 和 5000-5100,但是这些端口 (5000-5100) 似乎没有被使用,当我尝试从远程进程向临时表插入数据时,我收到“没有活动事务”的消息。如果我运行 DTCTEST,我会得到:事务已被隐式或显式提交或中止。
我快疯了,任何帮助我都感激不尽。谢谢,加布里埃尔
答案1
我的猜测是防火墙不允许机器与目标域上的域控制器通信。发出请求的计算机需要能够与受信任域上的 DC 通信以验证用户授权请求(请参阅:http://support.microsoft.com/kb/832017)。
您是否为列出的端口打开了 TCP 或 UDP?在您尝试使用 Cluster DTC 时,防火墙上是否有任何数据包被丢弃?
答案2
问题在于防火墙阻止对 MSDTC 群集服务的访问,这是因为在群集上 MSDTC 有自己的 IP 地址,而防火墙不允许这样做。
我已经授予 SQL IP 而不是 MSDTC 的访问权限,现在是正确的。
谢谢!!