在有多个活动的环境中使用跟踪配置文件编辑器(TPE),需要了解要跟踪活动的场景,以便映射接收端口、业务流程和按正确的顺序发送端口。
在追踪档案中,TPE 会自动评估活动的起始和结束时间。 活动在收集第一段数据时开始,并在收集最后一段数据时结束。
在大多数情况下,对于开发人员来说,创建单个续延(例如两个编排过程之间的续延)是相对简单的过程。 TPE 在多个续篇的情况下表现出复杂性。 多个延续方案指的是业务活动监控(BAM)活动跨越多个接收端口、业务流程和发送端口。 若要在一条记录中收集 BAM 数据,必须在所有 BizTalk Server 计划之间创建延续。 通过 TPE 用户界面(UI)完成此过程可能比较复杂。
本主题介绍如何在不同情境中创建单个和多个后续步骤。
基本方案说明 - 多个接收端口、业务流程和发送端口
此方案由包含多个接收端口(R)、业务流程(O)和发送端口(S)的 BizTalk 服务器组成。 有一个通用的 interchangeID 上下文属性用于链接延续。 可以使用任何上下文属性,例如 activityID 或其他唯一标识符。 特定内容的选择与方案的讨论不一定相同。
出于情境的目的,关于从这些端口和业务流程跟踪的数据项/里程碑/上下文属性值的讨论未被指定。 映射的这一部分特定于业务逻辑。 目标是在已完成的活动表中单行捕获来自所有端口和编排的所有 BAM 数据。 编排能够接收和处理消息的不同方式带来了一些有趣的挑战和解决方案。
注释
一个端口或一个业务流程的方案可以被视为许多端口和许多业务流程方案的特殊情况。
方案解决方案 1 - 一个接收端口和一个业务流程
在此方案中,消息恰好到达一个接收端口(R1),并由一个业务流程(O1)处理。
创建延续的过程如下所示:
在跟踪配置文件的文件夹活动树视图中创建延续。
单击 “选择事件源 ”按钮,然后单击 “选择上下文属性 ”菜单项,选择上下文属性架构。
在“上下文属性名称”列表中找到交换 Id 属性,然后选择它。
从属性架构中,将交换 ID 映射到刚刚创建的延续文件夹。
右键单击活动树中新建的交换 ID 节点,然后选择要映射的端口。
在显示的 “选择端口 ”对话框中,选择所有 N 个接收端口。
在文件夹活动树中创建 continuationID 文件夹。
要打开每个编排,请单击“选择事件源”按钮,然后单击“选择编排计划”菜单项。 从每个业务流程中,在业务流程中的任意图形上右键单击,然后将 interchangeID 上下文属性映射到新创建的 continuationID。
在具有三个业务流程的部署中,跟踪配置文件如下所示:
方案解决方案 2 - 一个接收端口和多个业务流程
在此方案中,消息会准确到达其中一个接收端口,并被所有业务流程完整处理。 这会发生,因为消息同时发送到每个业务流程。
在这种情况下,我们需要每个业务流程的延续标识和延续ID。 创建延续的过程类似于方案解决方案 1 中概述的步骤。 对于三种编排部署,生成的跟踪配置文件如下所示:
方案解决方案 3 - 基于内容的路由
此方案定义基于内容的路由(CBR)解决方案。 消息正好到达一个接收端口,并发送到发送端口之一。 此路由基于消息中的上下文属性值进行。 在这种情况下,我们需要一个过程的延续。 映射大致如下所示:
注释
上述映射也适用于精确到达某一个接收端口并发送到所有发送端口的消息。
方案解决方案 4 - 一个业务流程、多个发送端口
在此情况下,有多次发送操作。 港口。 消息由业务流程之一(由处理规则确定)处理,并发送到所有发送端口。 在这种情况下,我们需要一个过程的延续。 映射大致如下所示:
方案解决方案 5 - 顺序业务流程
在这种情况下,每个业务流程会顺序处理消息,一个接一个,消息通过续接传递到下一个业务流程。 映射大致如下所示:
在异步环境中收集数据
设置连续操作时,BAM 期望数据按时到达。 在异步环境中,可能不会收到来自后端进程的响应。
如果未收到响应数据,活动实例将无限期等待。 活动永远不会完成,记录将保留在 BAM 主导入数据库中的表中。 请考虑长时间运行的事务的情况,在这种情况下,无法判断剩余数据何时到达。 没有超时,因为数据到达将取决于业务逻辑或流程,之后活动将标记为完成。 数据可能在同一天到达,或者在极端情况下,可能会在第二年到达。
解决方案是使用相关活动。
将活动拆分为两个活动。 将这两个活动关联,并将响应与原始活动相关联。
有关相关活动的详细信息,请参阅 活动关系。