GB T 17173.1-2015 信息技术 开放系统互连 分布式事务处理 第1部分 OSI TP模型.pdf

上传人:confusegate185 文档编号:162633 上传时间:2019-07-15 格式:PDF 页数:44 大小:1.98MB
下载 相关 举报
GB T 17173.1-2015 信息技术 开放系统互连 分布式事务处理 第1部分 OSI TP模型.pdf_第1页
第1页 / 共44页
GB T 17173.1-2015 信息技术 开放系统互连 分布式事务处理 第1部分 OSI TP模型.pdf_第2页
第2页 / 共44页
GB T 17173.1-2015 信息技术 开放系统互连 分布式事务处理 第1部分 OSI TP模型.pdf_第3页
第3页 / 共44页
GB T 17173.1-2015 信息技术 开放系统互连 分布式事务处理 第1部分 OSI TP模型.pdf_第4页
第4页 / 共44页
GB T 17173.1-2015 信息技术 开放系统互连 分布式事务处理 第1部分 OSI TP模型.pdf_第5页
第5页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、. . L ICS 35.100.70 L 79 中华人民共和国国家标准G/T 17173.1-2015/ISO/IEC 10026-1: 1998 代替GBjT17173.1 1997 信息技术开放系统互连分布式事务处理第1部分:OSITP模型Inforrnation technology一哼Opensystems interconnection Distributed transaction proc臼sing-Part1 : OSI TP model (lSO/IEC 10026-1: 1998 , IDT) 2015-05-15发布2016-01田01实施中华人民共和国国家质量监督检验

2、检夜总局鲁士中国国家标准化管理委员会保叩中华人民共和国国家标准信息技术开放系统互连分布式事务处理第1部分:081TP模型GB/T 17173.1-2015/ISO/IEC 10026-1: 1998 每中国标准出版社出版发行北京市朝阳区和平里西街甲2号(100029)北京市西城区三里河北街16号。00045)网址总编室:(010)68533533发行中心:(010)51780238读者服务部:(010)68523946中国标准出版社秦皇岛印刷厂印刷各地新华书店经销铸开本880X1230 1/16 印张2.75字数77千字2015年5月第一版2015年5月第一次印刷* 号:155066 1-51

3、405定价39.00元如有印装差错由本社发行中心调换版权专有侵权必究举报电话:(010)68510107. . GB/T 17173.1-2015/ISO/IEC 10026斗:1998 目次前言. . . . . . . . . . . . . . . . . . . . . . . . . . m a眨WH112900oo-2?223334445555689004112 咱EA咱EAt-司唱EA唱E唱E品EA唱EA唱EA唱EA唱E噜E-a唱EA唱EA唱EA唱EEe唱E噜EA唱, ,EA噜EAn,内,内r同uq吨un吨U系关互相的构结层用应与型模求UHHUUHHHHHHHHHHHHHHHUH

4、P要卜叮民川HHZHUHHHHHUH-UHHHHHHH囚协纽质。HUHHH主HHHH锁州各调型剁则则死和# . 服慨H务和叫.模服规规配议酥酥?明鹉蜘杀HV做r子储附四糊糊帐棚剧性础的概imu旷膜的式特饰特mmm特勒酣握内?的脯勒怕蜘脐眼始挝明围范语略定求布OIg言范规术缩约要UUUM分川口MMMMUM-MUUOMMMMUUUUU录引12345678附 GB/T 17173.1-2015/ISO/IEC 10026-1: 1998 附录B(资料性附录)OSI TP中并发和死锁控制的指导. . 34 附录C(资料性附录假定团退的两阶段托付协议的指导. . . . 35 附录D(资料性附录托付组合

5、的优化. . . 36 E 当、GB/T 17173.1-2015/ISO/IEC 10026-1: 1998 目U-L. = 在司GB/T 17173如果TPSP导致了事务的事务结果报告的分离,其中,后者还包括事务终止时出现的错误,那么,TPSP使用一个两阶段托付机制来支持调整级别;b) 一阶段托付飞如果TPSP导致了事务的事务结果报告的分离,其中,后者不包括事务终止出现的错误,那么TPSUI有义务利用TP提供机制以外的方法来决定和所有必要的恢复处理zc) 无飞此时,TPSUI负责事务的划分和必要的恢复。在事务过程中,TPSUI可以处理事务数据。利用托付调整级别保护的事务数据称作受限数据(见

6、ISO/IEC9804: 1997中的定义)。利用应用方法保护的则称作长存数据。表1显示了事务数据与调整级别允许的组合。GB/T 17173.1-2015/ISO/IEC 10026-1: 1998 表1事务数据与协调级别的允许组合协调级别事务数据托付一阶段托付无受限数据是否否*存数据是是是注=为支持应用的事务分支维护ACID性质而必需的机制,如果有的话也是超出GB/T17173的范围.7.4 树关系在本规范中,一个树是一个有关联的实体集舍。它们之间的层次结构,并且之间有某种关系。两个有关系的实体称作邻居。一个单个的关系定义了邻居之间的角色如下z-一关系的上级是发起它的实体;关系的下属是接受它

7、的实体。每个实体只能有一个上级。已经在一个树上的实体不能加人另一个树。因此,一个树不含有环。7.5 对话TPSUI在它们自己之间以同等的关系进行通信,这种在两个TPSUI之间地位同等的关系称为对话。在对话中,TPSUI可用于下列目的的通信ta) 数据传送zb) 差错通知:c) 事务的启动、托付或回退pd) 正常地或突然地终止它们的对话Fd 握手活动。可用两种方式控制对话za) 独享控制,在同一时刻只有一个TPSUI拥有对话的控制权;b) 共享控制,当两个TPSUI都同时拥有对话控制权。在独享控制方式中,一个TPSUI应拥有对话控制权,以启动除下列以外的请求za) 差错通知sb) 事务的回退zc

8、) 事务的提前退出zd) 对话的突然终_r1:;e) 请求控制。7.6 对话树对话树是一棵树,它以TPSUI作为结点,而以对话作为结点间的弧。在对话树中,建立对话的TPSUI作为与之建立对话的那个TPSUI的直接上级,这个与其建立对话的TPSUI作为相邻的上级TPSUI的直接下级。在对话树中没有上级的TPSUI被称为根TPSUI,没有下级的TPSUI被称为叶TPSUI,既有一个上级又至少有一个下级的TPSUI被称为中间TPSUL13 G/T 17173.1-2015/ISO/IEC 10026-1: 1998 7.7 事务分支当被请求时,TPSP为TPSUI提供在给定对话中使用的托付服务。协调

9、级的值决定这个托付服务是否在该对话中被TPSUI使用za) 当两阶段委托服务被TPSUI使用时,值为commitment; b) 当一阶段委托服务被TPSUI使用时,值为one-phasecommitment; d 否则,值为none。由共享一个对话的两个TPSUI执行的分布式事务的部分被称为事务分支.按TPSP和TPSUI的责任划分有两种事务分支的基本类型za) 支持应用的事务分支z协调级为none的对话上操作的事务分支。对于支持应用的事务分支,TPSUI负责维护ACID性质以及恢复和描述事务分支。TPSP仅仅提供对数据传送、差错通知和对话控制服务的访问,并不知道支持应用的事务分支的开始或完

10、成。b) 支持提供者的事务分支E协调级的值为commitment或one-phasecommitment的对话上操作的事务分支。对于协调级的值为commitment的支持提供者的事务分支,TPSP负责维护ACID性质(因此使用全局元歧义的事务标识符、托付等)以及恢复和描述事务分支,也提供对其余服务的访问。对于协调级的值为one-phasecommitment的支持提供者的事务分支,上级TPSUI声明其没有受限数据,并且不需要得到事务结果的可靠报告.TPSP负责描述事务分支,并把在失败不存在时的事务结果报告给上级TPSUI.从此以后为简略的缘故,术语支持提供者的事务分支用短术语事务分支替代,当需

11、要时,术语支持应用的事务分支将明确写出。7.8 事务树事务树是一棵树,TPSUI和它们的TPPM作为结点,事务分支作为结点间的弧。事务树的目的是为了支持一个事务。事务树由现有的对话树组成。也就是说,事务树的结点是现有的对话树。事务树延续了对话树的连接部分。在一棵事务树中,启动事务分支的TPSUI被认为是与之建立事务分支的TPSUI的直接上级,这个与其建立事务分支的TPSUI被认为是相邻上级TPSUI的直接下级。在一棵事务树中,没有上级的TPSUI称为根TPSUI,没有下级的称为叶TPSUI,有一个上级和至少一个下级的TPSUI称为中间TPSUI.如果在事务树中作出托付决定,在独享控制方式选中的

12、情况下,与TPSUI,差错通知、握手活动之间数据的传送的相关所有的服务的TPSP的保证已经在所有的事务分支完成。7.9 通道在恢复期间需要AEI之间相互直接通信,而不静及任何TPSUI,这个要求由通道来实现。通道被模型化作为联系的连接,它的目的是为了恢复一个或更多的事务分支。在两个存在联系的或者一个已经因为目的而明确建立的AEI之间,通道已经被建立。通道协议机(CPM)建立和终止通道,在两个同等的系统里为了达到恢复,CPM可以在它们之间建立一个或多个通道。通道具有下列的性质za) 它不能直接为TPSUI可见,因此,在OSITP服务中没有涉及通道的原语zb) 为达到恢复,由CPM指定一个通道给T

13、PPM。GB/T 17173.1-2015/ISO/IEC 10026-1: 1998 为了达到恢复,通道被模型化为每次用于恢复一个事务分支,7.10 握手为了到达共同约定的处理点,TPSUI也许不得不同步它们的活动,这样一个处理点的语义是依赖应用的。当被请求时,TPSP提供给TPSUI一个握手服务,而且在对话持续过程中都可获得,它作为应用结构化的工具,并与控制对话的方式无关。7.11 内含集7.11.1 事务内含集一个事务如7.6中进行构造。一个事务内含集是在事务树中,从某个结点向某个方向观察得到的区域。如图1所示的事务树。其中,结点F优先于事务的结束便退出了整个事务(也就是说,结点F向结点

14、E发出只读和提前退出的通知),那么,从结点B观察到的结点A的事务内含图包括结点A、E和F。圈1从结点B观察到的结点A的事务内含圈7.1 1.2 托付内含集一个结点的托付内含集包括以下结点的集合=某些邻居结点,它可以从这些邻居结点接收到就绪信号;上述邻居结点的托付内含集中的结点z直至该集合中的所有结点的内含集的结点全部包含在该集合中为止。如上例,如果za) 结点F向结点E发出只读信号zb) 结点E向结点A发出就绪信号zc) 结点A向结点B发出就绪信号。则结点B的托付内含集包括结点A和E,但不包括结点F.注s如果使用静态两阶段托付规程和没有使用只读、提前退出和一阶段托付的情况下,一个结点的托付内含

15、集等同于其子事务树上的所有结点,8 OSITP服务模型8.1 OSI TP服务性质术语OSITP服务是关于由TPSP提供而被TPSUI使用的服务。15 GB/T 17173.1-2015月SO/IEC10026-1: 1998 下列的功能是与OSITP服务相联系的za) 建立、维护和终止两个TPSUI之间的对话。OSITP服务z1) 提供从一组TPSU中选择一个TPSU,TPSU标题适用于这个目的z2) 确保启动TPSUI请求的属性与接收TPSUI的属性是一致的。如果是这样,在对所请求TPSU的新调用和启动TPSUI之间建立对话F注z从OSlE的角度看,一个新调用意味着当前不在OSIE中的TP

16、SU词用.至于在一个开放实系统中这个新调用是否被映射成TPSU的一个新的实例或者是被重用的旧的实例是一个本地事情。3) 提供两个TPSUI交互、访问远地资源并可能把它们包含进一个事务的方法。b) 根据所选择的协调级,以一种可靠的方式,协调所有的资源用以成功地或者不成功地终止一个事务。除作出启发式判定外,这样就达到了所有资源的一致状态。ACID性质适用于整个事务,尤其是对远地和本地资源。为了让TPSP、TPSUI或这两者都能控制和管理本地资源,所有资源的胁调可以被完全局限于TPSP中,或者可以由TPSP和TPSUI共同进行。在后一种情况下,TPSUI从部分或全部其本地资源中收集相关的信息并根据T

17、PSP的判定控制后来的本地资源的托付或回退。OSI TP服务20 包括协调所有远地资源所必需的条文,目的是为了保证具有ACID性质的应用z在事务终止时,TPSP负责协调正确的托付或整个远地资源集的回退;2) 提供在事务终止中包含本地资掘的能力,依赖TPSP和TPSUI之间的共享zi) TPSP把本地资源和远地资源包含进事务终止中z或者ii) TPSP提供所有TPSUI需要的信息用以正确包含(其他)本地资源使ACID规则能适用于所有资源。通过执行适当的协议,TPSP保证了所有的资掘服从ACID性质,尤其是当可能的话,TPSP包括适当的恢复机制以便在故障后重新建立所有资源的一致的状态和在重建所有资

18、掘的一致的状态后恢复事务处理。8.2 对话树的规则8.2.1 对话树的生妖为了执行一个分布式事务的部分,TPSUI可以激活远程的TPSUI;这是通过让远程开放系统调用新的TPSUI并且接着与它建立一个对话(见8.2.3和8.4.1)来做的,就是用这种方法加人对话树的弧。注z从OSIE角度看,一个新词用意味着当前不在OSIE中的TPSU词用,至于在一个开放实系统中这个新调用是否被映射成TPSU的一个新实例或者是重用的旧的实例是一个本地事情.指示出被执行的事务处理类型的对话属性是在对话建立时指定的,这些属性决定在对话中被选择的通信功能子集。这些可包括za) 极化控制方式或共享控制方式zb) 握手服

19、务zc) 托付服务。初始协调级为none的对话可以在任何时刻被加到对话树中,协调级为commitment的对话只可在允许开始事务时或者把事务分支加在当前事务时才被加入。TPSUI可以和一个或多个下级TPSUI建立对话。然而,两个TPSUI至多共享单个对话,通信可能同时在一个TPSUI的某些或所有对话中发生。TPSUI的所有对话属于同一棵对话树。8.2.2 对话树的删改两个不再需要相互通信的TPSUI终止它们的对话。它们可以在任何时候这么傲,只要它们确信G/T 17173.1-2015/ISO/mC 10026-1: 1998 仍保持ACID性质。当且仅当在没有事务分支在对话上进行时,一个对话可

20、以被正常终止。只当有下列情况时对话才能终止za) 协调级为none;或者b) 当前事务分支被终止,而下一个还没有开始。在通信故障或结点失效时对话终止也可能发生,在这种情况下相应的事务分支随着对话一起被终止。当两个TPSUI之间的对话终止时,在下级TPSUI的子树中对话不必终止,因此,可以建立一个新的对话树即先前已经建立的对话树的一部分,这个新的对话树独立于原先生成它的那个对话树。和上级的对话已被终止的中间结点成为新的对话树的根.随着对话的建立和终止,对话树发生改变。8.2.3 对话树的支持两个TPSUI之间的对话每次都由单应用联系支持。当对话与应用联系相关时,在任一给定时刻在它们之间存在一一对

21、应关系。然而对话的生命期和应用联系的生命期可以在下列方面相区别:应用联系生命期可以跨越一个或多个对话的生命期。OSITP服务不限制应用联系的建立和存在,尤其是不把它们限制在AEI之间的树或别的拓扑结构中。因而它们被认为是形成了互联的开放系统的一个图。为了能支持对话,应建立一个应用联系。a) 在支持与所请求对话相关的TPSU通信要求的AEI之间$b) 有一个支持与所请求对话相关的TPSU的通信要求的应用上下文;c) 有与所请求对话的要求相容的表示和对话服务支持,并且d) 有与所请求对话的要求相容的服务质量。8.2.4 活动的启动和树结掏在一个TP对话中或一个事务分支中,上级结点与F级结点的角色很

22、显然与TP协议是不相称的。这种不相称在应用层次上,对应于如下一个基本的假设模型z上级结点一般情况下担当活动的发起者的角色,同时,其下级结点通过响应从其上级结点收到的请求来完成这些活动,这些下属递归地将这些活动托付给它们的下属,并担当发起者角色。如此反复。有时,为了应用的任务进一步的执行,可以会有将这些发起和最高责任从一个结点传送到邻居结点的应用需求,也就是说,从客户端转到服务器端。准备放弃启动角色的结点可能是当前事务处理的任务的最初建立者,但该结点可能意图撤回到一个观察者的角度(在TP术语中,即成为一个下级结点或者意图与整个事务完全拆除连接(至少在当前事务外的稍后时间内暂时为了发现成果及其详细

23、的结果的目的允许一个事务树的根结点与其邻居下级结点互换角色是一个相当困难的操作。协议流的重要部分有可能被迫重新定向。因此,应该立即使能一个结点来自发的发起对话树、事务树的建立,并且从最开始接管下属角色。从而它可以定义应用任务的基本情况,且将执行结果传递给根结点。当在一个远程系统中请求某个TP对话的建立时,应该提供一个早已存在的适用于己请求对话的联系。并且,该联系应由对话系统来使用。TP协议假定代表一个具体的信息处理上下文的请求实体是一个TP结点。而外来对话需要一个结点作为下属,至于它是已提及的请求结点,还是一个新创建的结点(即将接管已给出的信息处理上下文),这是本地事情,17 G/T 1717

24、3.1-2015/ISO/IEC 10026-1: 1998 8.3 事务树的规则8.3.1 事务树的生长新事务分支只可以在事务终止过程开始之前加人到事务树中(见8.的。有两个途径来使事务树生长za) 像TPSP所看到的,通过建立一个协调级为commitment新对话把新事务分支加人到事务树中zb) 在允许动态改变协调级的地方(见8.3.3)当协调级从none改变到commitment时,务分支加到事务树中。只允许对话树上级结点改变协调级。8.3.2 事务树的生命期事务树仅仅持续整个单事务时期那样长。当允许动态改变协调级时,仅仅在事务分支完成时,协调级才能变成one.只允许对话树的上级结点改变

25、协调级。事务树的生长和终止不是瞬间的,这两个动作都需要多次基本的交换,这些交换应被传播到整个事务峙中。8.3.3 事务树的支持两个TPSUI之间对话的存在是两个TPSUI之间存在事务分支的先决条件。在任一给定时刻,在协调氛是c33mitmenu的地方,对话和事务分支之间存在一一对应关系。TPSP知道对话树中对话和相应事分树中分支的关系,并且协调它们的联合操作,例如为了实现在事务中涉及酌所有开放系统的一致的托付如义。事务树的根不必放在对话树的棍部。在事务树的边界内,关于上级和下级的关系在事务树的结点和支持它的对话树的结点之间存在一一对应的关系,事务树和支持它的对话树有相同的方向。fiJ调级为no

26、ne的对话不支持事务树的事务分支。可以用同样一个对话树支持一系列不同的事务。对话树中对话之间的关系保持在所有这些不同的事务中。在对话的边界内,可以出现由一个或多个事务分支组成的序列,允许两种类型的序列za) 链式序列E在同一协调级(commitment)上操作的同一对话中事务分支组成的序列。每个事务分支由上级TPPM直接启动;b) 非链式序列z它们是这样的序列,由同对话中的事务分支组成,而在每个事务分支之间有一个对话协调级变成none的过渡。在对话建立时刻和对话终止时刻协调级可以是none或是commitment ,每个事务分支由上级TPSUI启动。如果对话树的一部分没有事务在进行中(例如z对

27、话的协调级是none勺,那么对话树的这一部分中的TPSUI可以启动一个新的事务,这可导致同一时刻在单对话树中有零个、一个或多个事务树。在任一给定时刻,事务树之间是不相连的,在两个事务树之间不相连至少由一个协调级是none 的对话所保证。在中间结点和它的上级之间的对话终止后,中间结点成为一个新对话树的根,并且可以成为事务树的根。图2显示了在事务分支、对话和联系之间的时间上的对应关系,这组对应关系在两个相邻的开放系统之间描述。18 GB/T 17173.1-2015/ISO/mC 10026-1: 1998 T1 T3 (注1)注1、注2)(注2)对话对话注3)联系说明gI I 活动部件。注,:事

28、务分支的开始或者发生在对话的开始或者发生在对话过程中.(注的i 其他ASE注4)联系时间=主注2:对话的结束隐含着当前事务分支的结束.事务分支的结束或者发生在对话过程中或者发生在对话的结束.注3:在相同的应用联系边界内一个对话可以跟着另一个对话。注4:当对话终止时,另一个ASE能使用应用联系.注5:如果应用联系失败,对话会立刻中止.但是,如果事务是READYor DECIDED (commit)专题,在后面的联系中会发生事务恢复,事务分支会一直存在直到事务恢复完成。图2事务分支、对话和联系8.4 命名除了在GB/T9387.3-2008中巳为OSI建立的命名功能外,OSITP要求TPSU有标题

29、,事务和事务分支有标识符。这些名字和标识符的定义在第3章中给出。8.4.1 TPSU标题对话建立期间使用TPSU标题,用来在指定的应用进程中选择一个TPSU,就是要和这个TPSU建立对话。在启动TPSUI和由TPSU标题指定的TPSU的接收方TPSUI之间建立该对话a在两个支持各自TPSUI的应用实体调用之间的应用联系(以前存在的或新建立的)之上建立该对话。通过为对话建立表示出目标TPSU,TPSU标题指出此TPSU的处理能力。万一在以前存在的应用联系上对话被建立,TPSU标题可用于获得TPPM从可利用的联系中选择合适的应用联系开始的必要信息。此信息的一个例子就是应用上下文。在没有先前存在的联

30、系可利用的情况下,TPSU标题可用于获得使TPPM能够建立所要求联系的必要信息,TPSU标题在一个应用进程的范围内是元歧义的。8.4.2 事务标识符在OSIE中一个事务是由事务标识符无歧义地表示的,这个事务标识符由下列组成za) 支持事务根结点的应用实体的应用实体标题;b) 事务下标,这个值在支持事务根结点的应用实体的范围内是无歧义的,例如,事务下标可以是整数,对每个实例化的新事务整数就递增L注s一涉及恢复和事务审计要求,事务标识符在时间上应是全局无歧义的。8.4.3 事务分支标识符在一个事务的范围内,事务分支由事务分支标识符元歧义地表示,事务分支标识符由下列组成zGB/T 17173.1-2

31、015/ISO/IEC 10026-1:1998 a) 支持启动事务分支结点的应用实体的应用实体标题Fb) 事务分支下标,它的值在支持启动事务分支结点的应用实体范围内是无歧义的。8.5 数据传送8.5.1 要求和目标为了满足在交换数据的分布式事务中涉及的TPSUI的要求,OSITP服务允许数据传送满足下列目标za) OSI TP服务允许TPSUI根据它自己的语义来运送数据FM 数据传送总是与单个对话有关系pc) TPSUI能通过使用一个或多个具体用户ASE自由组织语义变换的风格,尤其是它的语义变换可以基于不同规范zd) 不管用户ASE是否与OSITP工作,用户ASE的定义可以是相同的。8.5.

32、2 数据传送的协调用户ASE产生数据传送APDU,APDU被映射到下面的服务上,由SACF协调。TPPM处理对话管理的协议,它自己不直接产生数据传送APDU.TPPM决定事务处理应用联系使用的时序排序。因此在OSITP中数据传送za) 可以只在一个对话边界内发生;b) 受制于控制方式,尤其是在极化控制方式中,如果TPSUI有对话的控制权,数据只可以送出。控制方式的选择取决于用户ASE表达的具体要求;c) 受制于TPPM的状态。在事务终止期间,TPM保证数据传送与托付阶段相梅调。8.6 资源协调8.6.1 两阶段托付当有来自一个多个事务树的TPSUI的请求时,则进入分布式事务的终止阶段。在事务树

33、内,在TPSUI中TPSP协调终止阶段,以确保事务的受限数据释放时保持一致状态。终止阶段的协调分两步走za) 托付阶段1; b) 托付阶段2。在托付阶段1中,参与事务的结点试图把事务树的所有受限数据置为托付就绪状态。在事务被托付或回滚终止之前,受限数据如果可以以其初始或最终状态被释放,则其称为在托付就绪状态。如果事务树上的所有受限数据均处于托付就绪状态,则进入托付阶段2,否则事务回滚。在托付阶段2中,在事务树范围内,当以下条件满足时,事务可以被托付za) 所有受限数据处于托付就绪状态;b) 没有正在进行的改变事务树的操作,即z新事务分支的建立或结点之间的通信影响等。如果事务即将托付,TPSP在

34、整个事务树范围内发布此托付决定并协调整个事务的完成。两个阶段完成后,托付完成。一个新的事务可以开始或者不开始。注g如果使用了只读、提前退出或者一阶段托付规程,这些规程可能被修改,分别见8.6.2,8.6.3和8.6.4.8.6.1.1 静菇托付规程在托付阶段1,每个结点由其上级结点通知已进入终止阶段,特别是,会通知从上级结点不会接收GB/T 17173.1-2015/ISO/IEC 10026-1: 1998 到更多的数据。递过来的通知和受限数据将被置为托付就绪状态的通知。如果结点同意继续处理,则它试图将所有子树上的受限数据置于托付就绪状态。它也试图将本地受限数据置于托付就绪状态。对于远程资源

35、来说,它通知它的所有下级结点等。当子树将所有与它有关的受限数据置于托付就绪状态后,它向其上级发出一个就绪信号来通知对方,并且等待事务的最终处理结果。如果该结点没有上级结点,则进入托付阶段2.向上级发出就绪信号的结点成为托付附属者,而其上级结点成为托付主控者。托付主控者接收到就绪信号的下级结点集成为它的托付内含集。如果由于就绪信号或只读或一阶段信号的发送,即将接收到应用数据,则受限数据就会受到影响,进而使结点的就绪状态元效。应该避免这种ready/data冲突。它们只在一些功能单元组合时发生。使用这些功能单元组合的应用应确保这种情况的发生。这种冲突只在没有选择极化控制方式的分支中可能发生。注:G

36、B/T 17173.3-2014中有解释这种冲突的场景,如果结点不能将受限数据置于托付就绪状态,则它启动事务的回滚。在托付决定已经完成的托付阶段2中,每个结点在其上级结点的要求下将其子树的所有受限数据置于最终状态。结点同时也托付自己的受限数据。对于远程资源来说,它通知它的所有下级结点等。当子树将所有与它有关的受限数据置于最终状态后,它通知它的上级,如此反复等。事务则完成。8.6.1.2 隐式准备启动终止阶段的权限可以限制性地给予根结点,且利用TPSP将已经进入终止阶段的信号从上级结点通知到其下属。相应地,已经进人终止阶段的信号是在应用语义中隐含着的这就是隐示准备。这个信号可能在一个特殊的应用消

