我有一个通过 wcf 将服务请求放到 msmq 的 Web 应用程序。wcf 服务类被配置为最多有 1 个,即在任何给定时间只有 1 个处理请求的类实例。在某些情况下,提交了 3 个服务请求,但我们在队列中只看到 1 条 msmq 消息,其中 1 条消息当前由 wcf 服务类处理。1 msmq 消息被认为丢失,因为我们在 msmq 监视管理单元中看不到 msmq 消息。但是,最后执行所有 3 个服务请求。造成这种情况的原因是什么,以及进行一致和准确监控的最佳方法是什么。
问问题
205 次
1 回答
0
MSMQ 管理单元对此非常慢,您经常需要手动执行刷新。我只是猜测消息的处理速度比您使用管理单元跟踪它们的速度要快。
我的建议是实现您自己的监控应用程序。John Opincar 写了一篇不错的文章,其中包含有关它的示例代码:Counting Messages in an MSMQ MessageQueue from C#
这是滚动自己的消息队列监视器的基础,该监视器仍在我们的生产系统中使用。
于 2012-08-07T13:21:10.303 回答