【问题标题】:C# Listener Making IBM MQ Message Cleared AutomaticallyC# 侦听器使 IBM MQ 消息自动清除
【发布时间】:2013-11-07 05:37:32
【问题描述】:

我有一个 IBM MQ 的 C# 侦听器,如下所示。这里只提到了监听方法。

private void OnMessage(IMessage msg)
{
    try
    {

        ITextMessage textMsg = (ITextMessage)msg;
        Console.Write("Got a message: ");
        Console.WriteLine(textMsg.Text);

    }
    catch(Exception ex)
    {
    }
}

每当在我的队列中收到文本格式的消息时,上面的侦听器就会调用并且我能够读取值。

问题是,如果你停止监听器然后推送消息,那 消息保留在 MQ Explorer 中。但是如果监听器方法已经被调用, 消息总是在之后从“WebSphere MQ Explorer”中删除 从侦听器方法中读取。我需要再设置一些吗 即使在我的听众阅读后仍保留我的消息的配置?

【问题讨论】:

    标签: c# listener ibm-mq mq


    【解决方案1】:

    有两种方法可以从队列中读取消息:

    • 破坏性获取(默认)
    • 使用非破坏性获取(又名浏览)

    如果您只想浏览队列中的消息,请使用非破坏性获取。

    【讨论】:

    • 罗杰,这对我来说是个新信息。如果要在侦听器内部使用非破坏性,我们是否需要在 C# 侦听器本身或其他地方进行此更改。
    【解决方案2】:

    这是预期的行为。队列中的消息正在被应用程序使用(即您的 OnMessage 方法)。一旦消息到达队列中,WebSphere MQ 就会将消息传递给等待的消费者应用程序。

    如果您希望消息保留在队列中,那么您需要停止所有消费者应用程序。

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 2011-01-20
      • 2021-09-17
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 2010-12-04
      相关资源
      最近更新 更多