使用多个继续符
在有多个活动的环境中使用跟踪配置文件编辑器 (TPE),您需要知道在哪些情况下跟踪活动,这是为了以正确的顺序映射接收端口、业务流程和发送端口。
在跟踪配置文件中,TPE 自动计算活动的开始和结束时间。 活动在开始收集数据时开始,在收集完数据后结束。
大多数情况下,创建单个继续符(如两个业务流程之间的继续符)对开发人员来说很简单。 在存在多个继续符的情况下,使用 TPE 将很复杂。 多延续方案是业务活动监视 (BAM) 活动跨越多个接收端口、业务流程和发送端口的情况。 为了将 BAM 数据收集在一个记录中,必须在所有 BizTalk Server 计划之间创建继续符。 使用 TPE 用户界面 (UI) 完成这个过程可能很复杂。
本主题介绍如何在不同的方案中创建单个和多个继续符。
基本方案描述 - 多个接收端口、业务流程和发送端口
该方案由具有多个接收端口 (R)、业务流程 (O) 和发送端口 (S) 的 BizTalk Server 组成。 有一个常规 interchangeID 上下文属性用于链接继续符。 您可以使用任何上下文属性,如 activityID 或其他唯一标识符。 具体内容的选择不在这个方案的论述范围之内。
此方案不论述从这些端口和业务流程跟踪的具体数据项/里程碑/上下文属性值。 那部分映射是特定于业务逻辑的。 本方案的目的是捕获来自所有端口和业务流程的所有 BAM 数据,在已完成的活动表中将它们存入一行。 业务流程接收和处理消息的不同方式形成了一些有意义的挑战和解决方案。
注意
可以将只有一个端口或一个业务流程的方案看作具有多个端口和多个业务流程方案的一种特例。
解决方案 1 - 一个接收端口和一个业务流程
在此方案中,消息只发送到一个接收端口 (R1),并且仅由一个业务流程 (O1) 处理。
继续符的创建过程如下:
在跟踪配置文件的文件夹活动树视图中创建一个继续符。
通过单击“ 选择事件源 ”按钮,然后单击“选择上下文属性”菜单项来 选择上下文属性 架构。
在“上下文属性名称”列表中找到“interchangeId”属性,然后将其选中。
将 interchangeID 从属性架构映射到刚创建的继续符文件夹。
右键单击活动树中新创建的 interchangeID 节点,然后选择映射自哪些端口。
在显示的“ 选择端口 ”对话框中,选择所有 N 个接收端口。
在文件夹活动树中创建 continuationID 文件夹。
单击“ 选择事件源 ”按钮,然后单击“ 选择业务流程计划 ”菜单项,打开每个业务流程。 对每个业务流程,右键单击业务流程中的形状,然后将 interchangeID 上下文属性映射到新创建的 continuationID。
在具有三个业务流程的部署中,跟踪配置文件如下所示:
解决方案 2 - 一个接收端口和多个业务流程
在此方案中,消息只发送到一个接收端口,然后由每个业务流程分别处理。 这发生在消息同时发送到每个业务流程时。
在这种情况下,我们需要为每个业务流程创建继续符和 continuationID。 创建延续的过程类似于方案解决方案 1 中概述的步骤。 对于三业务流程部署,生成的跟踪配置文件如下所示:
解决方案 3 - 基于内容的路由
此方案定义基于内容的路由 (CBR) 解决方案。 消息只发送到一个接收端口,并且仅由一个发送端口发送。 此路由基于消息中的上下文属性值来执行。 在这种情况下,需要一个继续符。 映射如下所示:
注意
上面的映射还对只发送到一个接收端口并由所有发送端口发送的消息有效。
解决方案 4 - 一个业务流程,多个发送端口
在此方案中,有多个发送。 端口。 消息恰好由其中一个业务流程处理,该业务流程由处理规则决定,并发送到所有发送端口。 在这种情况下,需要一个继续符。 映射如下所示:
解决方案 5 - 序列化业务流程
在此方案中,消息由每个业务流程一个接一个地按顺序处理,通过继续符传递给下一个业务流程。 映射如下所示:
在异步环境中收集数据
在设置继续符后,BAM 等待数据到来。 但在异步环境中可能接收不到后端进程的响应。
如果没有收到响应数据,则活动实例无限期等待。 该活动永不结束,活动记录会一直保留在 BAM 主导入数据库的表中。 如果是长期事务,则没有办法断定剩余数据何时到达。 由于数据的到达由业务逻辑或流程决定,因此不会发生使活动标记为完成的超时。 数据可能在当天到达,极端情况下可能是明年。
该解决方案使用相关活动。
将您的活动分为两个活动。 将这两个活动相关联,然后将响应关联到原始活动。
有关相关活动的详细信息,请参阅 活动关系。