BPEL 服务引擎运行环境使用称为关联的机制来跟踪多个长时间运行的有态消息交换,这些交换通常是在 BPEL 流程与其合作伙伴服务之间进行的。此类对话中的消息将映射到由 WSDL 文件中定义的一个或多个属性组成的复合值。为使对话继续进行,BPEL 服务引擎运行环境将检查入站消息及其属性信息的内容,重建消息上下文,然后为消息选择正确的流程实例。
以下术语适用于关联:
您可以为 Process 元素定义关联集。消息活动(调用、回复和接收)随后将使用定义的关联集,它们描述了流程和合作伙伴服务之间的对话。
调用活动上的关联集用于验证出站消息包含的数据是否与在指定关联集实例中找到的数据一致。
关联集名称还用于 Pick 元素的活动消息分支。
请执行下面的四个基本步骤以在流程中启用关联:
在定义关联集后,它将包含名称和属性内容。同步的调用活动内的关联集具有一个额外的属性:模式。此属性指定关联集是应用于请求消息,还是应用于响应消息,或者同时应用于这两种消息。
启动属性指示是否使用消息的属性值来启动关联集。如果启动属性的值为 Yes,则使用在消息中找到的属性值来启动关联集。如果缺少启动属性,则它具有缺省值 No。如果 initiate=No 的活动尝试使用此前尚未启动的关联集,则会抛出错误 bpws:correlationViolation。如果启动属性的值为 Join,则活动必须尝试启动关联集(如果尚未启动)。