【问题标题】:ActiveMQ jolokia gives different message response depending on environmentActiveMQ jolokia 根据环境给出不同的消息响应
【发布时间】:2021-11-06 05:07:45
【问题描述】:

我必须获取(而不是消耗)队列中的消息的一部分。我使用 /api/jolokia/ 重用了此处提示作为响应的 bash 脚本:ActiveMQ Jolokia API How can I get the full Message Body

我有兴趣获得的部分回复是 MsgId in value:text: p>

"request": {
    "mbean": "org.apache.activemq:brokerName=MyBrokerName,destinationName=MyQueueName,destinationType=Queue,type=Broker",
    "type": "exec",
    "operation": "browseMessages()"
},
"value": [
    {
        "jMSCorrelationIDAsBytes": [],
        ***some other objects here ***
        "text": "<?xml version=\"1.0\"?>\r\n<RepositoryOperationRq xmlns=\"http://www.ACORD.org/\">\r\n  <MsgId>xxx28bab-e62c-4dbc-a2aa-xxx</MsgId>\r\n  <CreationDtTime>2020-01-01T11:11:11-11:00</CreationDtTime>\r\n 
        
        

在 DEV env ActiveMQ 上没有问题,但是当我尝试在 UAT env ActiveMQ 上做同样的事情时,根本没有 value:text 对象响应,有些其他对象的值不同,例如:

"connectionControl": false

"connectionControl": "false"

我认为可能是因为 ma​​xDepth 参数,所以我增加了它。不幸的是,当设置 maxDepth=5 我得到了那个错误:

"error_type": "java.lang.IllegalStateException",
"error": "java.lang.IllegalStateException : Error while extracting next from org.apache.activemq.broker.region.cursors.FilePendingMessageCursor@3bb9ace4",
"status": 500

整个 ActiveMQ 停止接收任何消息 - 必须强制重新启动它。两个 env 上的 ActiveMQ 配置应该相同,并且版本是 5.13.3。你知道为什么那个 text 对象不见了吗?

【问题讨论】:

  • 这里有什么反馈吗?
  • 是的,感谢您的 cmets。消息内容可能不同,您可能是对的,不幸的是我无法对消息内容本身进行任何更改,它是外部传入的肥皂消息。

标签: bash activemq jolokia


【解决方案1】:

我认为这里的区别在于每个环境中消息的内容browseMessages 操作只是返回相应目的地中的消息(例如MyQueueName)。

如果消息不是javax.jms.TextMessage,那么它将没有text 字段。如果一个属性是false 而不是"false",那只是意味着属性值是boolean 而不是String

【讨论】:

    猜你喜欢
    • 2015-11-19
    • 2015-02-26
    • 2013-10-25
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    相关资源
    最近更新 更多