分布式事务管理器(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