CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  分析与设计

请教,.net中的事务

楼主o2delphi(花满楼)2005-04-01 21:45:22 在 .NET技术 / 分析与设计 提问

今天在博客园(http://www.cnblogs.com)看到一篇文章,讲的是分布式事务的问题。问题描述如下:系统的数据库有两个,一个是SQL   Server,一个是Oracle。往这两个数据库里的一张表里Insert一条记录,要保证这两个Insert在一个事务里。有人提出了如下代码:  
  try    
  {    
          ..  
          sqlCommand.ExecuteNonQuery()    
          ..    
          OracleCommand.ExecuteNonQuery()      
             
          sqlTrans.Commit();    
          oracleTrans.Commit();     //两个事务提交    
     
  }catch    
  {    
          sqlTrans.Roolback();    
          oracleTrans.Roolback();       //两个事务回滚    
     
  }final    
  {    
        sqlTrans.Close();    
        oracleTrans.Close();      
  }  
  但如果sqlTrans.Commit()后,oracleTrans.Commit()发生异常了,事务的效果还是没有达到。  
  听同事讲,在JAVA中容器可以处理这种事务。那在.net中如果出现这种情况,如何解决呢?讨论即给分。 问题点数:100、回复次数:10Top

1 楼saucer(思归)回复于 2005-04-01 22:33:27 得分 30

no,   you   should   be   using   ServicedComponent   or   ServiceDomain   class,   see   the   reference   articles   in   my   blog  
   
  http://blog.joycode.com/saucer/archive/2005/01/05/42381.aspxTop

2 楼zhongwanli(㊣【为了老婆,二次重构____然后升★★】㊣)回复于 2005-04-04 14:17:49 得分 5

SeeingTop

3 楼phinuxmao()回复于 2005-04-08 17:10:55 得分 10

用COM+的事物控制功能Top

4 楼qqqdong()回复于 2005-04-08 23:35:50 得分 20

[WebMethod(TransactionOption=TransactionOption.Required)]  
  public   ReturnCode   SeatModifyTicketPath(......)  
  {  
      try  
      {  
          ContextUtil.EnableCommit();  
          .....  
          ContextUtil.SetComplete();  
          return   ReturnCode.OK;  
  }  
  catch   (   Exception   error   )  
  {  
        ContextUtil.SetAbort();  
        return   AppException.Process(error);  
  }  
  finally  
  {  
  if   (   o   !=   null   ) o.Dispose();  
  }  
  }Top

5 楼naturalth(自我批判,是思想、品德、素质、技能创新的优良工具)回复于 2005-04-09 11:33:26 得分 5

建议你看看这个:http://www.uml.org.cn/opensource/websharp/Document/WebsharpAOP.htm  
  我也是刚刚学AOPTop

6 楼volcano3035112(火山)回复于 2005-04-12 08:15:42 得分 10

在.net中使用自动事务管理   ,可以跨越ADO.NET的连接事务,在一个方法级内实现事务管理。  
  你可以参考MSDN中关于自动事务的内容。Top

7 楼kuzhuxuan()回复于 2005-04-22 14:58:36 得分 5

如volcano3035112(火山)   所说,.net本身具有事务管理,但应相对而言,较为浪费资源。Top

8 楼brando_beat(Eの懒龙)回复于 2005-04-23 15:29:31 得分 5

upTop

9 楼tingpig(汀)回复于 2005-04-25 17:45:42 得分 10

把事务封装在com+中,用ServicedComponent类Top

10 楼o2delphi(花满楼)回复于 2005-05-03 21:58:31 得分 0

看来在.net中,跨数据库的事务用COM+还是正道。Top

相关问题

  • 在.NET中能否不用COM+实现分布式事务控制?
  • .Net中数据库连接事务,没钱了,少给几分行不行?
  • 在C#.NET中如何创建一个数据库操作事务!谢谢
  • ADO中事务的问题
  • oracle 中的事务嵌套
  • c#中事务怎么用?
  • 在C#中使用事务。
  • 请教事务处理中的事务回滚
  • EJB中如何处理事务
  • 请问在pb中事务的管理

关键词

  • .net
  • 数据库
  • 管理
  • 事务
  • oracletrans
  • sqltrans
  • contextutil
  • commit

得分解答快速导航

  • 帖主:o2delphi
  • saucer
  • zhongwanli
  • phinuxmao
  • qqqdong
  • naturalth
  • volcano3035112
  • kuzhuxuan
  • brando_beat
  • tingpig

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo