通过 C# .NET 获取 Biztalk 的消息计数

本文关键字:消息 Biztalk NET 获取 通过 | 更新日期: 2024-11-10 03:48:35

如何获取 BizTalk Server 通过 C# .NET 在任何给定时间点发送/接收的总消息?

有什么想法可以实现这一目标吗?

通过 C# .NET 获取 Biztalk 的消息计数

BizTalk 中的邮件跟踪是使用 BAM 完成的。当然,您可以编写自己的数据库和数据访问 API,但为什么要编写呢?!?有关入门,请参阅使用业务活动监视。不要被学习曲线所推迟 - 一旦你克服了它,你就会爱上它!

这本书有一个非常好的关于 BAM 的部分,不要被版本推迟——基本概念仍然适用于 2010 年。

最后,此工具将加快您的开发速度。

一个简单的方法是使用现有的 BizTalk Perfmon 计数器来监视消息(尽管自上次主机实例重新启动以来)

假设你有一个名为 BizTalkServer 的 BizTalk Server,其中配置了SendHostReceiveHost,则以下消息计数器应指示发送/接收的消息:

PerformanceCounter msgsReceivedCounter = new 
    PerformanceCounter("BizTalk:Messaging", "Documents received", "ReceiveHost", "BizTalkServer");
msgsReceivedCounter.ReadOnly = true;
PerformanceCounter msgsSentCounter = new 
    PerformanceCounter("BizTalk:Messaging", "Documents processed", "SendHost", "BizTalkServer");
msgsSentCounter.ReadOnly = true;
lblSent.Text = string.Format("{0}",  msgsSentCounter.NextValue());
lblReceived.Text = string.Format("{0}",  msgsReceivedCounter.NextValue());

请注意,如果组中有多个 BizTalk 主机,则需要跨所有主机进行聚合。

有关在 C# 中使用 PerformanceCounter 类的更多信息,请参阅此处。有关 BizTalk PerfMon 计数器的更多信息,请单击此处。

可以通过查询跟踪数据库 MessageInOutEvents 表来获取该信息。这是一个存储所有活动的表。

唯一的要求是应已关闭 BizTalk 环境中的全局跟踪属性。