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






4.60/5 (4投票s)
本文档详细介绍了如何使用 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
,表是 TrackingParts1
和 TrackingParts2
。除此之外,开发人员在开发此类解决方案时必须查看两个表。
摘要
现在您已拥有所有高级信息,因此请继续进行开发,如果需要更多信息,请随时与我联系。
历史
- 2009 年 2 月 5 日:初始帖子