如何:在 ESB 路线服务中启用 BAM 跟踪

目标

本部分演示如何为现有行程启用业务活动监视器(BAM)跟踪。

在本指南中,你将完成以下步骤:

  • 启用用于使用业务活动监视器跟踪路线服务的属性。

  • 使用“路线测试客户端”示例应用程序测试 BAM 跟踪。

  • 使用 SQL 查询验证 BAM 结果。

先决条件

本作指南主题中的过程需要完成 开发活动的先决条件

在您开始之前

请先完成下列任务,之后再执行本指南后面的步骤。

  • 创建特定于域的 ESB 行程语言 (DSL) 模型。

  • 配置行程的属性。

  • 定义行程的结构。

    以下过程介绍如何执行所有操作。

创建 ESB 行程 DSL 模型

  1. 在 Visual Studio 中,打开 C:\HowTos\Patterns\Patterns.sln。

  2. 在解决方案资源管理器中,右键单击 “行程库 ”项目,指向 “添加”,然后单击“ 新建路线”。

  3. 在“ 添加新项 ”对话框中,单击“模板”窗格中的 “路线Dsl ”。

  4. 在“ 名称 ”框中,键入 BamTracking,然后单击“ 添加”。

配置行程的属性

  1. 在 Visual Studio 中,单击 BamTracking.行程的设计视图。 在 BamTracking 属性窗口中,配置以下属性:

    1. “模型导出程序 ”下拉列表中,单击“ XML 行程导出程序”。

    2. “扩展程序设置” 部分中,单击 “行程 XML 文件 ”属性旁边的省略号按钮(...)。

    3. “选择 XML 文件 ”对话框中的 “文件名 ”框中,键入 C:\HowTos\Itineraries\BamTracking ,然后单击“ 保存”。

      注释

      此步骤使你可以将行程导出为 XML 到本地文件位置。 通过将行程导出到本地文件位置而不是行程数据库,可以使用 ESB 测试客户端应用程序测试行程。 稍后将完成本作说明主题中的此过程。

定义行程的结构

  1. 从工具箱中,将 On-Ramp 模型元素拖到设计图面。 在 OnRamp1 “属性”窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 ReceiveNAOrder

    2. “扩展程序 ”下拉列表中,单击“ On-Ramp ESB 服务扩展”。

    3. BizTalk 应用程序 下拉列表中,单击 Microsoft.Practices.ESB

    4. 接收端口下拉列表中,单击OnRamp.Itinerary

  2. 从工具箱中,将 “路线服务” 模型元素拖到设计图面,然后将其置于 On-Ramp 模型元素的右侧。 在 “ItineraryService1 属性”窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 MapNAOrderToCNOrder

    2. “行程服务扩展程序 ”下拉列表中,单击“ 消息传递路线服务扩展”。

      注释

      此属性定义进程将在管道(消息传送)中发生。 或者,如果该过程将在编排中发生,请将 行程服务扩展程序 属性设置为 编排行程服务扩展

    3. “容器”下拉列表中,展开ReceiveNAOrder,然后单击“接收处理程序”

    4. “服务名称 ”下拉列表中,单击 Microsoft.Practices.ESB.Services.Transform

  3. 右键单击 MapNAOrderToCNOrder 模型元素的 Resolver 集合,然后单击“添加新的解析器”。 在 Resolver1 “属性”窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 StaticallySpecifyTheMap

    2. “解析程序实现 ”下拉列表中,单击 “静态解析程序扩展”。

    3. “转换类型”下拉列表中,单击 GlobalBank.ESB.DynamicResolution.Transforms.SubmitOrderRequestNA_To_SubmitOrderRequestCN

    4. TransportName 下拉列表中,单击 “文件”。

  4. 在工具箱中,单击“ 连接器”。 将连接从 ReceiveNAOrder 模型元素拖到 MapNAOrderToCNOrder 模型元素。

  5. 从工具箱中,将 Off-Ramp 模型元素拖到设计图面,然后将其置于 MapNAOrderToCNOrder 模型元素的右侧。 在 OffRamp1 “属性”窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 SendCNOrder

    2. “扩展程序 ”下拉列表中,单击 Off-Ramp ESB 服务扩展

    3. BizTalk 应用程序 下拉列表中,单击 GlobalBank.ESB

    4. “发送端口 ”下拉列表中,单击 DynamicResolutionOneWay

  6. 从工具箱中,将 “路线服务” 模型元素拖到设计图面,然后将其放在 MapNAOrderToCNOrder 模型元素和 SendCNOrder 模型元素之间。 在 “ItineraryService1 属性”窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 SendPortFilter

    2. “行程服务扩展程序 ”下拉列表中,单击 “行程服务扩展”Off-Ramp

    3. Off-Ramp 下拉列表中,展开 SendCNOrder,然后单击 发送处理模块

  7. 右键单击 SendPortFilter 模型元素的 Resolver 集合,然后单击“添加新冲突解决程序”。 在 Resolver1 “属性”窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 ConfigureFolderSettings

    2. “解析程序实现 ”下拉列表中,单击 “静态解析程序扩展”。

    3. “传输名称 ”下拉列表中,单击“ 文件”。

    4. 单击 “传输位置” 属性,然后键入 C:\HowTos\Out\BAM%MessageID%.xml

      注释

      每个越野道都有一个与之关联的行程服务;路线服务属性和下坡属性的组合定义动态发送端口的订阅。

  8. 在工具箱中,单击“ 连接器”。 将连接从MapNAOrderToCNOrder模型元素拖动到SendPortFilter模型元素。

  9. 在工具箱中,单击“ 连接器”。 将连接从 SendPortFilter 模型元素拖到 SendCNOrder 模型元素。

  10. 保存所有项目工件。

