Reason for System.Transactions.TransactionInDoubtException提到交易被提升为MSDTC的三个原因。前两个是众所周知的,但第三个原因如下:MSDTC促销的原因
3.如果您有“尝试/ catch(重试超时/死锁重试)”逻辑,您的代码中运行,那么这可以当事务处于System.Transactions.TransactionScope中时会导致问题,因为SQL Server在超时或死锁发生时自动回滚事务的方式。
我在其中一个服务器应用程序处于严重负载(SQL 2012)时看到此行为。我试过Google广泛搜索,但我没有找到更多信息。有没有人有任何关于此主题的其他信息?
感谢,
拉里
你遇到了什么症状?只是例外?为什么这个例外是一个问题?你的重试逻辑应该吞下它。 – usr
我们有嵌套交易。内层有重试循环。在严重负载下,重试循环超时,回滚,升级到MSDTC,重试。大多数时候它成功了,但有时我也会遇到MSDTC故障。 MSDTC故障可能导致其中一个事务回滚,而另一个则不会。 – LESchwartz
您是否知道SQL Server不支持System.Transactions支持嵌套事务? – usr