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