C#语言中TransactionScope类的使用(分布式事务)

来源:互联网 发布:php 五子棋源代码 编辑:程序博客网 时间:2024/04/29 07:06


如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项:
1、在项目中引用using System.Transactions命名空间(先要在添加net组件的引用);

2、具体示例如下:

        /**//// <summary>        /// 发送消息         /// </summary>        /// <param name="sendUserId"></param>        /// <param name="toUser">格式7FFA3AF2-E74B-4174-8403-5010C53E49A7|userName,7FFA3AF2-E74B-4174-8403-5010C53E49A7|userName</param>        /// <param name="content"></param>        /// <param name="sendedStatus">表示已送</param>        /// <returns></returns>        public static int sendMessage(string sendUserId, string toUser, string content, string sendedStatus)        {                       int receiveCount = 0;            TransactionOptions transactionOption = new TransactionOptions();            //设置事务隔离级别            transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;            // 设置事务超时时间为60秒            transactionOption.Timeout = new TimeSpan(0, 0, 60);            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, transactionOption))            {                try                {                    //在这里实现事务性工作     //发送消息                    insertMessage(sendUserId, toUser, content, sendedStatus);     //在接收信息表中插入记录                    receiveCount += insertReceiveMessage(userids[0], sendUserId, content, "0");                                       // 没有错误,提交事务                    scope.Complete();                }                catch (Exception ex) {                    throw new Exception("发送信息异常,原因:"+ex.Message);                }finally{                    //释放资源                    scope.Dispose();                  }                                           }            return receiveCount;        }


原创粉丝点击