步骤

修改行程

  1. 在 Visual Studio 中,打开 C:\HowTos\Patterns\Patterns.sln。

  2. 在“解决方案资源管理器”中,双击 BamTracking.itinerary

  3. 单击 MapNAOrderToCNOrder 行程服务元素。

  4. MapNAOrderToCNOrder 属性窗口中,单击“已启用跟踪”下拉列表中的 True

  5. 单击 SendPortFilter 路线服务元素。

  6. SendPortFilter 属性窗口中,单击“已启用跟踪”下拉列表中的 True

导出模型以用于路线测试客户端

  1. 在 Visual Studio 中,右键单击 BamTracking 行程的设计图面,然后单击“ 导出模型”。

    注释

    将在 Visual Studio 中打开行程的 XML 版本。

  2. 保存所有项目工件。

  3. 在 Windows 资源管理器中,浏览到 C:\HowTos\Itineraries and notice the creation of your itinerary XML (BamTracking.xml)。

测试行程

  1. 使用在 开发活动的先决条件 (C:\HowTos\ESB.Itinerary.Test.exe - 快捷方式)中创建的快捷方式打开行程测试客户端示例应用程序。

  2. 在“路线测试客户端”中,清除“ 使用 WCF 服务 ”复选框,然后单击“ 加载路线”。

  3. “打开路线文件 ”对话框中,浏览到 C:\HowTos\行程。 选择 BamTracking.xml,然后单击“ 打开 ”加载行程。

  4. 单击“ 确定 ”以清除“ 成功加载路线 ”消息。

  5. 在“行程测试客户端”中,单击 “加载消息 ”框旁边的省略号按钮(...)。

  6. “选择要加载的 XML 文档 ”对话框中,浏览到 C:\HowTos。 选择 NAOrderDoc.xml,然后单击“ 打开 ”以加载测试消息。

  7. 单击“ 提交请求 ”按钮。 测试完成后,单击“ 确定 ”以消除出现的确认。

  8. 在 Windows 资源管理器中,浏览到已将 C:\HowTos\Out. Verify that the BAM%MessageID%.xml 消息写入的目录。

验证消息跟踪

  1. 单击任务栏上的“ 开始 ”,指向 “所有程序”,指向“SQL Server 2014”或“SQL Server 2012 SP1”,然后单击“ SQL Server Management Studio”。

  2. 单击 “新建查询”

  3. 在查询窗格中,键入以下内容:

    SELECT *  
    FROM [BAMPrimaryImport].[dbo].[bam_ItineraryServiceActivity_Completed]  
    GO  
    
  4. 单击执行

  5. 在“结果”窗格中,使用 TimeStamp 列查找最新的条目。

其他资源

有关详细信息,请参阅下列相关主题: