Hi Justin. Could you please tell me if you had a chance to review my question?
Thanks! Best regards. пт, 24 окт. 2025 г. в 21:28, Illia <[email protected]>: > Hi Justin. > I have some kind of video conferencing app where I need to create many > addresses/queues for each session/call. > Setting the auto delete flag to false means that I will need to clean > unused addresses and queues manually with the help of a scheduler which > complicates the solution. > > Is there any way to start taking into consideration auto delete delay? So > when failover is done, the queue is not deleted automatically but only > after a specified time? > > Thanks! Best regards. > > чт, 23 окт. 2025 г. в 17:51, Justin Bertram <[email protected]>: > >> I tracked this behavior down to ARTEMIS-3525 [1]. On start the broker will >> explicitly delete empty queues that are to be auto-deleted. >> >> That said, if auto-creation is enabled and you're using a protocol where >> auto-creation is supported then the queue should be re-created when a >> message is sent to it or a consumer is created on it. >> >> Is there a particular reason that you don't want to delete queues >> immediately after failover when the queue auto-delete flag is set to true? >> Have you considered setting the auto-delete flag to false so that this >> doesn't happen? >> >> >> Justin >> >> [1] https://issues.apache.org/jira/browse/ARTEMIS-3525 >> >> On Wed, Oct 22, 2025 at 8:10 PM Illia <[email protected]> wrote: >> >> > Hi Justin. >> > I have prepared a Java app for you. The link - >> > >> https://drive.google.com/file/d/1aLExH0nWTtWvdjFTw6KJIdid5wTXlJ9J/view?usp=sharing >> > Steps to reproduce the issue: >> > 1. Build Java app with *./mvnw clean package* >> > 2. Start docker compose *docker compose up* which will start java client >> > and 2 artemis nodes in replication mode (active and backup). >> > 3. After the application is started, an address with the name >> > "new-address" and a queue with the name "new-queue" are created. >> > 4. Stop active node with *docker stop artemis-node-a* >> > 5. Go to *http://localhost:8162/console/artemis >> > <http://localhost:8162/console/artemis> *where you can observe that >> > address was replicated and queue was not >> > [image: image.png] >> > [image: image.png] >> > >> > 6. The reason is that my queue is configured with autodelete: >> > [image: image.png] >> > 7. If you remove autoDelete and autoDeleteDeley lines and repeat >> > everything from the beginning, you will notice that both address and >> queue >> > are successfully replicated. >> > >> > My goal is to not delete queues immediately after failover when the >> queue >> > auto delete flag is set to true. Is it even possible? >> > >> > Thanks! Best regards. >> > >> > ср, 22 окт. 2025 г. в 06:07, Justin Bertram <[email protected]>: >> > >> >> Nothing in the address-settings seems problematic. Can you work up some >> >> instructions or ideally an automated reproducer so that I can observe >> the >> >> same behavior that you described? >> >> >> >> >> >> Justin >> >> >> >> On Tue, Oct 21, 2025 at 4:52 PM Illia <[email protected]> wrote: >> >> >> >> > Hi Justin. >> >> > This my settings in broker.xml: >> >> > >> >> > <address-setting match="#"> >> >> > <dead-letter-address>DLQ</dead-letter-address> >> >> > <expiry-address>ExpiryQueue</expiry-address> >> >> > <redelivery-delay>0</redelivery-delay> >> >> > >> >> > >> >> > >> >> >> <message-counter-history-day-limit>10</message-counter-history-day-limit> >> >> > <address-full-policy>PAGE</address-full-policy> >> >> > <auto-create-queues>true</auto-create-queues> >> >> > <auto-create-addresses>true</auto-create-addresses> >> >> > <auto-delete-queues>false</auto-delete-queues> >> >> > <auto-delete-addresses>false</auto-delete-addresses> >> >> > >> >> > <!-- The size of each page file --> >> >> > <page-size-bytes>10M</page-size-bytes> >> >> > >> >> > <!-- When we start applying the address-full-policy, e.g paging >> --> >> >> > <!-- Both are disabled by default, which means we will use the >> >> > global-max-size/global-max-messages --> >> >> > <max-size-bytes>-1</max-size-bytes> >> >> > <max-size-messages>-1</max-size-messages> >> >> > >> >> > <!-- When we read from paging into queues (memory) --> >> >> > >> >> > <max-read-page-messages>-1</max-read-page-messages> >> >> > <max-read-page-bytes>20M</max-read-page-bytes> >> >> > >> >> > <!-- Limit on paging capacity before starting to throw errors --> >> >> > >> >> > <page-limit-bytes>-1</page-limit-bytes> >> >> > <page-limit-messages>-1</page-limit-messages> >> >> > </address-setting> >> >> > >> >> > >> >> > ср, 22 окт. 2025 г. в 00:15, Justin Bertram <[email protected]>: >> >> > >> >> > > Can you provide the address settings that correspond to this queue? >> >> > > >> >> > > For what it's worth, setting the auto-delete message-count on the >> >> queue >> >> > to >> >> > > -1 is not normal as that means the broker will delete the queue >> >> > regardless >> >> > > of the number of messages it contains. It might make sense >> depending >> >> on >> >> > > your use-case, but folks typically don't want to delete their >> messages >> >> > > automatically. >> >> > > >> >> > > >> >> > > Justin >> >> > > >> >> > > On Tue, Oct 21, 2025 at 3:28 PM Illia <[email protected]> >> >> wrote: >> >> > > >> >> > > > Hi team. Could you please help me with the next issue. >> >> > > > >> >> > > > My cluster consists of two nodes with replication mode (live and >> >> > backup) >> >> > > > that are configured to auto delete queues. >> >> > > > >> >> > > > When my active node fails, I see that only addresses are >> replicated >> >> to >> >> > > the >> >> > > > backup node but not queues. Seems that the reason is that my >> queues >> >> are >> >> > > > configured for auto delete. Queue replication works fine without >> the >> >> > auto >> >> > > > delete flag. I tried to set up an auto delete delay but it seems >> >> that >> >> > it >> >> > > > still doesn’t work with failover. >> >> > > > >> >> > > > My goal is to not delete queues immediately after failover when >> the >> >> > queue >> >> > > > auto delete flag is set to true. >> >> > > > >> >> > > > Is there any way to do this? >> >> > > > >> >> > > > Here is my queue configuration in Java code: >> >> > > > >> >> > > > >> >> > > > >> >> > > > >> >> > > > >> >> > > > >> >> > > > >> >> > > > >> >> > > > *final QueueConfiguration queueConfig = >> >> > > > >> >> > > > >> >> > > >> >> > >> >> >> QueueConfiguration.of(queueName).setAddress(addressName).setRoutingType(RoutingType.ANYCAST).setAutoDelete(true).setAutoDeleteDelay(30000L).setAutoDeleteMessageCount(-1L).setPurgeOnNoConsumers(false).setNonDestructive(false);* >> >> > > > >> >> > > > Thanks! Best regards. >> >> > > > >> >> > > >> >> > >> >> >> > >> >