37、息中传递,可能是一个从消息序列中得到的协商结果,可能用事务如何开始来引申出来。注z隐示准备可以允许在事务树中提前得到就绪状态,从而节省整个事务完成的时间。所以,隐式准备信号的线路对于TPSP来说是不可见的。从而,从TPSP的视角来看,并不能将隐含信号的使用与将启动终止阶段的权限许可给其他结点区分开来。如果在上级与下级结点之间使用隐式准备机制,则下级结点可以进入托付阶段1,并且随时将其子树置为就绪状态。如果一个中间结点没有与其上级之间使用隐式准备机制,却与其至少一个下级结点使用了隐式准备机制,则直到其上级结点通知许可,它不能进入托付阶段1。但是,TPSP不能管辖下级结点托付的人口a注2试图提供这

38、样的整个树范围内管辖,将会带来协议切换上的相当大的复杂性。8.6.1.3 动态托付规程在阶段1,每个结点都可以在本地使用终止规程,如果其得到启动终止(因为它是根结点,或使用了隐示准备)、执行终止(因为它从其上级结点处得到了终止已经开始的信号的许可的话。同时,还假设它确定没有从任何邻居处得到多余数据。如果一个结点同意继续托付,它将试图将本地受限数据置于托付就绪状态。如果不能,则它启动事务的回滚处理。如果其所有受限数据处于托付就绪状态,并且除一个邻居外从其他邻居收到就绪、只读、提前退出或一阶段信号,就给还未收到其就绪信号的剩余的该邻居结点发送就绪信号,并等待事务的最终结果,如此反复。收到就绪信号的

39、结点是托付主控者(如果有的话),发送就绪信号的是托付附属者。如果一个结点利用动态托付规程向其下属发送就绪信号的话,而且之前它并未发送过准备信号,那GB/T 17173.1-2015月SO/IEC10026-1: 1998 么,就绪信号本身同时也告知其下属已经进入终止阶段。注2如果使用了隐式准备机制,其下属可能已经知道了这种情况。一个结点的当前托付内含集是事务树的以下结点集=a) 某些邻居结点,从它们那里接收到就绪信号sb) 以上所述邻居结点的托付内含集包含的结点。以此递归。如果由于就绪信号的发送,即将接收到应用数据,则受限数据可能会受到影响,进而使结点的就绪状态无效。应该避免这种ready/d

40、ata冲突。它们只在一些功能单元组合时发生。使用这些功能单元组合的应用应确保这种情况的发生。这种冲突只在没有选择极化控制方式的分支中可能发生。注,GB/T 17173.3-2014中有解释这种冲突的场景.如果其所有受限数据处于托付就绪状态,并且从所有邻居处收到了就绪、只读、提前退出或一阶段信号,则该结点将进人托付阶段2,产生托付决定。一个结点可能从它向其发送就绪信号的结点处收到就绪信号。在这种情况下,TPt协议中使用一种断系机制来决定谁将做出托付决定,并成为托付的协调者。注s有一种可选的设计是使曾经发出就绪信号且收到就绪信号的两个结点均成为托付的协调者和发布托付活动,但是,这样做将使协议中托付

41、活动日忘记录的处理机制变得很复杂,可能会导致其中某些写人失败。为方便起见,采用了断系机制.在做出托付决定后的阶段2,每个结点在其上级结点的要求下将其子树的所有受限数据置于最终状态。结点同时也托付自己的受限数据。对于远程资源来说,它通知它的所有下级结点等。当子树将所有与它有关的受限数据置于最终状态后,它通知它的上级,如此反复等。事务则完成。存在的机制允许控制就绪信号的流向。对于创建的事务树,有可能其托付永不可能发生,这样的树叫死锁事务树。将有检查来保证永不创建这种树。但是,这只能通过安全错误提示和禁止这种结构的树的可见来实现。TP提供选项来决定禁止哪些检查,这时,具体的应用负责保证这种死锁事务树

42、不被创建。8.6.2 只读如果一个结点结束了其上级发出的所有请求,并且对于其事务数据(受限数据或长存数据),与其初始状态而言,没有做任何改变,那么它可能会意图从其两阶段托付规程中回撤。同时,它的事务数据也不会被事务的托付或回滚而影响。如果这样的结点从它的所有下属接收到只读或提前退出信号,那么它可以将只读信号传给它的上级。如果一个结点发出只读信号,那么它将不参与接下来的托付过程。同时,事务结果也不会通知给它(无论是托付还是回滚),除非事务功能链为了对话又被选择,或者又有一个不同的正在处理的动作牵涉到它,或者事务发生回滚。另外,发出只读信号的结点也没有义务向安全存储中写入任何日志记录。在未链接的事

