1、中华人民共和国国家标准信息技术开放系统互连分布式事务处理第部分服务发布实施国家技术监督局发布前言本标准等同采用国际标准信息技术开放系统互连分布式事务处理第部分服务为适应信息处理的需要本标准依据参考模型规定了应用层事务处理的服务本标准无论在技术内容上还是在编排格式上均与国际标准保持一致在信息技术开放系统互连分布式事务处理总标题下目前包括以下个部分第部分模型第部分服务第部分协议规范本标准的附录是标准的附录本标准由中华人民共和国电子工业部提出本标准由电子工业部标准化研究所归口本标准起草单位西安交通大学电子工业部标准化研究所本标准主要起草人邓良松冯惠邓勇常明前言国际标准化组织和国际电工委员会是世界性的
2、标准化专门机构国家成员体它们都是或的成员国通过国际组织建立的各个技术委员会参与制定针对特定技术范围的国际标准和的各技术委员会在共同感兴趣的领域内进行合作与和有联系的其他官方和非官方国际组织也可参与国际标准的制定工作对于信息技术领域和建立了一个联合技术委员会即由联合技术委员会提出的国际标准草案需分发给国家成员体进行表决发布一个国际标准至少需要的参与表决的国家成员体投票赞成国际标准是信息技术联合委员会制定的在信息技术开放系统互连分布式事务处理总标题下包括下述部分第部分模型第部分服务第部分协议规范第部分协议实现一致性声明形式第部分应用上下文形式第部分非结构化数据传送附录是的组成部分引言是为了便于计算
3、机系统互连而制定的系列标准之一本系列标准与按照开放系统互连参考模型所规定的网络标准相关联参考模型把互连标准的范围划分为一系列有具体说明的层每层的大小都是可管理的开放系统互连的目标是允许使用除互连标准以外最少的技术约定而达到下列计算机系统的互连来自不同的制造商在不同的管理机制之下使用不同复杂程度的以及不同技术的定义了模型服务并规定了在参考模型的应用层可用的协议服务是应用层服务它涉及联系为事务的可识别信息事务则可以涉及两个或更多的开放系统这部分定义基本的服务它提供了足够的功能来支持事务处理并且建立了一个框架来协调各开放系统中所有众多的资源没有规定本地资源的接口或在本地系统内提供的访问功能因此以后标
4、准的扩充将处理这些问题中华人民共和国国家标准信息技术开放系统互连分布式事务处理第部分服务国家技术监督局批准实施范围本标准根据抽象方式定义了应用层的下列分布式事务处理服务服务原语的动作和事件与每个服务原语的动作和事件联系的参数数据这些动作和事件之间的关系及它们的有效的顺序本标准没有规定单独的实现或产品也没有限制计算机系统内对实体或接口的实现引用标准下列标准所包含的条文通过在本标准中引用而构成为本标准的条文本标准出版时所示版本均为有效所有标准都会被修订使用本标准的各方应探讨使用下列标准最新版本的可能性信息处理系统开放系统互连服务约定信息处理系统开放系统互连联系控制服务元素的服务定义信息技术开放系统
5、互连分布式事务处理第部分模型信息技术开放系统互连分布式事务处理第部分协议规范定义本系列标准采用中的定义及下列定义对话建立指示未完一种对话状态其中指示已经发出而且参数置为但还没有响应来回答对话建立请求未完一种对话状态其中请求已经发出而且参数置为但还没有证实来回答对话终止指示未完一种对话状态其中指示已经发出而且参数置为同时没有用户差错请求未完但还没有响应或请求来回答对话终止请求未完一种对话状态其中请求已经发出并且参数置为但还没有证实或指示来回答握手指示未完一种对话状态其中下列服务原语之一已经发出指示指示同时没有用户差错请求未完但还没有由下列服务原语之一分别地来回答响应响应或者未由请求来回答如果对话
6、的协调级为则是未由任何回退启动服务原语回答握手请求未完一种对话状态其中下列服务原语之一已经发出请求请求但还没有下列服务原语之一分别地来回答证实证实或者没有指示来回答如果对话的协调级为则未由任何回退启动服务原语来回答回退启动指示触发一个回退的指示或证实它是下列服务原语之一指示指示并且参数置为指示并且参数置为证实并且参数置为回退启动请求触发一个回退的请求它是下列服务原语之一请求请求在事务终止阶段没有发出协调级为的对话的请求回退启动服务原语触发一个回退的服务原语既可能是回退启动请求也可以是回退启动指示下级对话与下级的对话下级子树下级的子树上级对话与上级的对话事务终止阶段注原标准文件中的斜体字因技术问
7、题全部改为黑体字在事务的托付或回退启动与事务的结束之间的事务阶段对给定并在发出了请求或任何回退启动服务原语的情况下进入本阶段没有对话建立指示未完的由指示或指示的发出退出本阶段当进入终止阶段时这可能发生在指示发出时有对话建立指示未完的由参数置为的响应或由对话的指示退出本阶段如果在终止阶段接受这个对话这个终止阶段由后续的指示退出事务树约束一种约束不能在单结点上检查用户差错指示未完一种选择独享控制功能单元的对话状态在此状态中在接收者获得对话的控制并且既没有握手请求未完也没有对话终止请求未完时发出了指示还没有由一个请求来回答或者如果本对话的协调级为的条件下没有由任何回退启动服务原语来回答用户差错请求未
8、完一种选择独享控制功能单元的对话状态在此状态中一个请求它是在还没有获得对话的控制并且没有握手指示未完或对话终止指示未完时发出的还没有由指示指示指示参数置为的指示来回答或者如果本对话的协调级为的条件下没有由任何回退启动服务原语来回答缩略语除了在一些表格中用到的下列缩略语外本标准使用在模型中定义的缩略语证实服务原语指示服务原语请求服务原语响应服务原语约定服务约定本标准是依据中定义的描述性约定来为分布式事务处理定义服务的但是术语请求和指示有时按下列方式使用单个请求可以导致多个指示例如单个请求可以导致对每个直接下级的指示几个请求可以引起单个指示例如只有在该和事务树中的所有下级已经发出了请求后才可给上级
9、发出单个指示请求原语导致一个同名指示原语的约定并不总遵守例如一个请求的发出将引起一个指示的发出注在本标准中的请求和响应被描述为由发出而指示和证实被描述为由发出对一个给定的原语每个参数的出现情况是用下列值之一描述的空白不可用出现是必备的出现是由用户任选的出现是由提供者任选的出现是有条件的另外记号表示参数的值在语义上与表中前面原语的相应参数的值相等术语事务的用法在本标准中术语事务用来指明一个分布式支持提供者事务记法中斜体字的用法第章中定义的下列记法以黑体字出现对话建立指示未完对话建立请求未完对话终止指示未完对话终止请求未完握手指示未完握手请求未完回退启动指示回退启动请求回退启动服务原语下级对话下级
10、子树上级对话事务终止阶段用户差错指示未完用户差错请求未完服务的概述分布式事务处理服务及支持它的协议涉及到创建一个环境在该环境中两个或多个用户可以进行交互以建立对话调用具体用户应用服务元素的服务但在的约束之下定界支持提供者事务协调支持应用事务或支持提供者事务的工作就绪托付以及托付或回退支持提供者事务启发式地把边界数据置为最终或初始状态报告差错终止对话允许释放所有分配给这些对话的资源夭折对话通过握手处理同步为对话提供链式或非链式的支持提供者事务分支序列的支持结点失效会导致多次发出某种服务原语即指示指示和指示和都通过本地手段得知结点失效服务功能功能单元描述定义下列功能单元对话对话功能单元支持在两个之
11、间建立对话所需的基本服务在这两个中可以调用原语发用户启动差错的信号和终止对话用户或提供者可以发夭折信号共享控制共享控制功能单元支持两个同时有对话的控制权并准许它们发出请求原语只需遵守一般的原语顺序约束例如两个可以同时传送数据独享控制独享控制功能单元在任何时刻只允许一个有对话的控制权许多请求原语只可由有对话控制权的发出这条限制是对一般原语顺序约束的补充例如握手可以只被有对话控制权的请求握手握手功能单元准许相互间同步它们的处理托付托付功能单元准许可靠的事务托付和回退链式事务链式事务功能单元支持两个有链式事务分支序列的的协调对话协调级将总是下级将总是和上级一样是同一事务的参与者非链式事务非链式事务功
12、能单元支持两个有非链式事务分支序列的的协调上级决定何时对话协调级为在给定时刻两个可以是同一事务的参与者不同事务的参与者或者一个或两个都不包含在一个事务中对话功能单元总是要选择的对给定的对话共享控制和独享控制功能单元相互排斥应只选择这两个功能单元中的一个且只能一个对给定的对话链式事务和非链式事务功能单元相互排斥如果托付功能单元被选择它们中的一个且只有一个功能单元应被选择如果托付功能单元没有被选择两个功能单元任一个都不应被选择功能单元中包含的服务表列出了功能单元和相联系的服务数据传送建模的服务表显示了为数据传送建模的服务不是一般意义上的服务它代表在一个对话中调用特定的服务的能力并由约束服务描述的结
13、构目的条目的条用简单的话来讲就是描述服务的目的服务和参数条服务和参数条描述服务原语和它们的参数该条描述这些参数的值或出现的条件或约束原语的顺序条在某些服务中包含原语的顺序条它显示了服务请求和它引起的指示之间在时间上的关系并且如果适用的话还有后续的响应和引起的证实条件条条件条仅适用于某些请求和响应它规定了由发出的各个请求或响应的先决条件条件不能由监督不过它对于的有序协调和它们要服从的原子性是至关重要的条件包括边界数据的状态同步的成功表功能单元和它们的服务功能单元服务对话共享控制无联系的服务独享控制握手托付链式事务无联系的服务非链式事务若选择链式事务功能单元将不使用这个服务仅当选择了独享控制功能单
14、元时才可以使用这个服务表数据传送建模的服务数据传送约束条约束条适用于所有的服务原语对于请求和响应服务原语它规定了由支配的所发出的先决条件对于指示和证实服务原语它规定了对由发出的服务原语的约束对服务原语参数值的约束是分别在每个服务的服务和参数条中描述一般地此类约束是基于和发出服务原语时的状态相联系的信息的除非约束明确地涉及到其他的对话或涉及与任何特定对话无关的属性与某个特定对话相联系的服务原语的约束只与该对话相关构成约束的信息包括为对话所选择的功能单元上级或下级的地位对话的控制权协调级边界数据的状态事务状态服务原语和相联系的参数值顺序服务原语的影响条服务原语的影响条描述了由于服务原语的发出而产生
15、的对对话或事务的特性上的任何影响影响包括启动或终止对话或事务对话的控制权上级或下级的地位协调级的改变所引起的服务原语的发出注对某些较低层功能上的服务原语的影响例如会话令牌在中描述冲突条如果在下列情况发出请求则两个请求间就有冲突同一对话双方发出请求在由另一方发出的请求而导致的指示发出或抑制之前发出请求冲突条描述了任何由于对方发出服务原语引起冲突从而引起的对服务请求或服务响应的影响一般地涉及特定服务的冲突的影响在该服务的冲突条中描述这些影响包括指示的抑制另外的指示的产生对话终止的影响无论何时对特定的只要对话被终止就不再为该对话向发出服务原语除非指示它能够在事务终止阶段被发出对于特定的对话可以由下列
16、服务原语之一来终止请求且参数置为指示且参数置为响应证实响应且参数置为证实且参数置为或请求指示指示指示且这时请求或指示已被发出过了后继服务原语的抑制不在冲突条中描述服务原语及其参数服务是通过使用服务原语的序列而被调用的表列出了服务的服务原语对每一个服务原语它或者与某个特定对话相联系或与作为整个的相联系描述服务原语的条与每一个服务相联系的参数参数栏中的空白表示这个服务原语没有参数表服务原语服务原语范围条参数对话对话对话对话对话对话对话对话对话对话对话对话对话对话对话表完服务原语范围条参数对话注识别与一个特定对话相联系的服务原语的适当对话的方法是一个本地事情数据传送数据传送的概述在框架内数据传送通过
17、发出一个或多个提供的服务原语来完成的为了说明这些服务原语和服务原语之间的协调这些服务原语被模型化为注不仅仅用于为数据的传送建模还能为任何由见关于这个服务的约束所约束的其他服务建模数据传送服务目的这个服务表达了传送数据的能力从的观点看它用于说明数据传送和其他服务之间的协调永远不会像这样调用这个服务但它是用于服务定义以表示框架内的任何服务原语这个服务与一个特定的对话相联系原语和参数表列出了原语表原语和参量在中定义的参数注被模型化为非证实服务这并不意味着排除其他类型的服务的可能性例如证实的服务对请求的约束请求者不应有对话建立指示未完请求者应有对话的控制权或者如果独享控制功能单元被选择对话的协调级应是
18、参数置为的指示在当前事务期间应已经被发出过请求者不应有握手请求未完请求者不应有用户差错指示未完请求者既不应有对话终止请求未完也不应有对话终止指示未完如果协调级是在当前事务期间不应发出过请求如果协调级是当前事务不应处于终止阶段对指示的约束接收者不应有对话建立请求未完如果独享控制功能单元被选择接收者不应有对话控制权或对话的协调级应是并且在当前事务期间应发出过了请求且参数置为接收者不应有握手指示未完接收者不应有用户差错请求未完接收者不应有对话终止指示未完如果协调级为在当前事务期间既不应发出过指示也不应发出过指示如果协调级为当前事务不应处于终止阶段冲突如果存在请求和请求的冲突则不向发出指示在回退启动服
19、务原语之后不为协调级为的对话发出指示在请求之后不为协调级为的对话发出指示而发出指示除非已为当前事务发出过了回退启动服务原语如果选择独享控制功能单元在参数置为的请求之后不为协调级为的对话发出指示而发出指示除非已为当前事务发出过了回退启动服务原语对话功能单元对话功能单元概述对话功能单元支持建立一个对话所需的基本服务在对话内可以调用原语发用户启动差错信号以及终止对话用户或提供者可以发异常终止信号总可以选择对话功能单元对话建立服务目的这个任选证实服务用于建立与新的的对话这个服务与特定对话相联系原语和参数表列出了原语和它们的参数和是由提供的任选参数它们给出关于已发出了请求的的应用实体调用的信息这些参数分
20、别是和类型如在中定义的一样是由提供的任选参数它表示并且标识已经发出请求的类型和是这样一些参数它们由启动提供为了给出有关接收者应用实体调用的信息远程将定位于此应用实体调用上这些参数的类型分别为和如在中定义的一样表原语和它们的参数参数是由启动提供的任选参数用来标识启动想要与之建立对话的的类型定义在请求指示中对话生命期中可以使用的功能单元可结合哪些功能单元所遵照的规则在中描述在证实中如果参数置为并且参数置为用来定义接收者应用实体调用可为对话支持的功能单元这个任选参数指定了对话所要求的服务质量它的类型是定义在中注参数目前正在进行研究这个参数指定为对话所用的应用上下文它的类型是定义在中当选择非链式事务功
21、能单元时该参数是必备的否则该参数不存在这个参数用来指定对话中是否启动事务分支它应取下列值之一当下级在事务中最初将不是参与者当下级在事务中最初将是参与者用于表示被证实的对话建立是否需要它应取下列值之一当被证实的对话建立是需要时当请求者只要求对对话拒绝进行通知用来表示对话建立试图要的结果它应取下列值之一当参数置为并且接收者已接受了这个对话时当已拒绝了对话时值只在证实服务原语中有效当接收者已经拒绝了对话时是一个条件参数如果参数置为时它出现在证实中它描述引起拒绝对话的差错的类型它应取下列值之一当标识接收者应用实体调用的参数不能标识一个已知的应用实体调用时当不能在接收者中找到请求的时当对话请求认为有效但
22、由于一个永久性故障被编址的不能得到在故障修好以前再次尝试是不值得的当对话请求认为有效但由于一个暂时的情况被编址的不能得到再次尝试有相当的成功期望当接收者应用实体调用要求给出而这个参数没有在请求中提供时当在请求中选择的一个或多个功能单元不能由接收者应用实体调用为该对话而支持时当在请求中选择的功能单元的组合不能由接收者应用实体调用为该对话而支持时注应认识到关于诊断值为了提供一个贯穿参考模型各层次的综合对策这方面的工作仍在进行中是证实原语的一个参数它应取下列值之一如果事务正在回退其中接收者是参与者这个值与指示有同样的用法和语义如果对话有协调级参数置为或并且证实在请求后发出那么这个值发生在证实中其他情
23、况是一个任选参数它可以出现在请求指示和或响应证实中这个参数仅当参数被置为或时才可以在响应证实中出现在请求和指示中这个参数可以标识与尝试建立对话相联系的用户专有的语义例如为了证实有关安全的信息或关于要着手的特定活动的附加信息在响应和证实中这个参数可以识别由接收者的接受或拒绝对话相联系的用户特定语义原语的序列图的时序图显示了服务不被证实时对话建立的原语序列图非证实的原语的序列图的时序图显示了服务被证实时的对话建立的原语序列对请求的约束请求者不应有与上级的对话建立指示未完这个服务原语应在特定对话中作为第一个服务原语发出并且不应为一特定对话发出多于一次如果请求用于建立协调级为的对话当前事务将不应处于终
24、止阶段图证实的原语序列请求的影响请求者是接收者的上级请求者有对话的控制权如果选择链式事务功能单元或者如果选择非链式事务功能单元并且参数置为则对话的协调级被初始化为否则对话的协调级被初始化为如果对话的协调级被初始化为如果请求者还不是事务的参与者那么请求者变为新事务的参与者如果拒绝该对话它对请求者发出证实且参数置为并且不发出指示对指示的约束接收者不应再有别的任何对话这个服务原语应作为第一个服务原语为特定的而发出并且不应为一特定发出多于一次指示的影响接收者是请求者的下级如果选择链式事务功能单元或选择非链式事务功能单元并且参数置为则对话的协调级初始化为否则对话的协调级初始化为如果协调级是并且参数置为接
25、收者成为和请求者一样的同一事务的参与者这是通过操作边界数据或发出除参数置为的响应外的任何服务原语达到如果选择独享控制功能单元接收者没有对话控制权响应的条件如果协调级是响应者不应已操作了边界数据响应的约束指示应已经向响应者发出了由处理的边界数据不应先于响应的发出前被改变不应已对任何对话发出任何请求或响应包括请求如果指示的参数置为不应发出参数置为的响应注在响应之前例如指示可为该对话发出指示响应的影响如果参数置为则建立对话如果参数置为则终止对话如果对话的协调级是并且参数置为接收者和请求者一样是同一事务的参与者注如果指示已在参数置为的响应之前发出不缺少请求并且不发出指示对证实的约束不应为该对话发出过指
26、示或证实证实的影响如果参数置为建立对话如果参数置为或终止对话如果参数的值为那么事务将被回退这个值和指示有相同的用法和语义在事务终止阶段之前若只对协调级为的对话发出参数置为的证实就不再有分布式支持提供者事务在这种情况下应通过启动新的事务分支继续当前事务或通过使用请求或请求终止事务对话终止服务目的这个任选地证实服务用来终止一个对话这个服务与一个特定的对话相联系原语和参数表列出了的原语和它们的参数表原语和它们的参数参数是一个参数它指明请求是否将被证实它应取下列值之一当要求证实并且对话终止是有条件的证实对话终止服务当对话终止是无条件的时非证实对话终止服务原语的序列图的时序图显示了当服务不被证实时的对话
27、终止原语序列图非证实原语序列图的时序图显示了当服务被证实时的对话终止原语序列在图中如果对话终止被拒绝响应和证实可以由请求和指示分别代替对请求的约束请求者既不应有对话建立请求未完也不应有对话建立指示未完请求者应有对话控制权并且不应有用户差错指示未完请求者既不应有握手请求未完也不应有握手指示未完对话的协调级应为请求者既不应有对话终止请求未完也不应有对话终止指示未完图证实的原语序列请求的影响如果参数置为则终止对话对指示的约束接收者既不应有对话建立请求未完也不应有对话建立指示未完如果选择独享控制功能单元接收者不应有对话控制权接收者既不应有握手指示未完也不应有对话终止指示未完对话的协调级应为指示的影响如
28、果参数置为则终止对话如果参数置为并且接收者有用户差错请求未完则接受者有对话控制权对响应的约束如果握手请求未完则不应发出响应请求者应有对话终止指示未完响应的影响对话被终止对证实的约束接收者不应有握手指示未完接收者应有对话终止请求未完证实的影响对话被终止冲突如果选择共享控制功能单元如果在请求和请求之间有冲突那么不向发出参数置为的指示已经发出了请求的对它不发出指示而应发出参数置为的指示参数置为的指示不被发给已经发出了参数置为的请求的而发出参数置为的指示用户差错报告服务目的这个服务用来通知伙伴出现一个处理差错它还作为对握手服务对具有授权控制服务的握手和对被证实对话终止服务的否定响应来使用对差错的描述可
29、以由使用进行通信这个服务与一个特定对话相联系原语和参数表列出了原语表原语无参数原语的序列图的时序图显示了原语序列图原语序列图的时序图显示了作为握手服务的否定证实发出的请求图作为握手服务的否定证实的在图中可以被参数置为的代替或者如果已选择独享控制功能单元可由所代替请求的条件如果请求者已有握手指示未完同步不是成功的对请求的约束请求者不应有对话建立指示未完如果选择独享控制功能单元请求者不应有握手请求未完请求者不应有对话终止请求未完除非选择共享控制功能单元并且请求者有握手指示未完请求者既不应有用户差错请求未完也不应有用户差错指示未完如果对话的协调级是在当前事务期间不应已发出过指示或请求如果对话的协调级
30、是当前事务不应处于终止阶段请求的影响如果选择独享控制功能单元并且有握手指示未完或对话终止指示未完请求者有对话的控制权对指示的约束接收者不应有对话建立请求未完如果选择独享控制功能单元接收者既不应有握手指示未完也不应有对话终止指示未完接收者既不应有用户差错请求未完也不应有用户差错指示未完如果对话的协调级为在当前事务期间不应已发出过指示或请求如果对话的协调级是则当前事务不应处于终止阶段指示的影响如果选择独享控制功能单元并且接收者有对话的控制权则接收者应通过发出请求交出控制权如果选择独享控制功能单元并且握手请求未完或对话终止请求未完接收者则没有对话控制权冲突如果下列服务原语之一已被发出不能发出指示请求
31、当无对话控制权时任何对当前事务的回退启动服务原语如果对话的协调级为指示不被发出给已经发出了请求或请求的而是向它发出指示除非回退启动服务原语已经为当前事务发出用户夭折服务目的这个服务用来夭折一个对话使用这个服务可以引起两个的指示和或证实的丢失这个服务与一个特定的对话相联系原语和参数表列出了原语和它们的参数表原语和它们的参数参数是指示原语的参数它应取下列值之一如果接收者是参与者的事务要回退则这个值和指示有相同的用法和语义如果下列条件均被满足应出现此值对话有一个的协调级没有对话建立指示未完还没有为当前事务发出过指示或回退启动服务原语请求还没有被破坏这个值还可以出现在只要处于要求当前事务在回退状态时如
32、果没有发生事务回退或回退已经在进行中这个值应出现在下列任何条件被满足时对话有一个的协调级对话的协调级是但接收者有对话建立指示未完对话的协调级是但已经为当前事务发出过指示或回退启动服务原语这个值还可出现在只要处于不需要当前事务回退状态时注当请求破坏了请求或当请求在回退过程中由下级发出并且在指示后由上级接受见可得到更多信息时处于这种状态是一个任选参数它可以用来运送与对话的夭折相联系的用户特定的语义原语的序列图的时序图显示了原语的序列图原语序列对请求的约束请求者不应有对话建立指示未完对于协调级为的对话请求只应在下列情况之一时发出在当前事务处于终止阶段以前或在当前事务的终止过程中在下列任何服务原语发出
33、以后并且先于后继请求的发出请求指示为另一协调级为的对话所发出的指示为另一协调级为的对话所发出的指示为另一协调级为的对话其参数置为或的证实请求的影响终止对话然而如果在事务终止阶段期间为与下级的对话发出请求那么仍可为该对话发出指示如果用于协调级为的对话请求引起当前事务的回退除非在当前事务的终止阶段期间发出请求对指示的约束接收者不应有对话建立请求未完如果已发出过指示接收者不应有对话建立指示未完指示的影响终止对话然而如果在事务终止阶段期间为与下级的对话发出指示那么仍可为对话发出指示参数置为的指示引起当前事务的回退如果在事务处于终止阶段之前参数置为的指示为唯一协调级为的对话而被发出就不再有分布式支持提供
34、者事务在这种情况下或者通过启动新的事务分支来继续当前事务或者通过使用请求或请求来终止事务提供者夭折服务目的这个服务由使用用于通知引起它们之间的对话被终止的故障的发生这个服务可以引起双方的指示和或证实的丢失这个服务与一个特定对话相联系原语和参数表列出了原语和它的参数表指示和它的参数参数是描述已发生差错类型的参数它应取下列值之一当遇到永久性差错情况时直到故障排除以前再次尝试是无用的当遇到暂时性情况时例如拥塞值得再次尝试并有希望成功当遇到协议差错时由于接收者已经被涉及到一事务中或由于一个本地情况而没有发出指示时当两个参数置为的请求已经冲突时当请求和请求已经冲突时注应认识到关于诊断值为了提供一个贯穿参
35、考模型各层的综合对策这方面的工作仍在进行中是指示原语的参数它应取下列值之一如果接收者是一个参与者的事务正要回退这个值有与指示一样的用法和语义如果下列条件均满足则应出现这个值对话有的协调级对话建立指示不是未完还未为当前事务发出指示或回退启动服务原语请求还未被破坏只要处于需要当前事务在回退状态时这个值就可出现如果没有事务回退发生或回退已经在进行中这个值将在下列任何一个条件被满足时出现对话的协调级为对话的协调级为但接收者有对话建立指示未完对话协调级为但已为当前事务发出了指示或回退启动服务语只要处于不需要当前事务在回退状态时这个值就可出现注当指示破坏见可得到更多的信息时处于这种状态原语的序列图的时序图
36、显示了原语的序列图原语的序列指示的影响终止对话可是如果在事务终止阶段为与下级的对话发出指示则仍可以为该对话发出指示参数置为的指示引起当前事务的回退如果为选择链式事务功能单元的对话发出指示则在指示和相应的指示之间将触发下一事务的回退除非发出过了延迟结束对话服务如果在事务处于终止阶段之前参数置为的指示为协调级为的唯一对话而被发出就不再有分布式支持提供者事务在这种情况下或者通过启动新的事务分支来继续当前事务或者通过使用请求或请求来终止事务共享控制功能单元共享控制功能单元概述在共享控制功能单元中双方都有对话控制权并且可以发出请求原语这些原语只受一般的原语顺序约束的限制例如可以在同一时刻由双方传送数据对
37、给定的对话共享控制和独享控制功能单元是互斥的没有服务原语与共享控制功能单元相联系独享控制功能单元独享控制功能单元概述在独享控制功能单元中在任何时刻最多只有一个有对话控制权当建立对话时控制权保留给对话启动者以后控制权可以通过使用请求或请求来传送并且可以通过请求来要求另外当发出请求以响应指示或参数置为的指示或指示时控制权自动传送给请求的发出者在回退的情况下当事务完成时控制权属于在事务开始时拥有控制权的许多请求原语只可由有对话控制权的发出这个限制除原语通常序列约束之外例如只可由有对话控制权的或由已向它发出了参数置为的指示的传送数据对于给定对话共享控制与独享控制功能单元是互斥的授权控制服务目的这个服务
38、由用于将对话控制权授与伙伴这个服务与一个特定对话相联系原语和参数表列出了原语表原语无参数原语的序列图的时序图显示了原语的序列对请求的约束应为对话选择独享控制功能单元图原语的序列请求者不应有对话建立指示未完请求者应有对话控制权请求者不应有握手请求未完如果对话的协调级为不应在当前事务期间已发出过请求如果对话的协调级为当前事务不应处于终止阶段请求者不应有对话终止请求未完请求的影响请求者不再有对话控制权对指示的约束应为对话选择独享控制功能单元接收者不应有对话建立请求未完接收者不应有对话控制权如果对话的协调级为不应为当前事务已发出过指示如果对话的协调级为当前事务不应处于终止阶段接收者不应有对话终止指示未
39、完指示的影响接收者有对话控制权冲突如果在当前事务期间已发出过任何回退启动服务原语则不为有协调级的对话发出指示请求控制服务目的这个服务由用来要求对话的控制权然而控制权不真正地由这个服务传送并且不迫使发出指示的放弃控制权这个服务与一个特定对话相联系原语和参数表列出了原语表原语无参数原语的序列图的时序图显示了原语的序列图原语的序列对请求的约束应为对话选择独享控制功能单元请求者不应有对话建立指示未完请求者不应有对话控制权请求者不应有指示未完请求者不应有用户差错请求未完如果对话的协调级为在当前事务期间不应已发出过指示如果对话的协调级为当前事务不应处于终止阶段请求者不应有对话终止指示未完对指示的约束应为对
40、话选择独享控制功能单元接收者不应有对话建立请求未完接收者应有对话控制权接收者不应有用户差错指示未完如果对话的协调级为在当前事务期间不应已发出过请求如果对话的协调级为当前事务不应处于终止阶段接收者不应有对话终止请求未完冲突当已发出下列服务原语之一时不发出指示请求请求任何回退启动服务原语请求其参数置为请求请求握手功能单元握手功能单元概述握手功能单元允许伙伴彼此同步它们的处理并且可能传送控制权握手服务目的这个服务由伙伴用于使它们的处理相互同步这个服务与一个特定的对话相联系原语和参数表列出了原语和它们的参数表原语及其参数参数仅当已选择共享控制功能单元才适用它由请求者提供用来指定要求证实的急迫程度这个参
41、数应取下列值之一当要求在接收证实原语中最小延迟时当在接收证实原语中无特定延迟要求时在这种情况下可以由优化通信流原语的顺序图的时序图显示了的原语顺序在图中如果同步没有成功响应和证实可以分别由请求和指示代替图的原语顺序关于请求的约束应为对话选择握手功能单元请求者不应有对话建立指示未完请求者应有对话控制权请求者不应有握手请求未完请求者不应有用户差错指示未完如果对话的协调级是在当前事务期间不应已发出过指示或请求如果对话的协调级为当前事务不应处于终止阶段请求者既不应有对话终止请求未完也不应有对话终止指示未完对指示的约束应为对话选择握手功能单元接收者不应有对话建立请求未完如果选择独享控制功能单元接收者无对
42、话控制权接收者不应有握手指示未完如果选择共享控制功能单元并且对话的协调级为在当前事务期间不应已发出过请求如果对话的协调级为当前事务不应处于终止阶段接收者不应有对话终止指示未完指示的影响如果用户差错请求未完则接收者有对话控制权在这种情况下不需要响应并且认为同步不成功响应的条件同步是成功的对响应的约束响应者不应有对话建立指示未完指示应是未完的对证实的约束请求应是未完的接收者不应有对话建立请求未完冲突如果选择共享控制功能单元如果有请求和请求的冲突不向发出指示如果选择共享控制功能单元不能在请求或请求之后为协调级为的对话发出指示而发出指示除非已经为当前事务发出了回退启动服务原语如果在当前事务期间已发出过
43、任何回退启动服务原语则不为协调级为的对话发出指示或证实注如果选择共享控制功能单元则请求与来自远程伙伴的指示的冲突不认为是一种冲突而认为是该服务的两个分别使用一个或者成功或者失败而不依赖另一个握手和授权控制服务目的这个服务由伙伴用来使它们的处理相互同步并传送控制权这个服务与一个特定的对话相联系原语和参数表列出了原语和它们的参数表原语和它们的参数参数是一个由请求者提供的指定要求证实的急迫程度的参数这个参数应取下列值之一当在接收证实原语中要求最小延迟时当在接收证实原语中无特定的延迟要求时在这种情况下可由优化通信流原语的顺序图的时序图显示原语的序列图原语的序列在图中如果同步不成功响应和证实可分别由请求
44、和指示代替请求的约束应为对话选择握手和独享控制功能单元请求者不应有对话建立指示未完请求者应有对话控制权请求者不应有握手请求未完请求者不应有用户差错指示未完如果对话的协调级是在当前事务期间不应已发出过请求如果对话的协调级是当前事务不应处于终止阶段请求者不应有对话终止请求未完请求的影响请求者不再有对话控制权指示的约束应为对话选择握手和独享控制功能单元接收者不应有对话建立请求未完接收者不应有对话控制权接收者不应有握手指示未完如果对话的协调级为在当前事务期间不应已发出过指示如果对话的协调级为当前事务不应处于终止阶段接收者不应有对话终止指示未完指示的影响接收者有对话控制权响应的条件同步是成功的响应的约束
45、响应者不应有对话建立指示未完指示应是未完的证实的约束请求应是未完的不应有对话建立请求未完冲突如果在当前事务期间已发出过任何回退启动服务原语不能为协调级为的对话发出指示或证实有关托付的功能单元概述与托付有关的功能单元是托付功能单元链式事务功能单元非链式事务功能单元如果想要在对话中支持事务分支应在对话中选择托付功能单元链式事务功能单元和非链式事务功能单元是互斥的如果选择托付功能单元则它们中的一个且仅有一个被选择如果选择链式事务功能单元对话将总是支持事务分支因此它的协调级总是在对话的生命期内上级和下级将在相同的事务树中如果选择非链式事务功能单元对话可以支持事务分支上级决定何时对话的协调级为在给定的时
46、刻两个可以是同一事务的参与者不同事务的参与者或者一个或两个都可以不被包括在事务中托付功能单元概述概述如果想要去协调对性质的维护应选择托付功能单元托付过程是建立在两阶段托付基础上的在第一阶段使所有在事务树上的处于的状态在这个状态中所有为当前事务的处理和数据传送都已完成并且事务的所有边界数据都处于称为就绪托付的状态从此状态开始它们可以被置于初始或最终状态在第二阶段事务或者被托付或被回退在第一阶段完成之前任何回退启动服务原语可以用来触发整个事务树的回退对任何处于就绪托付状态的边界数据可作出启发式判定和或可以处理边界数据托付功能单元使和或能够管理托付或回退对它们边界数据的影响托付阶段托付阶段使用下列服
47、务原语请求它允许上级去请求下级事务子树进入状态当下级子树处于就绪托付状态由指示向上级指明除非上级已发出了请求这个服务的使用是可选的指示用来指明这样一种情况上级正在请求它的下级事务子树去为当前事务完成处理并且置它的边界数据为就绪托付状态当请求或请求已由上级发出后发出这个指示请求用来指明原意结束事务指明由处理的边界数据处于就绪托付状态并且请求所有的下级结点进入状态此刻之后不再允许为这个事务启动回退并且应等待指示或回退启动指示请求和请求支持两种方法来启动托付如果发出请求那么它不能再参加两阶段托付过程的组织通过发出任选的请求给下级可以达到要求下级子树继续两阶段托付过程的第一阶段而仍处于事务的活动阶段通
48、过等待来自具体下级的相应指示在它继续托付过程的剩余部分之前可以确定下级是就绪托付在上级进入托付过程之前通知下级再没有送给它的消息了同时仍允许下级向它发送消息托付阶段托付阶段使用下列服务原语发出指示通知事务正处于托付过程中并且要求释放在最终状态的边界数据当已经以最终状态释放了边界数据时发出请求对发出指示来指明先前的事务已经被托付如果存在任一选择了链式事务功能单元的对话该指示也指明该包含在后继事务中回退回退使用下列服务原语发出回退启动请求来要求事务回退树中可有多个为给定事务发出回退启动请求回退也可由启动在它检测到阻止事务托付的情况时发出回退启动指示用来通知事务正处于回退过程中并且要求以初始状态释放
49、边界数据当在初始状态已释放了边界数据时发出请求向发出指示来指明先前的事务已经被回退如果存在任何选择了链式事务功能单元的对话这个指示也指明此包含在后继事务中启发式判定报告启发式判定报告使用下列服务原语当已经释放了在与事务的最后结果不一致的状态中的边界数据或当可能有一个故障阻止了对边界数据不一致的报告时发出具有参数的请求发出指示用来向指明下级子树已经释放了不一致状态下的边界数据或可能有一个故障阻止了对边界数据不一致的报告链式事务功能单元概述只有当托付功能单元被选择时才应选择链式事务功能单元对于一个对话链式事务功能单元与非链式事务功能单元是互斥的当这个功能单元被选择时对话的协调级总是没有服务原语与这个功能单元相联系非链式事务功能单元概述当托付功能单元被选择时才应选择非链式事务功能单元链式事务功能单元与非链式事务功能单元对于一个对话来说是互斥的上级决定何时对话的协调级为如果协调级在事务完成时是则把它改变为在给定时刻两个可以是同一事务的参与者或不同事务的参与者或其中一个或两个都不包含在事务中用非链