IBM MQ 队列 JMS 侦听器通过主机名或某些 Id 接收消息

时间:2021-05-21 01:51:44

标签: jms websphere listener mq

是否可以将多个 JMS 侦听器连接到 MQ 队列,并且侦听器根据 Id(可能是主机名)获取消息。

在发送消息时(设置此 id?)并且在订阅时我们可以使用此 id 设置订阅者。代理的另一端将处理消息,并在响应时设置此 ID,以便特定的侦听器处理响应。

每个 msg 上的 MessageId/CorrId 将在发送/接收模式下工作,但这不是我在这里查看的内容,因为我正在使用 msg 侦听器。

浏览了 IBM MQ 文档,但无法弄清楚这一点。请提供解决此问题的任何文档参考/代码示例。

1 个答案:

答案 0 :(得分:2)

您可以使用“选择器”创建您的 javax.jms.MessageConsumer,例如,使用 javax.jms.Session.createConsumer(Destination, String) 然后当您在此消费者上实现 set your javax.jms.MessageListener 时,它只会接收具有匹配属性值的消息那个选择器。

因此,您可以在发送消息时为消息设置一个名为 color 的属性,然后您的消费者可以使用像 color = 'red' 这样的选择器。消费者只会收到其 color 属性值为 red 的消息。

消息选择器(包括语法和匹配语义)在 the JavaDoc 中有详细讨论。

相关问题