首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DTC的两个问题

DTC的两个问题
EN

Stack Overflow用户
提问于 2020-06-07 19:30:02
回答 1查看 1.6K关注 0票数 2

我试图在两个SQL服务器之间建立一个分布式事务。我的任务是从服务器A获取一些数据,转换它们,保存在服务器B上,并作为更新服务器A的最后一步。

当我执行这个T语句时

代码语言:javascript
复制
BEGIN DISTRIBUTED TRANSACTION TestTran
SELECT
*
FROM dbo.test

我发现了一个错误:

OLE DB提供程序"MSOLEDBSQL“用于链接服务器”xx.xx“返回的消息"No transaction是活动的.”。Msg 7391,第16级,国家2,第2线

第一个服务器(服务器A)是server 2008 R2。Microsoft 2008 R2 (SP3) - 10.50.6220.0 (X64)

第二个服务器是Microsoft 2019 (RTM) (KB4517790) - 15.0.2070.41 (X64) 2019年10月28日19:56:59版权(C) 2019 Microsoft Edition (64位) on Windows10Enterprise10.0 (Build 17763:)

在这两个服务器上都配置了MS DTC,如下图所示

DTC配置

这两个防火墙都配置为允许DTC,如下面的防火墙配置图所示

我不确定如何使用DTCPing,因为DTCPing只允许NETBIOS名称。我将服务器IP地址放在主机文件中,但是DTCPing返回一个错误,如下图所示。DTCPing错误

这只是我困难的开始。

我的第二个任务是在服务器A(与上面所示的相同)和另一个我权限非常有限的服务器之间建立一个分布式事务。让我们命名服务器-服务器C。

当我试图建立一个分布式事务时,我得到了以下错误。

OLE DB提供程序"SQLNCLI10“用于链接服务器"XXXX”返回消息“合作伙伴事务管理器已禁用其对远程/网络事务.的支持”。

在我看来,服务器C配置不正确,我需要与本地管理员联系。

当我打电话给本地管理员时,我必须更加具体。

所以,结束吧。对于分布式事务,我有两个困难。

  1. 没有事务是活动的,这是一条错误消息。
  2. 第二个错误消息是合作伙伴事务管理器禁用了它对分布式事务的支持。

有什么麻烦?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2021-08-27 12:34:16

DTC似乎不喜欢为链接服务器使用IP地址。上面的DTCPing说明,它需要NetBIOS名称,以及它如何不接受IP地址,给了我一个提示,我需要用它来解决我自己的挑战。

考虑有两个服务器,

  • 在服务器1中(称为10.0.0.1 - srvServerA)
  • 在服务器2中(称为192.168.10.1 - srvServerB)

两者都在不同的网络上,通过VPN连接,两者之间没有DNS。

要解决这个问题:

  • 在服务器1上,添加指向服务器2名称的主机入口
  • 在服务器2上,添加指向服务器1名称的主机条目。
  • 重新添加您的链接服务器在两个服务器上,使用的名称,而不是IP,突然DTC将停止呻吟。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62250570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档