在异步读取消息时检查JMS类型

时间:2014-12-08 09:44:25

标签: java jms spring-jms jms-topic openmq

我的JMS中有一个队列。在向队列发送消息时,我提到JMStype为'XYZ'。在消费者端,我有一个onMessage监听器。我想知道的是以下

  1. 在onMessage侦听器中,如何在不使消息出列的情况下检查消息的JMS类型。如果我的运行实例发现JMStype不是'XYZ',那么它不应该做任何事情,不应该从队列中出列。只有需要JMStype'XYZ'消息的实例才能使消息出列并进一步处理。
  2. 感谢您抽出时间阅读我的问题。

1 个答案:

答案 0 :(得分:1)

我建议使用消息选择器而不是JMSType来实现此目的。 Spring JMS消息侦听器允许您根据JMS属性和JMS头过滤消息。

在将消息写入队列时,您可以将消息属性设置为"type='abc'",在侦听器的配置中,您可以查找某些"类型"提供messageSelector="type='abc'"

这样,只从队列中选择与选择器匹配的消息。