.net分布式事务处理应用

.net分布式事务处理应用

ID:19592593

大小:456.00 KB

页数:10页

时间:2018-10-03

.net分布式事务处理应用_第1页
.net分布式事务处理应用_第2页
.net分布式事务处理应用_第3页
.net分布式事务处理应用_第4页
.net分布式事务处理应用_第5页
资源描述:

《.net分布式事务处理应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.NET分布式事务处理的应用摘要本文阐述了事务处理的重要性与.net事务处理的演变,以具体的实例讲述了分布式事务在.net编程中的应用。为处理分布式事务应用设计提供了完善的解决方案和具体的操作步骤。关键词事务分布式事务处理引言事务是执行一连串工作的逻辑单元,事务具有不可分性,事务中的所有工作项目完成,才算是一个完整的事务,假设事务中有1000项工作,其中的999项完成,只有一项没有完成都算事务失败。事务中的各项工作组成了一个整体,事务完成后全部的数据必须保持稳定的一致性状态,事务完成后数据必须正确无误。并行事务间相互隔离,并行事务所作的修改,必须与任何其他并行事务所做的修改隔离,事务

2、所辨认的数据不能处于另一事务修改之前的状态,只能是其他事务的完成状态。这样才能够保证业务处理中数据的正确。事务处理最为典型的实例是银行处理两个账户间的转账业务。假设需要从A账户转账10000元到B账户。我们需要做的是将A账户减去10000元,同时需要在B账户加10000元。这两步工作就需要在一个事务中完成。才能保证转账的成功或者失败,以有效的避免只减不加与只加不减错误发生。事务处理最早是在数据库系统中应用的,在一个数据库中数据库系统提供了事务处理,为正确的进行数据业务处理提供了可能。然而随着应用需求的扩大。业务处理常常需要对存放在不同数据库中的数据进行事务化处理,也就是需要进行分布式

3、事务处理。为了适应新需求,微软.NET开发工具在不断的改进与提高事务处理技术,以适应新的需求。.net在2008版与2003版就有明显的改进。在.NET2008中事务处理更加简单易用。分布式事务处理在应用开发中常需要对存放在同一个物理服务器中不同数据库的数据进行事务化处理,或者是需要对分布在不同地域的多台数据库中的数据进行事务化处理,以上两种功能情况都需要进行分布式事务处理,其中的数据库系统可能结构不同,如一个应用sqlserver库,另一个应用oracle数据库。假如我们需要在两家银行间进行转账业务,两家银行应用的数据库服务器不同,进行转账业务就需要分布式事务处理,以保证两个银行账

4、户间的收支平衡。不发生错误的业务处理。(实际在两个银行间的转账业务会用到3台服务器的,两个银行都是通过银联来转账的,这样可以避免一家银行处理与多家银行间进行业务处理复杂性),同样应用需求还很多,其共同的特点是需要在保证多台服务间的数据能够同时正确修改,或者不做修改。保护数据的完整性。分布式事务处理就是专门解决这类问题的技术系列。ADO.NET事务处理的演变传统事务显式事务声明式事务SqlTransationEnterpriseservices传统的.net事务处理分显式事务与EnterpriseServices声明式两种。显式事务具有速度快消耗资源少等特点,但是其功能简单,只能管理单

5、一对象和单一持久资源间的事务,只能应付单一SqlConnection对单一SqlServer间的事务(或oracle及其他数据库),也就是说只能处理所有数据在一个数据库中存放的应用系统开发,不能处理具有多个SqlConnection对多个SqlServer间的分布事务。EnterpriseServices的声明式事务通过COM+形式来提供事务服务,并且需要调用分布式事务协调处理器MSTDC(MicrosoftDistributedTrannsactionCoord)inator)来协调分布事务,其事务功能强大,但是需要昂贵的成本代价,同时事务执行速度慢。为了克服传统事务处理在应用中的

6、局限,微软在.NET2008中推出了新的事务处理机制,当然在类的命名空间上还是沿用了.NET2003的System.Transactions,其构成如下,系统提供了隐式事务处理程序编写模型与显式事务处理编程模型两种实现方案。处理分布式事务还用到了MSDTC。System.Transactions隐式事务处理程序编写模型TransactionScope类显式事务处理程序编写模型CommittableTransaction隐式事务处理编程模型如下//声明TransactionScope隐式事务Using(TransactionScopets=newTransactionScope()){

7、…ADO.NET程序语句ts.Complete();}Catch(TransactionAbotedExceptionex){//错误处理语句}应用时只需要定义TransactionScope,其中的各种语句将自动的被.NET编译在一个事务中完成。同时在事务处理中不需要象传统事务处理进行Commit与Rollback操作。TransactionScope对象可以自动确保事务执行或回退。银行转账业务实现如下//声明TransactionScope隐式事务Us

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。