65.9K
CodeProject 正在变化。 阅读更多。
Home

显示消息及其在 BizTalk 消息跟踪数据库中的流动

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (4投票s)

2009 年 2 月 5 日

CPOL

3分钟阅读

viewsIcon

32464

本文档详细介绍了如何使用 BAM API 和消息跟踪数据库来显示消息及其流。

引言

有时,在 BizTalk 开发中,开发人员需要开发一个开箱即用的消息跟踪等解决方案。即使 BizTalk Server 本身提供了出色的工具,例如供业务分析师使用的 BAM(更准确地说)和供开发人员使用的 HAT,我们也遇到了类似的问题,即客户希望我们开发这种自定义解决方案来显示消息体和消息流。

背景

本文档详细介绍了如何使用 BAM API 和消息跟踪数据库来显示消息及其流。它还详细介绍了需要在跟踪数据库中跟踪的消息。从去年开始,我一直在尝试撰写这篇文章,它将指导您了解如何在 BizTalk 跟踪数据库中跟踪消息,以及我们如何使用它来创建一个显示消息流经端点系统的系统。 我将把这些学习内容基本分为三个部分

在 BizTalk 管理工具中启用 BizTalk 发送和接收端口的跟踪

开发人员必须确保已在发送和接收端口上启用跟踪。执行此步骤是为了跟踪消息,因此,消息及其实例 ID 和活动 ID 会插入到跟踪数据库中。

在接收端口上启用跟踪

转到 BizTalk Server 管理 --> 接收端口属性 ---> 跟踪

选中选项“跟踪消息正文”和“跟踪消息属性”

在发送端口上启用跟踪

转到 BizTalk Server 管理 --> 发送端口属性 ---> 跟踪

选中选项“跟踪消息正文”和“跟踪消息属性”。

涉及的数据库表

开发人员还需要了解涉及的表。我只想介绍以下两个存储与消息流和消息体相关数据的表。

dta_ServiceInstances、Tracking_Parts1 和 Tracking_Parts2 表

BizTalk Server Micorsoft.BizTalk.Operations 类及其方法

当我使用 BizTalk Server 2002 时,消息是基于 Interchange Id 进行跟踪的,但在 Biztalk Server 2004 及更高版本中,BizTalk 数据库的数据库模型已完全改变。BAM API 可以帮助您跟踪这些消息。以下是一些可以帮助您执行相同操作的 API。您需要使用 Microsoft.BizTalk.Operations 类,该类具有以下方法来获取路由详细信息、消息流详细信息等。此 DLL 位于 *C:\\Program Files \ BizTalk Server 2006* 中。

  • GetMessage
  • GetMessageFlow
  • GetRotingDetails
  • GetServiceInstance
  • GetTrackedMessage

除此之外,它还有一些非常重要的方法,但在这种情况下对我们没有用处。

  • ResumeInstance
  • SuspendInstance
  • TerminateInstance

如果需要开发开箱即用的应用程序,则必须具有许可证才能找到此 DLL,如下所示。 以下是此 DLL 在 ILDASM 中的外观。 这是一个很棒的工具,Visual Studio 附带它,允许您查看类的方法、属性、元数据等。

为了跟踪消息,您需要启用消息的跟踪,这样它才会进入跟踪数据库。另一件事是您应该了解 BizTalk 跟踪数据库的数据库结构。以下是跟踪数据库的外观。数据库名称是 BizTalkDTADB,表是 TrackingParts1TrackingParts2。除此之外,开发人员在开发此类解决方案时必须查看两个表。

摘要

现在您已拥有所有高级信息,因此请继续进行开发,如果需要更多信息,请随时与我联系。

历史

  • 2009 年 2 月 5 日:初始帖子
© . All rights reserved.