【问题标题】:activemq browse command with selector带选择器的 activemq 浏览命令
【发布时间】:2015-11-23 23:38:45
【问题描述】:

我正在使用 ActiveMQ 提供的 UNIX 命令来浏览队列,并且我正在尝试浏览特定队列,并指定 JMS 选择器。这就是我想要做的:

./activemq browse --amqurl tcp://host:port --msgsel "JMSMessageID='ID:XXXX'" QUEUE.FOO

通过 JMSMessageID 选择,不起作用。

然后,我想通过 JMSText 进行一些过滤,匹配任何字符串。这里的问题是消息是 XML,也许我需要处理特殊字符。

./activemq browse --amqurl tcp://host:port --msgsel "JMSText='*<anyTag>SOMEVALUE</anyTag>*'" QUEUE.FOO

有人做过这样的过滤吗?有匹配任何字符串的消息?

【问题讨论】:

    标签: java jms activemq jmstemplate


    【解决方案1】:

    经过几个小时的尝试,终于找到了格式。

    应该在外面使用双引号。在里面转义单引号。

    使用消息 ID 浏览确切的 1 条消息:

    ./activemq browse --msgsel "JMSMessageID=\'ID:wilsonyipoffice-12345-1560070020263-6:3:1:1:2\'" queueName
    

    要浏览来自同一主机的消息:

    ./activemq browse --msgsel "messageID='wilsonyipoffice-12345-1560070020263-6'" queueName
    

    也可以在清除命令中使用。

    【讨论】:

      【解决方案2】:

      据此: https://github.com/apache/activemq/pull/104/commits/4fe17d080715ca712f39f796b6a43a722a3e1119

      您必须在属性名称周围使用转义符:\",即:

      ./activemq browse --amqurl tcp://host:port --msgsel \"JMSMessageID='ID:XXXX'\" QUEUE.FOO
      

      使用通配符时,我仍然会出错。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-11
        • 2017-04-18
        • 2015-06-21
        • 2019-06-04
        • 2011-11-19
        • 2020-06-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多