2012-08-07 49 views

回答

1

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

假设你有所谓的BizTalkServerSendHostReceiveHost配置的BizTalk Server,下面的消息计数器应该给发送的消息的指示/接收:

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主机,则需要在所有主机聚集。

更多关于使用PerformanceCounter class in C# here。 更多关于BizTalk PerfMon Counters here

2

BizTalk中的消息跟踪使用BAM完成。当然,你可以编写自己的数据库和数据访问API,但你为什么?!?参见Using Business Activity Monitoring的引物。不要被学习曲线拖延 - 一旦你克服它,你会爱上它!

This book对BAM一个很好的部分,不要被版本推迟 - 基本概念仍然适用于2010年

最后this tool会加快您的开发。

0

您可以从查询跟踪数据库MessageInOutEvents表中获取该信息。这是存储所有活动的单个表格。

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

+0

这是否意味着:使用BizTalkDTADb 从dta_MessageInOutEvents中选择count(*)此查询计数是在任何给定时间biz-talk中所需的消息数? – Pratik 2012-08-27 10:36:37