如何从websphere MQ中有选择地处理消息

时间:2015-08-11 01:38:33

标签: jms ibm-mq message-driven-bean

我有一个MDB,它接收了其他人拥有的队列中丢弃的所有消息

该队列有很多订阅者。

我只对特定类型的消息感兴趣。像一些消息一样以“密码更改”开头。其他人就像“违规”。

我不想确认我不感兴趣的消息,并将其留在队列中以供其他对此感兴趣的人

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以使用Selector仅过滤所需的邮件。 另一种方法是为消息设置特定的标题,以便在不触及实际消息的情况下过滤/选择消息。

答案 1 :(得分:2)

JMS规范说,可以根据邮件头和属性过滤邮件。因此,IBM MQ JMS允许应用程序根据JMS消息头和用户属性选择消息。无法根据正文内容过滤消息。

您可以要求发件人应用程序设置邮件属性,您的MDB可以根据这些属性进行过滤。

另一个选择是为MDB使用专用队列,在这种情况下您不需要过滤消息。

答案 2 :(得分:1)

看起来您的要求通常是发布/订阅模式,其中有一个或多个生产者和多个订阅者。您将成为订阅者之一,获取消息,测试您要查找的文本是否在有效负载中并处理它,如果没有则丢弃它。如果有任何情况,只是消费你的Q中的消息(即提交=删除消息),其他订阅者将不会受到影响因为thwy将有自己的Q订阅