我正在使用Spring的JmsTemplate的简单测试项目,它发送同步消息:
jmsTemplate.sendAndReceive(...)
JmsTemplate的代码片段来执行此操作:
Message requestMessage = messageCreator.createMessage(session);
responseQueue = session.createTemporaryQueue();
producer = session.createProducer(destination);
consumer = session.createConsumer(responseQueue);
requestMessage.setJMSReplyTo(responseQueue);
if (logger.isDebugEnabled()) {
logger.debug("Sending created message: " + requestMessage);
}
doSend(producer, requestMessage);
return receiveFromConsumer(consumer, getReceiveTimeout());
所有工作正常,但当我要去Jolokia控制台时,我可以在地址级别看到我所有的临时队列:
在标准ActiveMQ控制台中,不显示临时队列(删除?)。
由于我的应用程序使用了许多同步消息,列表可以快速增长。
我尽量用
<temporary-queue-namespace>temp</temporary-queue-namespace>
与
<address-setting match="temp.#">
<enable-metrics>false</enable-metrics>
</address-setting>
但是我的临时队列不在临时地址下…
是否可以在控制台中不显示临时队列?(因为当JmsTemplate收到响应或超时时,消费者被关闭,临时队列被标记为已删除)。
如果没有,如何将它们重新组合到一个地址文件夹中?
或者其他有用的东西来实现这一点。
我的应用程序处理大约30-40个队列,每天可能有1000个或更多的临时队列。ActiveMQ“Classic”在Web控制台中不显示临时队列,因此易于管理持久队列。我们计划迁移到Artemis,在我的简单测试用例中,我看到临时队列默认显示在Web控制台中,紧挨着所有其他队列,如果我有1000个或更多的临时队列,我需要向下滚动很长时间来显示我想要看到的队列。每次刷新后,滚动都会重新初始化。所以我想找到一个解决方案,将所有临时队列重新组合在一个文件夹中,如命名空间或其他解决方案。
处理大量队列和刷新JMX“树”视图的问题主要有两种方法。
值得注意的是,enable-metrics
仅处理与metrics插件相关的指标。将其设置为false
不会禁用它们的MBean。
将来,JMX“树”可能会从Web控制台中删除,部分原因是您正在观察的问题。