0

我正在开发一个 Windows 服务,它将使用 IBM.XMS 侦听器从 MQ 读取消息。

我只需要阅读超过 120 秒的消息。我已经成功创建了一个侦听器,它正在读取进入队列的所有消息,但我无法在侦听器上放置过滤器。

下面是我的代码,它正在读取所有消息

ISession sess = connection.CreateSession(false, AcknowledgeMode.AutoAcknowledge);
IDestination readqueue = sess.CreateQueue("XYZ");
IMessageConsumer consumer = sess.CreateConsumer(readqueue);

MessageListener list = new MessageListener(OnMessage);
consumer.MessageListener = list;

connection.Start();

这段代码正在阅读我不想要的所有消息。

4

1 回答 1

0

我认为在 IBM developerWorks 论坛上也提出了同样的问题。

我不确定您的业务逻辑是什么,但我建议您探索消息发送者的选项,将消息到期设置为您想要的值,在这种情况下为 2 分钟。当设置消息过期时,任何在过期前没有被消费的消息都不会被传递给应用程序。因此,您不需要其他应用程序来清除超过 120 秒的消息。

于 2015-12-29T17:35:54.290 回答