触发器报错:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务

时间:2021-07-18 01:10:20
实现功能:在当前数据库中Insert数据时,同时在外地的数据库中也增加,
同样环境下别的数据表成功增加,说明应该不是网络、MSDTC等的问题。
或脚本问题?或执行时间过长问题?

12 个解决方案

#1


我修改触发器脚本测试:把跨服务器修改为同服务器,同步没问题,说明SQL脚本没问题...
可能是因为执行时间过长吗?

#2


数据库或者Event Log有Timeout的报错吗?另外可以尝试DTC Trace:
http://blogs.msdn.com/b/distributedservices/archive/2009/02/07/the-hidden-tool-msdtc-transaction-tracing.aspx

#3


引用 2 楼 SmithLiu328 的回复:
数据库或者Event Log有Timeout的报错吗?另外可以尝试DTC Trace:
http://blogs.msdn.com/b/distributedservices/archive/2009/02/07/the-hidden-tool-msdtc-transaction-tracing.aspx

在查询分析器中执行Insert脚本
报错就是标题中的“Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务”
或者是:“SQL Server 无法向Microsoft 分布式事务处理协调器(MS DTC)注册为此事务的资源管理器。客户端或资源管理器可能已停止该事务”
没有超时的报错...

关于Event Log不太了解,我参照那网址中的方法,用那个批处理文件打开日志时,提示tracefmt.exe is missing

是不是还和数据库版本有关系?现在客户用的是SQL Server 2005 RTM

#4


MSDTC 配置好了吗?数据量小的时候有没有问题?

#5


是的,要同步三个表,另外两个没问题。

#6


还是找不到原因的话抓MSDTC TRACE吧

#7


我参照2L网址中的方法,用那个批处理文件打开日志时,提示tracefmt.exe is missing
是不是还和数据库版本有关系?现在客户用的是SQL Server 2005 RTM 

#8


要实现功能:在当前数据库中Insert数据时,同时在外地的数据库中也增加.
使用SQL Server service broker,在安全性,稳定性方面比较好。

#9


但是SSB无法做到事务吧

#10


将ROLLBACK TRAN语句
放在 RAISERROR语句下面,而不是上面

#11


当初做项目时提的问题,后来……就没有后来了……
结贴。

#12


这个问题解决了吗?我也遇到同样的问题,求解 触发器报错:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务

#1


我修改触发器脚本测试:把跨服务器修改为同服务器,同步没问题,说明SQL脚本没问题...
可能是因为执行时间过长吗?

#2


数据库或者Event Log有Timeout的报错吗?另外可以尝试DTC Trace:
http://blogs.msdn.com/b/distributedservices/archive/2009/02/07/the-hidden-tool-msdtc-transaction-tracing.aspx

#3


引用 2 楼 SmithLiu328 的回复:
数据库或者Event Log有Timeout的报错吗?另外可以尝试DTC Trace:
http://blogs.msdn.com/b/distributedservices/archive/2009/02/07/the-hidden-tool-msdtc-transaction-tracing.aspx

在查询分析器中执行Insert脚本
报错就是标题中的“Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务”
或者是:“SQL Server 无法向Microsoft 分布式事务处理协调器(MS DTC)注册为此事务的资源管理器。客户端或资源管理器可能已停止该事务”
没有超时的报错...

关于Event Log不太了解,我参照那网址中的方法,用那个批处理文件打开日志时,提示tracefmt.exe is missing

是不是还和数据库版本有关系?现在客户用的是SQL Server 2005 RTM

#4


MSDTC 配置好了吗?数据量小的时候有没有问题?

#5


是的,要同步三个表,另外两个没问题。

#6


还是找不到原因的话抓MSDTC TRACE吧

#7


我参照2L网址中的方法,用那个批处理文件打开日志时,提示tracefmt.exe is missing
是不是还和数据库版本有关系?现在客户用的是SQL Server 2005 RTM 

#8


要实现功能:在当前数据库中Insert数据时,同时在外地的数据库中也增加.
使用SQL Server service broker,在安全性,稳定性方面比较好。

#9


但是SSB无法做到事务吧

#10


将ROLLBACK TRAN语句
放在 RAISERROR语句下面,而不是上面

#11


当初做项目时提的问题,后来……就没有后来了……
结贴。

#12


这个问题解决了吗?我也遇到同样的问题,求解 触发器报错:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务