• TransactionScope 分布式事务


      /// 发送消息
            
    ///</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>
            publicstaticint 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) {
                       
    thrownew Exception("发送信息异常,原因:"+ex.Message);
                    }finally{
                        //释放资源
                        scope.Dispose();
                      }
                                  
                }

               
    return receiveCount;
            }

  • 相关阅读:
    人生应该接受的教育
    【转】俞军给淘宝产品经理的分享
    【转】伪O2O已死?2016年实体零售将迎来真正的O2O
    【转】一个测试工程师的2015总结和2016年小展望
    【转】移动App测试中的最佳做法
    Net作业调度(一) -Quartz.Net入门
    Quartz学习
    Newtonsoft.Json.dll
    用C#实现Base64处理,加密解密,编码解码
    mysql 连接数的最大数
  • 原文地址:https://www.cnblogs.com/fx2008/p/2882703.html
Copyright © 2020-2023  润新知