如何有选择地处理来自 websphere MQ 的消息
How to Selectively Process Messages from a websphere MQ
我有一个 MDB,它拾取其他人拥有的队列中丢弃的所有消息
该队列有很多订阅者。
我只对特定类型的消息感兴趣。就像有些消息以 "Password Changed" 开头。其他的像"Violation".
我不想确认我不感兴趣的消息并将其留在队列中以供可能对此感兴趣的其他人使用
我该怎么做?
您可以使用 Selector
来过滤仅需要的消息。
另一种方法是为一条消息设置特定的 header(s),以便 filter/select 它而不触及实际消息。
JMS 规范说可以根据消息头和属性过滤消息。因此,IBM MQ JMS 允许应用程序 select 基于 JMS 消息头和用户属性的消息。无法根据正文内容过滤消息。
您可以要求发件人应用程序设置邮件属性,您的 MDB 可以根据这些属性进行过滤。
另一种选择是为您的 MDB 使用专用队列,在这种情况下您不需要过滤消息。
您的要求似乎通常是 publish/subscribe 模式,其中有一个或多个生产者和多个订阅者。您将成为订阅者之一,获取消息,测试您要查找的文本是否在有效负载中并处理它,如果不在则丢弃它。如果有任何情况,只需在你的Q中消费消息(即提交=删除消息),其他订阅者不会受到影响,因为他们将有自己的Q来订阅
我有一个 MDB,它拾取其他人拥有的队列中丢弃的所有消息
该队列有很多订阅者。
我只对特定类型的消息感兴趣。就像有些消息以 "Password Changed" 开头。其他的像"Violation".
我不想确认我不感兴趣的消息并将其留在队列中以供可能对此感兴趣的其他人使用
我该怎么做?
您可以使用 Selector
来过滤仅需要的消息。
另一种方法是为一条消息设置特定的 header(s),以便 filter/select 它而不触及实际消息。
JMS 规范说可以根据消息头和属性过滤消息。因此,IBM MQ JMS 允许应用程序 select 基于 JMS 消息头和用户属性的消息。无法根据正文内容过滤消息。
您可以要求发件人应用程序设置邮件属性,您的 MDB 可以根据这些属性进行过滤。
另一种选择是为您的 MDB 使用专用队列,在这种情况下您不需要过滤消息。
您的要求似乎通常是 publish/subscribe 模式,其中有一个或多个生产者和多个订阅者。您将成为订阅者之一,获取消息,测试您要查找的文本是否在有效负载中并处理它,如果不在则丢弃它。如果有任何情况,只需在你的Q中消费消息(即提交=删除消息),其他订阅者不会受到影响,因为他们将有自己的Q来订阅