文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>.Net下分布式事务处理的配置

.Net下分布式事务处理的配置

时间:2010-12-02  来源:天空是蓝的

二、解决方案

使用.NET Framework2.0中的事务处理类TransactionScope 类,在程序中需要添加事务处添加事务处理代码。

三、使用方式及源码

1、配置数据库服务器环境:
      1. 从“开始”菜单中,选择“运行”,输入“dcomcnfg”,回车。
      2. 展开“组件服务”对话框,选择“组件服务->计算机->我的电脑->Distributed Transaction Coordinator”,右击本地DTC属性,展开如下配置视窗。

配置如下:

2、配置开发服务器 MSDTC 以允许传出网络事务:

1从“开始”菜单中,选择“运行”,输入“dcomcnfg”,回车。

2展开“组件服务”对话框,选择“组件服务->计算机->我的电脑”,右击我的电脑属性,展开如下配置视窗。

      1. 在“MSDTC”选项卡上,单击“安全配置”,配置如下。

3、代码调用

(1)引入命名空间:System.Transactions。

(2)添加事务处理代码如下(只是一个测试实例)

using (TransactionScope scope = new TransactionScope()) 
           { 
               string strCache = @"Data Source=192.168.128.33;Initial Catalog=MLEC_CACHE;Persist Security Info=True;User ID=sa;Password=admin_123456;connection reset=false;connection lifetime=50;min pool size=1;max pool size=500"; 
               string strFormal = @"Data Source=192.168.128.33;Initial Catalog=MLEC_FORMAL;Persist Security Info=True;User ID=sa;Password=admin_123456;connection reset=false;connection lifetime=50;min pool size=1;max pool size=500"; 
               string strSqlCache = "Update SalesMix Set prdDesVendor='bb' Where id=25"; 
               string strSqlFormal = "Update SalesMix Set prdDesVendor='cc' Where id=27"; 
               SqlConnection connCache = new SqlConnection( strCache ); 
               SqlConnection connFormal = new SqlConnection( strFormal ); 

               SqlCommand commandCache = new SqlCommand( strSqlCache, connCache ); 
               SqlCommand commandFormal = new SqlCommand( strSqlFormal, connFormal ); 

               try 
               { 
                   connCache.Open(); 
                   connFormal.Open(); 

                   commandCache.ExecuteScalar(); 
                   commandFormal.ExecuteScalar(); 

                   connCache.Close(); 
                   connFormal.Close(); 

                   scope.Complete(); 
               } 
               catch (Exception) 
               { 
               } 
               finally 
               { 
                   if (connCache.State != System.Data.ConnectionState.Closed) 
                   { 
                       connCache.Close(); 
                   } 
                   if (connFormal.State != System.Data.ConnectionState.Closed) 
                   { 
                       connFormal.Close(); 
                   } 
               } 

               return 1; 
           }

四、总结

使用上述方式代码调用方便简单,可以解决.Net程序中简单的的分布式事务处理问题(数据库服务器与应用程序服务器在同一域内,可以直接按照上述方式处理。如果在不同域内,还需要另外配置)。TransactionScope 还有许多可配置的属性,MSDN中有相关内容,在此不一一列举了。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载