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

-Arvin 2017-01-03 09:28:43
写了个触发器,任务是在表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上执行跨服务器插入语句是没问题的如下:

上图sql正常执行。
如果在192.168.10.2上插入后触发器报错:

各位老哥谁处理过?感激不尽。
...全文
1246 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2017-01-03
  • 打赏
  • 举报
回复
看你OPENDATASOURCE都能成功,说明账号密码应该没问题才对? -------- SSMS检查链接服务器是否创建成功,能不能浏览数据库和表.. 正常的情况下,不能调用再尝试重装MSDTC,用命令行 1、停止MSDTC服务:net stop msdtc 2、卸载MSDTC服务:msdtc -uninstall 3、重新安装MSDTC服务:msdtc -install 完成后重新设置MSDTC
-Arvin 2017-01-03
  • 打赏
  • 举报
回复
引用 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语句后还是不行。
中国风 2017-01-03
  • 打赏
  • 举报
回复
你贴图时注意把相关安全信息涂了,别泄漏,如:密码之类 ----------- 防火墙有没有关,或把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
-Arvin 2017-01-03
  • 打赏
  • 举报
回复
引用 6 楼 roy_88 的回复:
你是不是没有启用命名管道?datasrc直接用IP地址试试 默认实例不需要指定实例名
代码贴上了 配置也贴上了。有时间的话帮忙给看看原因。
-Arvin 2017-01-03
  • 打赏
  • 举报
回复
引用 2 楼 oArvin1234 的回复:
[quote=引用 1 楼 roy_88 的回复:]
看看链接服务账号权限及配置

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

感谢,正在试用版主的方法。[/quote]
用了这个方法 ,插入还是报一样的错误。
链接语句:

触发器:


配置:
Distributed Transaction Coordinator服务开启 用户:NT AUTHORITY\NETWORK SERVICE
本地DTC

中国风 2017-01-03
  • 打赏
  • 举报
回复
你是不是没有启用命名管道?datasrc直接用IP地址试试 默认实例不需要指定实例名
-Arvin 2017-01-03
  • 打赏
  • 举报
回复
引用 1 楼 roy_88 的回复:
看看链接服务账号权限及配置

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

老哥创建链接提示语句错误
xiaoxiangqing 2017-01-03
  • 打赏
  • 举报
回复
分布式配置复杂,限制也多。
中国风 2017-01-03
  • 打赏
  • 举报
回复
检查自己的MSDTC设置是否正确,不会时就贴出自己的界面,在创建链接服务器时,在服务器选项把最后一项RPC启用事务升级设置为FALSE
-Arvin 2017-01-03
  • 打赏
  • 举报
回复
引用 1 楼 roy_88 的回复:
看看链接服务账号权限及配置 参照 http://bbs.csdn.net/topics/230087469
感谢,正在试用版主的方法。
中国风 2017-01-03
  • 打赏
  • 举报
回复
看看链接服务账号权限及配置 参照 http://bbs.csdn.net/topics/230087469
-Arvin 2017-01-03
  • 打赏
  • 举报
回复
引用 11 楼 roy_88 的回复:
看你OPENDATASOURCE都能成功,说明账号密码应该没问题才对? -------- SSMS检查链接服务器是否创建成功,能不能浏览数据库和表.. 正常的情况下,不能调用再尝试重装MSDTC,用命令行 1、停止MSDTC服务:net stop msdtc 2、卸载MSDTC服务:msdtc -uninstall 3、重新安装MSDTC服务:msdtc -install 完成后重新设置MSDTC
谢谢,版主耐心帮忙。终于解决好了。卸载重装之后重启了两台服务器,再配置。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