分布式事務管理器(MSDTC)的實現方法


分布式事務管理器(MSDTC)的實現方法其實很簡單就那么幾行代碼:

using (TransactionScope scope = new TransactionScope())
{

  //此處寫業務邏輯代碼,如:

  //trancation one do something...
    var dbo1 = DBFactory.GetDBFacade(DBConnectionStringName.YSL_BusinessTravelTrade_ReadWrite);
    string sql1 = "UPDATE dbo.TestUser SET name='ccc' WHERE id = 2";
    dbo1.ExecuteNonQuery(CommandType.Text, sql1);
    //trancation two do something...
    var dbo = DBFactory.GetDBFacade(DBConnectionStringName.YSL_BusinessTravel_ReadWrite);
    string sql = "UPDATE dbo.TestUser SET name='ccc' WHERE id = 2";
    dbo.ExecuteNonQuery(CommandType.Text, sql);
    //submit
    scope.Complete();
}

 

但是,分布式事務管理器(MSDTC)的配置方法就相對比較復雜了:

Microsoft .NET Framework 4.5 支持的操作系統:

Windows 7 Service Pack 1, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2

 

下面以XP系統服務器配置為例

1、啟動DTC服務:

 

windows控制面版à管理工具à服務àDistributed Transaction Coordinatoà屬性à啟動

 

注:如果啟動失敗,可能是因為丟失了日志文件,重新創建日志文件,再啟動就行了。重新創建 MSDTC 日志,並重新啟動服務的步驟如下:

 

(1) 單擊"開始",單擊"運行",輸入 cmd 后按"確定"。

 

(2) 輸入:msdtc -resetlog (注意運行此命令時,不要執行掛起的事務)

 

(3) 最后輸入:net start msdtc 回車,搞定!

2、配置DTC的方法

控制面板 -> 管理工具 -> 組件服務

 

 

 

 

注:帳戶一定得是:NT AUTHORITY\NETWORK SERVICE

如果沒有,需要進行如下設置:點擊“瀏覽”->”高級”->”立即查找”->選中” NT AUTHORITY\NETWORK SERVICE”->點擊”確定”

 

 

 

3、防火牆設置

控制面板-> Windows防火牆(WEB服務器和SQL服務器都需要配置此項)

 

 

 

 

4、ms sql server配置:

 

 

 

以上內容配置完成后,應該就OK了,但還是失敗的話,就需要更詳細的找問題了,以下是一些看端口的方法,僅供參考:

操作方法:運行cmd,進入DOS窗口,輸入命令 netstat -na 回車,於是就會顯示本機連接情況及打開的端口,如圖1。其中Local Address代表本機IP地址和打開的端口號(圖中本機打開了135端口)Foreign Address是遠程計算機IP地址和端口號,State表明當前TCP的連接狀態,圖中LISTENING是監聽狀態,表明本機正在打開135端口監聽,等待遠程電腦的連接。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM