【问题标题】:Monitoring an MSMQ queue监视 MSMQ 队列
【发布时间】:2015-02-07 20:46:49
【问题描述】:

我有一个写入私有 MSMQ 队列的应用程序。我想通过监控队列来监控应用程序是否正常工作。通常我可以使用性能计数器查看队列中的消息数量,但是有一个非常激进的队列读取器。如果我的监控程序依赖于查看队列中的消息,则很有可能它永远不会看到任何内容,因为在我的监控应用程序看到消息之前已经读取了消息。 IE。我担心以下时间表:

--+-W-R---W-R+--W-R--W-R+---WR-W--R+-W--R-W--R+---
where W is a write
      R is a read
      + is monitoring the queue

鉴于上述情况,虽然队列中有活动(写入和读取),但在监控事物时永远不会有任何活动。

有什么方法可以查看过去一分钟或一小时内通过的队列项目数?或者其他任何可以让我监控队列的东西?

【问题讨论】:

    标签: c# msmq system.messaging


    【解决方案1】:

    您最好的选择是以下 2 个选项之一:

    1. 您可以通过 Windows shell暂停队列以观察消息累积,并确认它正在工作。这当然是一个手动过程,我相信您的监控意图是自动化的。但是非常适合调试。
    2. 您可以让队列生产者和消费者在工作时分别为您写入状态。换句话说,每次生产者创建消息或消费者处理消息时,都会在某处增加一个计数。使用这 2 个计数进行监控(两者都应该上升并总计相同或接近相同的数量)。您需要同时监控两者,以便知道问题发生在哪里,如果发生。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 2011-05-01
      • 2011-01-10
      相关资源
      最近更新 更多