库存管理系统开发与设计-文献翻译.docVIP

库存管理系统开发与设计-文献翻译.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
库存管理系统开发与设计-文献翻译

重 庆 理 工 大 学 文 献 翻 译 翻译译文: 轻量级事务管理器 在计算机领域,事务是一种离散的动作—它的动作要么全做要么全不做。如果在某个资源上发起的是事务没有全部完成,则有资源管理器确保资源恢复到事务开始之前的状态。分布式事务会跨越多个资源,所以会涉及多个资源管理器。Windows操作系统在多年前就已经加入了一个分布式事务管理器,即Microsoft分布式事务协调器(Microsoft Distributed Transaction Coordinator)。 .NET Framework1.0和1.1版本提供了两种事务编程的方法。其中一种方法是由ADO.NET提供的,抽象类System.Data.Common.DbConnection中定义了一个BeginTransaction()方法,通过该方法可以启动一个事务,而该事务是由DbConnection的具体实现所提供的资源管理器来控制的。另外一种方法是由Enterprise Services提供的,它提供了System.EnterpriseServices.Transaction的特性,任何的System.EnterpriseServices.ServiecedComponent的子类都可以添加这个特性,借助这个特性,将这个子类的任何方法中的任何正在执行的代码添加到一个由Microsoft分布式事务吃力协调器管理的事务中。 ADO提供了一种显示的事务编程方式,而Enterprise Service提供了一种声明式的方法。然而,在这两种方式之间选择的同时,开发人员还需要选择事务应该如何处理。使用ADO.NET的方法,事务由单一的资源管理器来处理,而使用Enterprise Services的方法时,,无论事务是否为分布式,Microsoft分布式事务协调器总是会被使用,从而增加了额外开销。 .NET2.0引入了轻量级事务管理器(Lightweight Transaction Manager),即System.Transactions.TransactionManager.就像它的名字说的一样,轻量级事务管理器具有最小的开销。“在微软对SQL Server2005所进行的标准性能测试中,在对比使用轻量级事务管理器和直接使用本地事务事,没有发现这2者在统计上面有性能的差别。”如果一个事务里只有一个资源管理器,轻量级事务管理器可以让资源管理器来管理该事务,而它自己只负责监视它。如果轻量级事务管理器发现有其他的资源管理器被加入到事务中,轻量级事务管理器会让原来的那个资源管理器放弃控制权,并且将控制权移交给分布式事务协调器。将控制权在事务还在进行时转移给分布式事务处理协调器额这个过程就叫做事务升级(promotion of a transaction). System.Transaction这个命名空间允许显式或者隐式的使用轻量级事务管理器进行事务编程,下面的例子展示了如何显示的使用Systtem.Transaction.CommitableTransaction类: CommitableTransaction transaction = new CommittableTransaction(); using(SqlConnection myConnection = new SqlConnection(myConnectionString)) { myConnection.Open(); myConnection.EnlistTransaction(tx); //Do transactional work //Commit the transaction: transaction.Close(); } 隐式的方式会使用System.Transactions.TransactionScope这个类。 using(TransactionScope scope = new TransactionScope) { //Do transactional work: //… //Since no errors have occurred, commit the transaction: scope.Complete(); } 在System.Transactions.TransactionScope实例的using快中执行的代码会隐式的包含到一个事务中,这也是这个事务编程方式被称之为隐式的原因。System.Transactions.TransactionScope市里的Complete()方法只能被调用一次,如果它被调用了,事务就会被会被提交。 System.Transactions命名空间还提供了一种编写自己的资源管理器的方法。但是对于学习WCF,我们只要知道轻量级

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档