快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

葡京娱乐场娱乐网址_龟发之家论坛



本日我们继承进修WCF散播式开拓步步为赢系列的12节:WCF事务机制(Transaction)和散播式事务编程。众所周知,利用系统开拓历程中,事务是一个紧张的观点。它是包管数据与办事靠得住性的紧张机制。 作为面向办事利用的开拓平台,WCF也供给了对事物编程模型的支持。.NET 2.0供给的System.Transactions类来开拓事务利用法度榜样。同样WCF也支持事务特点,WCF事务机制是什么,它与微软已有的技巧如 Microsoft 散播式事务和谐器 (MSDTC)有何关系?与Enterpise Services(微软利用法度榜样办事器技巧)和COM+的事物机制有何差别,这篇文章会具体先容,本日我们就来进修一下WCF事务处置惩罚机制和若何在项目中应用这一特点。全文的布局【1】事务观点 【2】事务属性、【3】事务协议、【4】事务治理器、【5】事务编程、【6】示例代码解说、【7】总结。

WCF供给的事务机制。着实除了使用已有的.NET 框架供给的事务机制外,还根据自身需求进行了扩展。这个问题不难理解。WCF编程模型奉告我们,WCF的利用平日包孕客户系统、WCF办事系统。除了可以借助SQL Server等RDBMS内部的事务机制来实现事务以外,还可以应用NET 2.0供给的System.Transactions类来实现事务处置惩罚。这种事务仅仅存在于办事端或者客户端。而WCF要求平日要实现客户端与多个办事端之间操作的事务约束,也便是平日所说的散播式事务。WCF没有完全从新开拓一套框架来实现散播式事务。这里它借助了微软早期的技巧MSDTC散播式事务和谐器来实现的散播式事务。下面我们也会先容。

首先我们往返首一下事务的感念:

【1】事务观点 :

什么是事务呢?着实这个事一个数据库系统中的一个观点。事务(Transaction)是并发节制的基础单位。所谓事务,它是一个操作序列,这些操作要么都履行,要么都不履行,它是一个弗成瓜分的事情单位。

例如,银行转帐:平日包括两个操作:

(1)从一个帐号A扣款;

(2)使另一个帐号B增款。

这两个操作要么都履行,要么都不履行。在银行系统里,数据库系统履行相关的敕令来完成两个操作。事务是数据库掩护数据同等性的单位,在每个事务停止时,都能包管葡京娱乐场娱乐网址数据同等性。连个账号的金额不会呈现差错。包管转账操作的精确完成。

【2】事务属性:

事务也有自己的特点。这个大年夜家都异常的认识。信托每个数据库相关的册本都邑先容事务的特点ACID。 事务处置惩罚可以确保除非事务性单元内的所有操作都成功完成,否则不会永远更新面向数据的资本。经由过程将一组相关操作组合为一个要么整个成功要么整个掉败的单元,可以简化差错规复并使利用法度榜样加倍靠得住。一个逻辑事情单元要成为事务,必须满意所谓的ACID(原子性、同等性、隔离性和持久性)属性:

原子性:

事务必须是原子事情单元;对付其数据葡京娱乐场娱乐网址改动,要么全都履行,要么全都不履行。平日,与某个事务关联的操作具有合营的目标,并且是互相依附的。一个事务要被葡京娱乐场娱乐网址完全的无二义性的做完或取缔。在任何操作呈现一个差错的环境下,构成事务的所有操作的效果必须被取缔,数据应被回滚到曩昔的状态。比如转账事务中的两个操作,要么全履行,要么整个履行。

同等性:

事务在完成时,必须使所有的数据都维持同等状态。在相关数据库中,所有规则都必须利用于事务的改动,以维持所稀有据的完备性。事务停止时,所有的内部数据布局(如 B 树索引或双向链表)都必葡京娱乐场娱乐网址须是精确的。某些掩护同等性的责任由利用法度榜样开拓职员承担,他们必须确保利用法度榜样已强制所有已知的完备性约束。例如,A账户里 10000元,B账户0元,转账成功今后。A和B账户的总额维持不变。照样1葡京娱乐场娱乐网址0000元。不会由于转账成功就增添了总额。

隔离性:

由并发事务所作的改动必须与任何其它并发事务所作的改动隔离。事务查看数据时数据所处的状态,要么是另一并发事务改动它之前的状态,要么是另一事务改动它之后的状态,事务不会查看中心状态的数据。这称为可串行性,由于它能够从新装载肇端数据,并且重播一系列事务,以使数据停止时的状态与原始事务履行的状态相同。当事务可序列化时将得到最高的隔离级别。在此级别上,从一组可并行履行的事务得到的结果与经由过程继续运行每个事务所得到的结果相同。串行履行事务:在一个事务履行历程中,数据的中心的(可能不同等)状态不应该被裸露给所有的其他事务。

两个并发的事务应该不能操作同一项数据。数据库治理系统平日应用锁来实现隔离。

持久性:

WCF 支持散播式事务,也便是说事务可以超过办事界限、进程、机械、收集,在多个客户端和办事之间存在。而与此对应的事务数据信息传播和治理的协议不合。

【3】事务协议:

WCF 应用不合的事务协议来节制事务履行范围(execution scope)。 事务协议的呈现时为了实现散播式情况事务传播。

1).Lightweight: 仅能在同一法度榜样域的高低文中通报事务,无法超过法度榜样域和办事界限。只能在办事内部或外部适用,同时它也是机能最好的一种协议。不过这种协议彷佛没什么用场,由于 WCF Framework 中没有任何一种 Binding 支持此协议。

2).OleTx: 容许事务超过法度榜样域、进程或机械界限。应用 RPC 调用,采取 Windows 专用二进制款式。无法超过防火墙,也不能和其他异种平台进行整合。多用于 Windows 体系的 Intranet 情况。

3).WS-Atomic(WSAT): 和 OleTx 相似,同样容许事务超过法度榜样域、进程或机械界限。和 OleTx 不合,WSAT 是一种工业标准,采取 HTTP 协议,TEXT 编码,可以超过防火墙。虽然 WSAT 也能用于 Intranet,但多半时刻它用于 Internet 情况。

事务协议的设置设置设备摆设摆设只有在事务传播的环境下才故意义。WCF在预定义绑定中实现了标准的WSAtomicTransaction(WS-AT)协讲和 Microsoft专有的OleTx协议,这些协议可以用来在消息中加入事务状态的信息。WS绑定可以应用多个WSAT事务和谐器,超过 Internet。然则假如只有一个事务和谐器,OleTx协议将是默认的协议。我们可以编程或者设置设置设备摆设摆设文件设置事务协议。

bindings>

netTcpBinding>

binding name = "TransactionalNetTCP"

transactionFlow = "true"

transactionProtocol = "WSAtomicTransactionOctober2004"

/>

netTcpBinding>

bindings>

您可能还会对下面的文章感兴趣: