【发布时间】: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"
我认为可能是因为 maxDepth 参数,所以我增加了它。不幸的是,当设置 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。消息内容可能不同,您可能是对的,不幸的是我无法对消息内容本身进行任何更改,它是外部传入的肥皂消息。