正式環境SQL Server發生”伺服器無法繼續使用交易(The server failed to resume the transaction. Desc:4800000002 )”錯誤。
前一陣子,我有一台正式機突然發生很扯”伺服器無法繼續使用交易”的錯誤,
是一支巢狀store procedure出錯,主SP裡面子SP有一段使用Linked Server存取其他資料庫運算結果後塞回主SP某一temp table(insert into #mytabel children_SPXXX),
這樣寫法在我其他正式環境SQL Server皆正常,唯獨這台SQL Server2008就是有問題,
我也模擬測試SQL2012、SQL2014也正常,查看Error Log也沒有更詳細訊息,使用profile側錄但結果卻一切正常,
後來測試註解掉使用Linked Server存取其他資料庫這段script後即正常,這時我開始比對該台MSDTC設定是否有被異動過,
由於我AP有使用分散式交易,但唯獨該SP出錯,所以防火牆和NetBIOS名稱解析都是沒問題的,
比對MSDTC相關設定果然也都相同,但該SP並無參與遠端SQL Server任何交易,所以照理無須使用MSDTC來掌握該交易,
最後設定LinkedServer取消”啟用RPC的分散式交易促銷”才修復該錯誤,後續如有時間再來詳細深入真正原因。