我在ActiveMQ中有一个错误队列,该队列由Apache Camel的onException错误处理程序填充。此队列中可能有数千条消息。
我没有使用ActiveMQ Web控制台,而是构建了一个自定义Web管理员,以集成来自其他组件的其他一些统计信息。因此,我也想包括ActiveMQ的统计信息。
ActiveMQ版本:5.14.3
我研究了Jolokia JMX API及其操作。例如,对于代理的Jolokia API端点,我有以下负载:
{
"type": "exec",
"mbean": "org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=test.errors",
"operation": "browse(java.lang.String)",
"arguments": ["EXCEPTION_TYPE LIKE '%jdbc%'"]
}
标头字段EXCEPTION_TYPE
已通过Apache Camel Route填充。目前,该队列中有超过1万条消息。如上所述,我向带有有效负载的代理API端点发出了POST请求。尽管我有超过1万条消息,但此请求仅产生了400条消息(由于最大页面大小的限制,在source code中进行了硬编码)。这意味着我无法通过Jolokia一次获得超过400条消息。我也尝试了BrowseMessages()方法。看起来,它通常做同样的事情。
我试图查看Hawtio在检索所有消息方面是否做了一些特别的事情。但是,结果是相同的(最多400条消息)。
ActiveMQ Web控制台不会提取所有消息。这可能是因为它与ActiveMQ项目紧密相关。
我不仅限于JMX / Jolokia。如果可以通过某些API获取这些统计信息,则同样可以。
任何输入都会很棒!