WCF之事务
- 2阶段提交协议.
- 事务先提交给协调者,由协调者分发给各个RM,在一段规定的时间后。由RM询问各个RM是否提交还是终止操作。RM根据自己的状态来决定提交/终止。协调者根据RM的结果,决定操作的提交/终止。如果提交。由协调者通知各个RM来执行真正的提交。如果有一个要求终止,由协调者通知各个RM来回滚。(一票否决权).
- 持久与可变RM: 大量长时间的数据处理,使用持久性的RM.对于对效率要求高的处理,使用可变的RM.
- CLR’s TransctionScope:当事务操作涉及多个Object时使用.
- 一个应用程序域中可以有多个LTM.一个LTM可以有一个持久,或者多个可变的RM. 当操作同时对注册表和文件进行处理时使用KTM(Vista才有).
- 相互之间交互的是DTC,每个主机外派的谈判代表。由根DTC来决定提交/终止。每个DTC都与Root DTC关联.
- 事务标准有:ws-coordination,ws-atomicTransction,ws-Businessactivity.
- 事务流:缺省是关闭的. 客户端的事务可以流动到服务器端(当服务器端支持事务流时),可以让两者使用同一事务。当一个事务需要C/S共同完成时很有用.以方便两端同时回滚.保持一致.
- 事务超时:缺省60秒.
- 隔离级别越高,力度越细.降低事务的并发性.太低,并发行好.但是会出现脏读,幻读.所以要综合考虑.当C/S的隔离级别不同时.会出现异常.
- 常见的事务问题: 1) 胀读: 读了别的事物修改的数据,但是别的事务在之后又发生回滚;2)非可重复性读:更改了别人正在读的数据;3)幻读: 读取了别人还未来得急要变更的数据.
隔离级别
ReadUncommitted
ReadCommitted
RepeatableRead
Serializable
脏读
Yes
No
No
No
非可重复性读取
Yes
Yes
No
No
幻读
Yes
Yes
Yes
No
- 可以把事务安排到不同的层面上去.最后一个的事务,由客户端与服务器端同时完成一个事务.通过事务流来传递.
WCF之事务的更多相关文章
- WCF分布式事务
原文地址:http://developer.51cto.com/art/201002/185426.htm 我们作为一个开发人员,应该能够顺应技术的不断发展,不断的去掌握新技术.那么,对于WCF的掌握 ...
- WCF分布式事务(EF)
才说分布式事务,首先,了解一下什么是交易. 事务有四个特性:ACID A是Atomicity,原子性.一个事务往往涉及到很多的子操作,原子性则保证这些子操作要么都做,要么都不做,而不至于出现事务的部分 ...
- wcf中事务的操作
using System; using System.ServiceModel; namespace Larryle.Wcf.ServiceContract.Transaction { [Servic ...
- [WCF编程]12.事务:服务事务编程(下)
一.投票与提交 虽然WCF负责事务传播及两阶段提交协议的管理工作,但是 她不知道事务是否应该提交或终止.这需要根服务告诉WCF应该何时启动两阶段提交协议.是提交还是终止.WCF提供了两种编程模式来对事 ...
- [WCF编程]12.事务:服务事务编程(上)
一.设置环境事务 默认情况下,服务类和操作没有环境事务,即使客户端事务传播到服务端也是如此. 尽管强制事务流从客户端传播过来,但服务端的环境事务依旧为null.为了启用环境事务,每个操作必须告诉WCF ...
- [WCF编程]12.事务:事务传播
一.事务传播概述 WCF可以跨越服务边界传递事务.这可以让服务参与到客户端事务里,客户端还可以在同一个事务里调用多个服务.客户端本身不一定是WCF服务.客户端事务是否传播到服务端可以通过绑定和操作契约 ...
- [转载]WCF系列_分布式事务(下)
浏览到chnking的WCF的分布式事务处理不错,转载过来分享一下. 1. WCF分布式事务例子这里也用转账的例子说事.用户在系统A和系统B都有账户,账户间的资金可以互转,系统A的资金减少多少,系统B ...
- WCF分布式开发步步为赢(12):WCF事务机制(Transaction)和分布式事务编程
今天我们继续学习WCF分布式开发步步为赢系列的12节:WCF事务机制(Transaction)和分布式事务编程.众所周知,应用系统开发过程中,事务是一个重要的概念.它是保证数据与服务可靠性的重要机制. ...
- 跟我一起学WCF(13)——WCF系列总结
引言 WCF是微软为了实现SOA的框架,它是对微乳之前多种分布式技术的继承和扩展,这些技术包括Enterprise Service..NET Remoting.XML Web Service.MSMQ ...
随机推荐
- cocos2d-x 3.1.1 学习笔记[3]Action 动作
这些动画貌似都非常多的样子,就所有都创建一次. 代码例如以下: /* 动画*/ auto sp = Sprite::create("card_bg_big_26.jpg"); Si ...
- 简单方便统一封装的傻瓜式GET/POST库AliasNet正式公布~开源喽~
在进行网页自动化时我们做得最多的工作就是不停的往某个URL GET/POST数据并得到相应的Response,通过分析Response的结果再进行下一步操作,通过网页自动化我们可以做很多工作,比如去某 ...
- Lua游戏脚本语言入门(一)
作者: 沐枫 (第二人生成员) 原文地址:http://job.17173.com/content/2009-01-22/20090122143452606,1.shtml 在这篇文章中,我想向大家介 ...
- 生成html的几种方案
方案1: /// <summary > /// 传入URL返回网页的html代码 /// </summary > /// <param name=&q ...
- innodb 变量
http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html
- java中如何忽略字符串中的转义字符--转载
原文地址:http://my.oschina.net/u/1010578/blog/366252 起因 这几天工作上需要跟另一个同事联调rest接口,我这边是java他是php,返回报文是js ...
- ARM GCC 内嵌(inline)汇编手册
转自:http://blogold.chinaunix.net/u2/69404/showart_1922655.html ARM GCC 内嵌(inline)汇编手册 百度云:http://pan. ...
- 在Archlinux ARM - Raspberry Pi上安装Google coder
升级软件包 一个 pacman 命令就可以升级整个系统.花费的时间取决于系统有多老.这个命令会同步非本地(local)软件仓库并升级系统的软件包: # pacman -Syu 提示:确保make以及g ...
- web前端开发(6)
为了避免全局变量泛滥导致冲突,最简单有效的办法是用匿名函数将脚本包起来,让变量的作用域控制在函数之内.
- 1. SQL Server服务器监控实现方法
对于服务器的监控,和对数据库的监控,很少有合二为一的工具,如果有的话,一般是付费软件,或者自行开发的工具.所以如果不想购买软件,也不想花精力去开发的话,可以结合一些免费/开源的工具.自定义脚本,来完成 ...