Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异步读取消息时检查JMS类型_Java_Jms_Spring Jms_Jms Topic_Openmq - Fatal编程技术网

Java 异步读取消息时检查JMS类型

Java 异步读取消息时检查JMS类型,java,jms,spring-jms,jms-topic,openmq,Java,Jms,Spring Jms,Jms Topic,Openmq,我的JMS中有一个队列。在向队列发送消息时,我将JMStype称为“XYZ”。在消费者端,我有一个onMessage侦听器。我想知道的是 在onMessage listener中,我如何检查消息的JMStype而不使消息排队。如果我正在运行的实例发现JMStype不是“XYZ”,那么它不应该做任何事情,也不应该将其从队列中排出。只有需要JMStype“XYZ”消息的实例才应该将消息出列并进一步处理它 感谢您抽出时间阅读我的查询。为此,我建议使用消息选择器而不是JMSTypespringjmsme

我的JMS中有一个队列。在向队列发送消息时,我将JMStype称为“XYZ”。在消费者端,我有一个onMessage侦听器。我想知道的是

  • 在onMessage listener中,我如何检查消息的JMStype而不使消息排队。如果我正在运行的实例发现JMStype不是“XYZ”,那么它不应该做任何事情,也不应该将其从队列中排出。只有需要JMStype“XYZ”消息的实例才应该将消息出列并进一步处理它

  • 感谢您抽出时间阅读我的查询。

    为此,我建议使用消息选择器而不是
    JMSType
    springjms
    messagelisteners允许您根据JMS属性以及JMS头过滤消息

    将消息写入队列时,您可以将消息权限设置为
    “type='abc'”
    ,在侦听器的配置上,您可以通过提供
    消息选择器=“type='abc'”
    来查找某些“类型”

    这样,仅从队列中拾取与选择器匹配的消息