【问题标题】:How to Selectively Process Messages from a websphere MQ如何选择性地处理来自 websphere MQ 的消息
【发布时间】:2016-08-01 22:26:49
【问题描述】:

我有一个 MDB,它可以拾取掉在其他人拥有的队列中的所有消息

该队列有很多订阅者。

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

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

我该怎么做?

【问题讨论】:

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


    【解决方案1】:

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

    您可以要求发送方应用程序设置消息属性,并且您的 MDB 可以根据这些属性进行过滤。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-18
        • 1970-01-01
        • 2017-08-30
        • 2011-03-28
        • 2010-09-21
        • 2011-12-16
        相关资源
        最近更新 更多