Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActiveMQ在不使用JMX、JMS的情况下获取队列大小_Java_Activemq - Fatal编程技术网

Java ActiveMQ在不使用JMX、JMS的情况下获取队列大小

Java ActiveMQ在不使用JMX、JMS的情况下获取队列大小,java,activemq,Java,Activemq,我需要一种在不使用或的情况下获取ActiveMQ中队列大小的方法。是否存在使用ActiveMQ API获取队列大小的解决方案 JMS中没有用于查询代理统计信息的API,这与将客户机与其他代理和中间代理分离的概念背道而驰。ActiveMQ确实提供了一些您可以使用的东西,JMX是获得您想要的东西的最强大的方式,但是如果您不想直接使用JMXAPI,您可以使用基于REST的方法,该方法利用ActiveMQ嵌入的项目来支持对代理使用的公开的项目的访问 除了REST选项之外,唯一的其他方法是启用,允许您向代

我需要一种在不使用或的情况下获取ActiveMQ中队列大小的方法。是否存在使用ActiveMQ API获取队列大小的解决方案

JMS中没有用于查询代理统计信息的API,这与将客户机与其他代理和中间代理分离的概念背道而驰。ActiveMQ确实提供了一些您可以使用的东西,JMX是获得您想要的东西的最强大的方式,但是如果您不想直接使用JMXAPI,您可以使用基于REST的方法,该方法利用ActiveMQ嵌入的项目来支持对代理使用的公开的项目的访问

除了REST选项之外,唯一的其他方法是启用,允许您向代理发送目标消息,以使用标准JMS代码检索运行时统计信息。

添加到activemq.xml。 以下是获取ActiveMQ统计信息的代码片段

public Long checkMessageCountOnAllBroker() throws JMSException {
    MapMessage mapMessage = (MapMessage) jmsTemplate.sendAndReceive("ActiveMQ.Statistics.Broker", Session::createMessage);
    return mapMessage.getLong("size");
}
这将从ActiveMq获取所有队列的大小。用于获取特定主题的静态信息

public Long checkMessageCountOnDestination() throws JMSException {
    MapMessage mapMessage = jmsTemplate.sendAndReceive("ActiveMQ.Statistics.Destination.some-topic", Session::createMessage);
    return mapMessage.getLong("size");
}
它将从目标主题获取统计信息

谢谢,“统计代理插件”是解决方案