2011年9月14日

创建一个完整的分布式事务应用

摘要: 本篇文章将提供一个完整的分布式事务的WCF服务应用,通过本例,读者不仅仅会了解到如何编程实现事务型服务,还会获得其他相关的知识,比如DTC和AS-AT的配置等。本例还是沿用贯通本章的应用场景:银行转帐。我们将会创建一个BankingService服务,并将其中的转帐操作定义成事务型操作。我们先从物理部署的角度来了解一下BankingService服务,以及需要实现怎样的分布式事务。一、从部署的角度看分布式事务既然是实现分布式事务,那么事务会跨越多台机器。简单起见,我使用两台机器来模拟。有条件的读者可以在自己的局域网中进行练习,如果你没有局域网可用,你可以使用虚拟机来模拟局域网。假设两台机器名分 阅读全文

posted @ 2011-09-14 21:43 liwei823 阅读(457) 评论(1) 推荐(1) 编辑

WCF事务编程[下篇]

摘要: 在WCF事务编程模型下,通过服务契约确定事务流转的策略(参阅《上篇》),通过事务绑定实施事务的流转(参阅《中篇》)。但是,对于事务绑定接收到并成功创建的事务来说,服务操作的执行是否需要自动登记到该事务之中,以及服务操作采用怎样的提交方式,这就是服务端自己说了算了。正因为如此,WCF通过服务(操作)行为的形式定义事务的登记和提交(完成)方式。一、事务的自动登记(Enlistment)与提交(完成)在OperationBehaviorAttribute特性(其本身是一个操作行为)中定了两个与事务管理相关的属性:TransactionAutoComplete和TransactionScopeRequ 阅读全文

posted @ 2011-09-14 21:40 liwei823 阅读(173) 评论(0) 推荐(0) 编辑

WCF事务编程[中篇]

摘要: [续《上篇》]通过将TransactionFlowAttribute特性应用在服务契约的某个操作之上,并指定相应的TransactionFlowOption枚举直,仅仅定义了事务流转的策略而已。或者说,通过这种方式确定对事物流转的一种意愿,客户端是否愿意将当前事务流出,服务端是否愿意接受流入的事务,可以通过TransactionFlowAttribute特性进行控制。所以说,服务操作上定义个TransactionFlowAttribute特性是是否进行事务流转的总开关,真正的事务传播是建立在TransactionFlowOption.Allowed或者TransactionFlowOption 阅读全文

posted @ 2011-09-14 21:35 liwei823 阅读(200) 评论(0) 推荐(0) 编辑

WCF事务编程[上篇]

摘要: WCF事务编程其实很简单,可以用三句话进行概括:通过服务契约决定事物流转(Transaction Flow)的策略;通过绑定实施事务的流转;通过服务行为控制事务的相关行为。本篇文章着重介绍如果通过TransactionFlowAttribute特性定义事务流转策略。契约时是一种双边协定,是双方就某个关注点达成的一种共识。对于分布式事务的实现来讲,首先需要解决的是事务流转的问题,即事务将客户端的事务流向服务端。要解决事务流转的问题,需要在事务的发送方和接收方就流转问题达成共识,即双方采用相匹配的事务发送和接收策略。毫无疑问,这样的开关需要定义在服务契约之上,同时事务是基于服务操作的,所以事务流转 阅读全文

posted @ 2011-09-14 21:33 liwei823 阅读(172) 评论(0) 推荐(0) 编辑

导航