导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。

时间:2022-01-01 00:33:28
写了个触发器,任务是在表192.168.10.2的HisDeviceStatus中插入数据时判断后插入到其他服务器上(局域网:192.168.10.5)数据库的HisDeviceStatus表中。
现在在192.168.10.2上插入数据后触发器报错:导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败: 0x8004d00e(XACT_E_NOTRANSACTION)。
如果我是直接在192.168.10.2上执行跨服务器插入语句是没问题的如下:
导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。
上图sql正常执行。
如果在192.168.10.2上插入后触发器报错:
导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。
各位老哥谁处理过?感激不尽。

12 个解决方案

#1


看看链接服务账号权限及配置

参照
http://bbs.csdn.net/topics/230087469

#2


引用 1 楼 roy_88 的回复:
看看链接服务账号权限及配置

参照
http://bbs.csdn.net/topics/230087469

感谢,正在试用版主的方法。

#3


检查自己的MSDTC设置是否正确,不会时就贴出自己的界面,在创建链接服务器时,在服务器选项把最后一项RPC启用事务升级设置为FALSE

#4


分布式配置复杂,限制也多。

#5


引用 1 楼 roy_88 的回复:
看看链接服务账号权限及配置

参照
http://bbs.csdn.net/topics/230087469

老哥创建链接提示语句错误 导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。

#6


你是不是没有启用命名管道?datasrc直接用IP地址试试

默认实例不需要指定实例名

#7


引用 2 楼 oArvin1234 的回复:
Quote: 引用 1 楼 roy_88 的回复:

看看链接服务账号权限及配置

参照
http://bbs.csdn.net/topics/230087469

感谢,正在试用版主的方法。

用了这个方法 ,插入还是报一样的错误。
链接语句:
导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。
触发器:
导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。

配置:
Distributed Transaction Coordinator服务开启     用户:NT AUTHORITY\NETWORK SERVICE
本地DTC 导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。

#8


引用 6 楼 roy_88 的回复:
你是不是没有启用命名管道?datasrc直接用IP地址试试

默认实例不需要指定实例名

代码贴上了 配置也贴上了。有时间的话帮忙给看看原因。

#9


你贴图时注意把相关安全信息涂了,别泄漏,如:密码之类
-----------
防火墙有没有关,或把135有没有设置例外

你的调用语句是否在外层加了事务

执行以下配置

e.g.
USE [master]
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'remote proc transaction promotion', @optvalue=N'false'
GO

#10


引用 9 楼 roy_88 的回复:
你贴图时注意把相关安全信息涂了,别泄漏,如:密码之类
-----------
防火墙有没有关,或把135有没有设置例外

你的调用语句是否在外层加了事务

执行以下配置

e.g.
USE [master]
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'remote proc transaction promotion', @optvalue=N'false'
GO


谢谢,提醒。
防火墙已关闭,没使用事务,执行SQL语句后还是不行。

#11


看你OPENDATASOURCE都能成功,说明账号密码应该没问题才对?
--------
SSMS检查链接服务器是否创建成功,能不能浏览数据库和表..

正常的情况下,不能调用再尝试重装MSDTC,用命令行
1、停止MSDTC服务:net stop msdtc
2、卸载MSDTC服务:msdtc -uninstall
3、重新安装MSDTC服务:msdtc -install

完成后重新设置MSDTC

#12


引用 11 楼 roy_88 的回复:
看你OPENDATASOURCE都能成功,说明账号密码应该没问题才对?
--------
SSMS检查链接服务器是否创建成功,能不能浏览数据库和表..

正常的情况下,不能调用再尝试重装MSDTC,用命令行
1、停止MSDTC服务:net stop msdtc
2、卸载MSDTC服务:msdtc -uninstall
3、重新安装MSDTC服务:msdtc -install

完成后重新设置MSDTC

谢谢,版主耐心帮忙。终于解决好了。卸载重装之后重启了两台服务器,再配置。

#1


看看链接服务账号权限及配置

参照
http://bbs.csdn.net/topics/230087469

#2


引用 1 楼 roy_88 的回复:
看看链接服务账号权限及配置

参照
http://bbs.csdn.net/topics/230087469

感谢,正在试用版主的方法。

#3


检查自己的MSDTC设置是否正确,不会时就贴出自己的界面,在创建链接服务器时,在服务器选项把最后一项RPC启用事务升级设置为FALSE

#4


分布式配置复杂,限制也多。

#5


引用 1 楼 roy_88 的回复:
看看链接服务账号权限及配置

参照
http://bbs.csdn.net/topics/230087469

老哥创建链接提示语句错误 导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。

#6


你是不是没有启用命名管道?datasrc直接用IP地址试试

默认实例不需要指定实例名

#7


引用 2 楼 oArvin1234 的回复:
Quote: 引用 1 楼 roy_88 的回复:

看看链接服务账号权限及配置

参照
http://bbs.csdn.net/topics/230087469

感谢,正在试用版主的方法。

用了这个方法 ,插入还是报一样的错误。
链接语句:
导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。
触发器:
导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。

配置:
Distributed Transaction Coordinator服务开启     用户:NT AUTHORITY\NETWORK SERVICE
本地DTC 导入 Microsoft 分布式事务处理协调器(MS DTC)事务失败,在线等急。弄了好久哎。。。。

#8


引用 6 楼 roy_88 的回复:
你是不是没有启用命名管道?datasrc直接用IP地址试试

默认实例不需要指定实例名

代码贴上了 配置也贴上了。有时间的话帮忙给看看原因。

#9


你贴图时注意把相关安全信息涂了,别泄漏,如:密码之类
-----------
防火墙有没有关,或把135有没有设置例外

你的调用语句是否在外层加了事务

执行以下配置

e.g.
USE [master]
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'remote proc transaction promotion', @optvalue=N'false'
GO

#10


引用 9 楼 roy_88 的回复:
你贴图时注意把相关安全信息涂了,别泄漏,如:密码之类
-----------
防火墙有没有关,或把135有没有设置例外

你的调用语句是否在外层加了事务

执行以下配置

e.g.
USE [master]
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'wyc', @optname=N'remote proc transaction promotion', @optvalue=N'false'
GO


谢谢,提醒。
防火墙已关闭,没使用事务,执行SQL语句后还是不行。

#11


看你OPENDATASOURCE都能成功,说明账号密码应该没问题才对?
--------
SSMS检查链接服务器是否创建成功,能不能浏览数据库和表..

正常的情况下,不能调用再尝试重装MSDTC,用命令行
1、停止MSDTC服务:net stop msdtc
2、卸载MSDTC服务:msdtc -uninstall
3、重新安装MSDTC服务:msdtc -install

完成后重新设置MSDTC

#12


引用 11 楼 roy_88 的回复:
看你OPENDATASOURCE都能成功,说明账号密码应该没问题才对?
--------
SSMS检查链接服务器是否创建成功,能不能浏览数据库和表..

正常的情况下,不能调用再尝试重装MSDTC,用命令行
1、停止MSDTC服务:net stop msdtc
2、卸载MSDTC服务:msdtc -uninstall
3、重新安装MSDTC服务:msdtc -install

完成后重新设置MSDTC

谢谢,版主耐心帮忙。终于解决好了。卸载重装之后重启了两台服务器,再配置。