activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Wartes <>
Subject Re: Coping with forgetful subscribers
Date Thu, 29 Jul 2010 17:07:56 GMT

I have, and agree that this would be an excellent way to maintain a sliding
window of message history. However, when it comes time to use that history,
you don't want to consume the messages in such a way that they aren't
available again. Otherwise, if you have two bouts of amnesia before the
message "history" has refilled enough to cover, you might fail to replay
certain messages. (You could solve this by having multiple history queues,
of course, but that seems... inelegant.)

I hadn't thought about playing with message acks though. I had assumed that
if you fail to acknowledge receipt of a message, you won't get the next one.
The thought would be that the subscriber would just never acknowledge
messages, so that whenever it reconnects, it gets a full replay?

Gary Tully wrote:
> Have a read of
> I can imagine a variant of a filtered destination that sets an message
> expiry duration such that it maintains a time limited mirror of a
> queue. Then a composite destination that also pulls from the mirror.
> If you implement your own destination interceptor you can have
> complete control of where messages end up w.r.t to destinations.
> I also wonder about ack modes, could the amnesia include forgetting to
> ack or commit, that seems easier as all of the received but un acked
> messages will still be available for redelivery once the consumer
> disconnects.

View this message in context:
Sent from the ActiveMQ - User mailing list archive at

View raw message