這兩天因為供應商在組件中HardCode了一個數據庫連接邏輯,導致遷移服務器的時候,悄悄切換到了一台未配置MSDTC的服務器,導致系統集成部分報錯,最終整個遷移以失敗回滾告終。在事后分析處理過程中嘗試了各種配置方案,特將這些記錄下來以備后用。
========== 原創作品 作者:未聞 出處:博客園 ==========
一、常見報錯
"該事務管理器已經禁止了它對遠程/網絡事務的支持。",“已禁用對分布式事務管理器(MSDTC)的網絡訪問。”,“與基礎事務管理器的通信失敗。”,“服務器XXX上的MSDTC不可用。”,“由於通信問題,MSDTC事務管理器無法將事務推送至目標事務管理器。”,“此事務已明地或暗地被確認或中止”
二、處理方式
使用MSDTC-Ping工具(提取碼: vgk8)測試服務器間的連通性,所有服務器都要測試,全部連通后問題基本就解決了,對於連不通的服務器,采用下列方式排查(我們問題處理那么久就是漏測了一個測試服務器)
1. 檢查防火牆,是否打開135端口(或者關閉防火牆)。
2. 檢查C:\Windows\System32\drivers\etc下的hosts文件,是否添加了對應服務器映射
# 目標IP地址 目標機器名 10.101.0.78 ERP-DBCENTER
3. 下載並執行自動修復MSDTC服務腳本(提取碼: g558)
4. Win+R,輸入comexp.msc,打開組件服務
5. 試試各服務器是否成功ping通,不通的參照上述方式檢查配置,基本都能相互連通了。
6. 如果ping通后仍然報錯,那你要重啟下服務器。
7. 基本沒見過還不行的,如果你如此幸運,那再試試SQLServer服務器屬性勾選需要分布式事務,只能幫你到這了。
三、參考資料
2. 基礎事務管理器的通信失敗