2012-08-02 86 views
0

我有一个web应用程序通过wcf将服务请求放到msmq上。 wcf服务类最多配置为1,即在任何给定的时间只有1个类实例处理请求。有提交3个服务请求的实例,但我们只能在队列中看到1个msmq消息,其中1个消息当前由wcf服务类处理。由于我们在msmq monitoring管理单元中看不到msmq消息,因此1 msmq消息被认为丢失。但是,最终执行所有3个服务请求。这是什么原因,以及什么是最好的方式来进行一致和准确的监测。虽然MSMQ消息存在,但它丢失了

回答

0

MSMQ管理单元对此很慢,您通常需要手动执行刷新。我只是猜测消息的处理速度比用管理单元跟踪他们更快。

我的建议是实施您自己的监测应用程序。 John Opincar用示例代码写了一篇很好的文章:Counting Messages in an MSMQ MessageQueue from C#

这是滚动自己的Message Queue Monitor的基础,它仍然用在我们的生产系统上。