Search code examples
javaactivemq-artemisjmstemplate

ActiveMQ Artemis temp queue


I'm using simple test project with Spring's JmsTemplate that sends synchronous messages with:

jmsTemplate.sendAndReceive(...)

Code snippet of JmsTemplate to do this:

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());

All work fine but when I'm going to Jolokia console I can see all my temp queues at address level:

enter image description here

In standard ActiveMQ console temporary queues are not shown (deleted?).

Because of my application use many synchronous message, list can grow up rapidly.

I try to use

<temporary-queue-namespace>temp</temporary-queue-namespace> 

with

<address-setting match="temp.#">
   <enable-metrics>false</enable-metrics>
</address-setting>

But my temp-queue are not under temp addresses...

Does it possible to don't show temp queue in console? (because when JmsTemplate has received response or time-out, consumer is closed and temp queue is marked as deleted).

If not, how can I regroup them into one addresses folder?

or something else useful to achieve this.

My application work with about 30-40 queues, and possibly 1000 or more temp queues by day. ActiveMQ "Classic" doesn't show temp queue in web console so its easy to administer durable queue. We plan to migrate to Artemis, and during my simple test case I see that temp queue are by default shown in the web console next to all other queues, and if I have 1000 or more temp queues I need to scroll down a very long time to show the queues that I want to see. After each refresh the scroll is reinitialized. So i want to find a solution to regroup all temp queue in one folder like namespace or other solution.


Solution

  • There are two main ways to deal with a large number of queues and problems with refreshing the JMX "tree" view.

    • Use the "Queues" tab to view the queues you're interested in rather than the JMX "tree" view. You can even filter out temporary queues, e.g.: enter image description here
    • Disable refresh of the JMX "tree" view via the "Preferences" available by clicking on the user icon in the top right of the web console, e.g.: enter image description here

    It's worth noting that the enable-metrics only deals with metrics as they are related to metrics plugins. Setting this to false does not disable their MBeans.

    In the future the JMX "tree" like likely be removed from the web console due, in part, to the issues you're observing.