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 ...
随机推荐
- WCF入门教程(三)属性标签
属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的一部分,以及传输对象的定义.如果已经有所了解, ...
- swift:自定义UICollectionViewFlowLayout
写作目的 UICollectionView是ios中一个十分强大的控件,利用它能够十分简单的实现一些很好看的效果.UICollectionView的效果又依赖于UICollectionViewLayo ...
- 0c-41-ARC下循环引用问题
1.ARC下循环引入问题 一个人拥有一只狗,一只狗拥有一个主人. 当增加d.owner = p;时形成循环引用. 解决方法:一端用strong,一端用weak. 2.ARC下@property参数 A ...
- -force_load使用办法
项目中用到Three20框架,同时也使用了讯飞语音的framework,编译时出现类似如下冲突提示信息: ld: duplicate symbol _OBJC_CLASS_$_AdLinks in / ...
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 7.全局防护盲点的总结上篇
0x01 背景 现在的WEB应用对SQL注入的防护基本都是判断GPC是否开启,然后使用addlashes函数对单引号等特殊字符进行转义.但仅仅使用这样的防护是存在很多盲点的,比如最经典的整型参数传递, ...
- 给大家普及一下CPU和SOC的基本知识,好让大家在盲目喝彩做出基本的判断
转载:http://bbs.tianya.cn/post-worldlook-544367-1.shtml 目前,华为推出了自己的四核手机,用自己的SOC,所以很多不明就里的人开始嚷嚷国产处理器的骄傲 ...
- 添加IFrame导致内存溢出的解决过程(IE浏览器,目前发现了原因,还未解决)
1. 现象 每次动态添加iframe时,iexplore.exe进程占据的内存都会增加(大概10M左右),不会自动释放,最终导致内存溢出 2. 解决过程 经过网络的一番搜索,基本上给出的解决方案是 ...
- 使用java8
刚开始一直使用的jdk7,但是学习spark的时候spark推荐Jdk8,很多示例程序都用到了lambda 机器上安装jdk8只是实验用途,默认还想使用jdk7 安装完后 网上说这是因为jdk8安装的 ...
- spark1.2.0编译
spark 有三种编译方式:SBT.MAVEN.make-distribution.sh.SBT.MAVEN两种方式打出来的包比较大,不适合部署使用.因此我们通常使用第三种方式打包. ./make-d ...
- iOS开发系列--让你的应用“动”起来
--iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建 ...