ActiveMQ 排队消息 java servicemix karaf 命令

ActiveMQ enqueued message java servicemix karaf command

我正在使用 ActiveMQ ServiceMix,我想在 java 中获得入队消息计数/出队消息计数等...。我想要 ActiveMQ 控制台中显示的值

Name    Number Of Pending Messages      Number Of Consumers     Messages Enqueued       Messages Dequeued       Views       Operations  
Consumer.ID-10-147-244-247-15461c6c293-38-0.Vir...  0   2   13  13  
Consumer.ID-10-147-244-247-15470570c61-108-0.Vi...  0   2   13  13

我想获取消息排队列:)

我的程序开始与消费者和听众的会话。一切正常。

但是为了监控我写了一个 karaf 命令 调用我的订阅对象(订阅包含 session/connection/queue 等...)

在我的订阅中,我尝试这样做:

ActiveMQConnection activeMQConnection = ((ActiveMQConnection) connection);
ActiveMQQueue activeMQQueue = getQueueConnection(queueName, activeMQConnection);

ActiveMQTopic a = AdvisorySupport.getConsumerAdvisoryTopic(activeMQQueue);

但接下来我不知道如何获取 DestinationStatistics 以获取有关我的 queue/topic 的所有信息...

我也试试这个:

QueueBrowser queueBrowser = session.createBrowser(activeMQQueue);

但在浏览器中没有任何有趣的内容。

如果有人可以帮助我获取我的 DestinationStatistics 对象 ;)

非常感谢

最后我使用 QueueBrowser 来了解队列的长度,QueuBrowser 只是浏览队列而不删除它们,所以我可以迭代和计算任何队列中的消息数量。