通过 C# .NET 获取 Biztalk 的消息计数
本文关键字:消息 Biztalk NET 获取 通过 | 更新日期: 2024-11-10 03:48:35
如何获取 BizTalk Server 通过 C# .NET 在任何给定时间点发送/接收的总消息?
有什么想法可以实现这一目标吗?
BizTalk 中的邮件跟踪是使用 BAM 完成的。当然,您可以编写自己的数据库和数据访问 API,但为什么要编写呢?!?有关入门,请参阅使用业务活动监视。不要被学习曲线所推迟 - 一旦你克服了它,你就会爱上它!
这本书有一个非常好的关于 BAM 的部分,不要被版本推迟——基本概念仍然适用于 2010 年。
最后,此工具将加快您的开发速度。
一个简单的方法是使用现有的 BizTalk Perfmon 计数器来监视消息(尽管自上次主机实例重新启动以来)
假设你有一个名为 BizTalkServer
的 BizTalk Server,其中配置了SendHost
和ReceiveHost
,则以下消息计数器应指示发送/接收的消息:
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 环境中的全局跟踪属性。