Java JMS与内容基过滤器

Java JMS与内容基过滤器,java,ibm-mq,spring-jms,Java,Ibm Mq,Spring Jms,可以用JMS进行基于内容的过滤吗 IBM MQ发布/订阅似乎允许内容库筛选 我试图用我的JMSListener找到一种方法来过滤Body元素,但我无法使其正常工作。IBM MQ不能直接基于Body进行过滤,只能基于消息属性进行过滤。IBM声明扩展消息选择提供程序可以基于消息负载进行消息选择,但据我所知,唯一可用的扩展消息选择提供程序是ACE/IIB/WMB 请查看IBM知识中心页面: 属性值可能与消息正文中的值重复。JMS没有为可能成为属性的内容定义策略。但是,应用程序开发人员必须知道,JM

可以用JMS进行基于内容的过滤吗

IBM MQ发布/订阅似乎允许内容库筛选


我试图用我的JMSListener找到一种方法来过滤Body元素,但我无法使其正常工作。

IBM MQ不能直接基于Body进行过滤,只能基于消息属性进行过滤。IBM声明扩展消息选择提供程序可以基于消息负载进行消息选择,但据我所知,唯一可用的扩展消息选择提供程序是ACE/IIB/WMB


请查看IBM知识中心页面:

属性值可能与消息正文中的值重复。JMS没有为可能成为属性的内容定义策略。但是,应用程序开发人员必须知道,JMS提供程序可能比消息属性中的数据更有效地处理消息体中的数据。为了获得最佳性能,应用程序只有在需要自定义消息头时才必须使用消息属性。这样做的主要原因是支持自定义消息选择

JMS消息选择器允许客户端使用消息头指定它感兴趣的消息。仅传递标题与选择器匹配的消息

消息选择器不能引用消息正文值。

当消息头字段和属性值被替换为选择器中相应的标识符时,当选择器的计算结果为true时,消息选择器将匹配消息

消息选择器是一个字符串,其语法基于SQL92条件表达式语法的子集。消息选择器的求值顺序在优先级别内从左到右。可以使用括号更改此顺序。预定义的选择器文字和运算符名称在这里用大写字母书写;但是,它们不区分大小写


请同时查看IBM知识中心页面

可以根据选择的消息有效负载内容(也称为内容过滤)进行订阅,但IBM®MQ不能直接执行向此类订阅发送哪些消息的决定;相反,需要一个扩展的消息选择提供程序(例如IBM Integration Bus)来处理消息


我相信是这样<代码>>然后,消息使用者只接收其标题和属性与选择器匹配的消息。。。消息选择器不能根据消息正文的内容来选择消息。我不知道是否有某种方法可以以某种方式附加这些专有的IBM筛选器。IBM MQ不能基于正文进行筛选,只能基于消息属性。@JoshMc您完全正确,我认为我们可以,但我意识到,使用WebSphereMessageBroker是唯一可能的。谢谢