43、务中,发出只读信号的事务一旦接收到完成的指示,则就与事务树断开联系。并且,尽管它曾经服务的事务还在进行,它可以自由地用来启动其他动作。这样结点的上级可以使用它为同一个事务启动另一个事务分支。注=发出只读信号的事务不是一个托付附属者,也不是托付内含集的一部分。8.6.3 提前退出如果有的话,一个结点如果不能完成事务工作,并且从其所有下属接收到只读或提前退出信号的话,通过向上级发出提前退出信号,它可以从事务回撤。附加条件是z它的事务数据未被修改过,并且它不需要报告事务处理结果。当前事务分支接收到的其上级的其他请求将被TPSP抛弃。注z例如,一个结点可能根据从其上级处接收到的请求,决定其没有权限访问

44、完成该请求所需要的数据.GB/T 17173.1-2015/ISO/IEC 10026-1: 1998 在未链接的事务中,发出提前退出信号的事务一旦接收到完成的指示,则就与事务树断开联系。并且,尽管它曾经服务的事务还在进行,它可以自由地用来启动其他动作。这样结点的上级可以使用它为同一个事务启动另一个事务分支。注g发出提前退出信号的事务不是一个托付附属者,也不是托付内含集的一部分。8.6.4 一阶段托付没有受限数据却又意图了解事务结果的结点可以使用一阶段托付规程。如果其从除一个邻居外的其他邻居收到只读、提前退出或一阶段信号,则其向最后的一个邻居发送一阶段信号。一旦一个结点发出一个一阶段信号,那么

45、,只要出现对话或结点错误,并且托付协调者没有禁止决定的传递,它就会收到事务结果的通知。另外,发出一阶段托付信号的结点没有义务向安全存储中写人任何日志记录。注11使用一阶段托付的结果可能有事务数据(例如在事务中处理的数据),但它们也不是CCR严格定义上的受限数据.这种民存数据在事务终止时可能以一种更新过的状态释放。但是,当发生某种错误时,它们的释放将不根据事务结果调整(例如它们还是以更新过的状态释放,但事务可能发生了回滚),这样的话,之后将有其他的方式而不是TP协议来试图调整.注2:发出提前退出信号的事务不是一个托付附属者,也不是托付内含集的一部分.8.6.5 回退事务的回退可以由事务树中任一结

46、点启动,回退把事务的受限数据返回到它们的初始状态。发出的回退不是亲自使下面的对话终止,如果TPSUI希望终止这个对话,则可以夭折它。如果对话在事务终止过程开始前夭折,这个事务被回退。完成回退后,可以启动新事务(但不是必须)。8.6.6 启发式判定当下级结点已经进入托付阶段I后,它可以决定在最终状态或初始状态释放它的部分或全部受限数据,即使它的上级还未宣布事务的最终结果。这样的判定称为启发式判定。个别结点可以做出启发式判定以作为通信故障的结果或作为系统具体的本地条件的结果。是否做出一个或多个启发式判定和将做出什么样的判定是一个本地事情。在OSITP范围内,无论何时结点做出的启发式判定,这个判定不

47、会传播给其他结点。要求已经作出启发式判定的结点用安全存储器上的启发式日志记录来记录这个判定。如果证明结点受限数据的状态和事务的结果是一致的,则删除启发式日志记录并且着手事务的正常终止。8.6.7 启发式不一致性栓酒已经作启发式判定的结点如果它的本地受限数据与事务的结果不一致,那么就确定存在启发式不一致性。只要当这个结点被它的直接上级报告为事务的最终结果时,它就可以做出这个判定。如果结点的受限数据的状态与事务最终结果是不一致的,则违反了ACID性质。这就是启发式混合情况。当结点不能判定子树内的下级结点的受限数据的确切状态时,则存在启发式损害情况,这是它与一个或多个下级结点通信的故障导致的。如果事

48、务的最终结果是要回退,子树的受限数据状态不能报告给它的直接上级。这是由于假定回退造成的见8.7.2和附录。由于在子树中受限数据的状态可能是一个潜在的启发式撮合,这是启发式损害情况。如果TPSUI不能判定本地受限数据的状态是否与事务的最终结果相一致,也存在启发式损害情况,这是出现本地通信失败的结果导致的。8.6.8 报告每个结点在它的子树中获得受限数据状态的知识,尤其是根结点在整个事务树中获得受限数据状态的知识。23 GB/T 17173.1-2015/ISO/IEC 10026-1: 1998 在TPSP中,每个TPPM在它的子树中收集关于受限数据状态的报告,作为下列的结果zd 与事务的最终结果比较过的结点的本地受限数据状态zb) 来自每个下级,关于在下级

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国家标准

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1