我们经常在生产箱中遇到此错误。
Error Message: OLE DB provider "SQLNCLI" for linked server "......" returned message "No transaction is active."
每次问题似乎都以某种方式重设了 MSDTC 设置。即,我们发现这些选项未选中 Network DTC Access
, Allow Inboundand
Allow Outbound`。
即使我们再次检查这些选项,保存它,重新启动 MSDTC 服务,SQL 服务 -- 它也只能工作几天。之后,同样的问题再次弹出。如何找出为什么此设置会自动取消选中?
对于这种情况,我们的编码方式重要吗? tempdb 压力或事务日志增长是否会导致 msdtc 服务崩溃?
最佳答案
如果正确存储设置,崩溃的 MSDTC 不会导致设置被撤销。 有可能当您更改设置时,新配置未正确存储或配置以某种方式被覆盖。 当 MSDTC 正在运行以检查配置是否如您预期的那样时,我会查看注册表项,一旦再次出现 MSDTC 问题,我会将注册表与之前的注册表进行比较,以查看 a) 注册表是否正确更新第一名和 b) 查看注册表是否在某个时候被覆盖并撤销配置更改。
我的电脑\HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC
https://stackoverflow.com/questions/11680759/