activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Justin Bertram <jbert...@apache.com>
Subject Re: Artemis 1.5.1 question about the ExpiryQueue
Date Mon, 09 Jan 2017 14:50:07 GMT
> Is it possible to achieve the same functionality for dynamically created queues ?

In short, no.


Justin

----- Original Message -----
From: "Maciej GaƂkowski" <maciejgalkowski@gmail.com>
To: users@activemq.apache.org
Sent: Monday, January 9, 2017 3:52:16 AM
Subject: Artemis 1.5.1 question about the ExpiryQueue

This is sort of follow up to my previous message.
I am evaluating STOPM v1.2 protocol implementation. In our use case STOMP
message consumers have to call an unreliable third party dependency, and
this call can fail from time to time.
The subscription is set in the ack:client-individual mode.

As the consumers are unreliable, we would like to have the messages
reenqueued on the same queue if the consumer doesn't sent ACK back. One way
around that is to set the expiry timeout on the message/queue.

In the Apollo project, it was possible to dynamically set the expiry queue
name using wildcard (*). According to this documentation:
https://activemq.apache.org/apollo/documentation/user-manual.html

>dlq: Is the dead letter queue configured for the destination. A dead
letter queue is used for storing messages that failed to get processed by
consumers. If not set, then messages that fail to get processed will be
dropped. If '*' appears in the name it will be replaced with the queue's id.

In Artemis it is potentially possible, if I use the static queue names, and
set the config like that :
<address-settings>
         <address-setting match="jms.queue.unreliableConsumer">
            <dead-letter-address>jms.queue.DLQ</dead-letter-address>
            <expiry-address>jms.queue.unreliableConsumer</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <redistribution-delay>0</redistribution-delay>
            <max-delivery-attempts>-1</max-delivery-attempts>
             <expiry-delay>30000</expiry-delay>
            <!-- with -1 only the global-max-size is in use for limiting -->
            <max-size-bytes>-1</max-size-bytes>
            <message-counter-history-day-limit>10</message-counter-
history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
        <send-to-dla-on-no-route>false</send-to-dla-on-no-route>
            <auto-create-jms-queues>true</auto-create-jms-queues>
        <auto-delete-jms-queues>false</auto-delete-jms-queues>
         </address-setting>
      </address-settings>

Is it possible to achieve the same functionality for dynamically created
queues ?

Mime
View raw message