You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Sebastien Marc <se...@mscibarra.com> on 2006/08/22 12:21:26 UTC

Re: [activemq-user] Re: Cleanup for expired Messages

So in other words, unless you have one consumer on a queue containing expired
messages, those messages will never expire ?.

I understand it would be unusual not to have at least one consumer, but on a
highly fault tolerant system, we might not want to take the risk of out of
memory conditions if a fast producer is sending non persistent messages with
an expiration time while there is no consumer listening on the queue. The
out of memory might happen because of the already expired messages isnt'it
?.

Seb.



Ramzi Saba wrote:
> 
> That's right, expired messages are automatically deleted from the database
> so
> you don't need to worry about cleanup of neither expired messages nor
> deadletters.
> 
> Also to be accurate, in the latest milestone if a consumer tries to
> consume
> from a destination, all expired messages on that destination are first
> sent to
> their own deadletter queue
> "org.activemq.deadletter.<physical_destination_name>".  Then the cleanup
> process deletes both the original expired message and its corresponding
> deadletter from the database every 5 minutes.
> 
> -ramzi
> 
> Matthew Sinclair-Day (msd@msdservices.com) wrote:
>>
>> Thanks, Ramzi.
>>
>> Just so I am clear:  in the current 3.1-M6 release, I can expect these
>> messages to be deleted automatically from the DLQ?  (This would be OK
>> with me right now, as I am more concerned that my code should be
>> monitoring some queues, like the DLQ,  that it is not.)
>>
>> Matt
>>
>> On 2005-08-05 03:57:59 -0400, "Ramzi Saba"
>> <rs...@optaros.com> said:
>>
>> Hi Matt,
>> >
>> > Currently the cleanup runs every 5 minutes.  Expired messages are sent
>> to a
>> > deadletter queue (org.activemq.deadletter.DLQ).  However the current
>> behavior
>> > is not consistent, as the deadletter message is set to expire and the
>> cleanup
>> > thread deletes deadletters as well.
>> >
>> > I have a fix for the next release which would allow to configure
>> deadletter
>> > parameters (e.g. deadletter name, cleanup, etc.) per broker/persistence
>> store.
>> > I'll keep you posted.
>> >
>> > Thanks,
>> > -ramzi
>> >
>> > Matthew Sinclair-Day (msd@msdservices.com) wrote:
>> >
>> >> Hi.  A few questions about how ActiveMQ 3.1 manages expired messages:
>> >>
>> >> 1. Using Oracle behind the journal, how often does the cleanup task
>> run
>> >> to remove expired messages from Oracle?  I assume this is common
>> >> behavior for the JDBC persistence layer, or does each kind of database
>> >> have its own policies?
>> >>
>> >> 2. Are expired messages simply purged from the database or are they
>> >> moved into a dead letter queue?
>> >>
>> >> 3. What destination does one monitor to read messages from the dead
>> >> letter queue?
>> >>
>> >> 4. How long do messages stay in the dead letter queue?
>> >>
>> >> Matt
>> >>
>>
>>
>>
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/-activemq-user---Cleanup-for-expired-Messages-tf199347.html#a5922804
Sent from the ActiveMQ - User forum at Nabble.com.


Re: [activemq-user] Re: Cleanup for expired Messages

Posted by James Strachan <ja...@gmail.com>.
Agreed - we should maybe be more aggressive evicting and removing
expired messages. Patches are very welcome :)

http://incubator.apache.org/activemq/contributing.html

On 8/22/06, Sebastien Marc <se...@mscibarra.com> wrote:
>
> So in other words, unless you have one consumer on a queue containing expired
> messages, those messages will never expire ?.
>
> I understand it would be unusual not to have at least one consumer, but on a
> highly fault tolerant system, we might not want to take the risk of out of
> memory conditions if a fast producer is sending non persistent messages with
> an expiration time while there is no consumer listening on the queue. The
> out of memory might happen because of the already expired messages isnt'it
> ?.
>
> Seb.
>
>
>
> Ramzi Saba wrote:
> >
> > That's right, expired messages are automatically deleted from the database
> > so
> > you don't need to worry about cleanup of neither expired messages nor
> > deadletters.
> >
> > Also to be accurate, in the latest milestone if a consumer tries to
> > consume
> > from a destination, all expired messages on that destination are first
> > sent to
> > their own deadletter queue
> > "org.activemq.deadletter.<physical_destination_name>".  Then the cleanup
> > process deletes both the original expired message and its corresponding
> > deadletter from the database every 5 minutes.
> >
> > -ramzi
> >
> > Matthew Sinclair-Day (msd@msdservices.com) wrote:
> >>
> >> Thanks, Ramzi.
> >>
> >> Just so I am clear:  in the current 3.1-M6 release, I can expect these
> >> messages to be deleted automatically from the DLQ?  (This would be OK
> >> with me right now, as I am more concerned that my code should be
> >> monitoring some queues, like the DLQ,  that it is not.)
> >>
> >> Matt
> >>
> >> On 2005-08-05 03:57:59 -0400, "Ramzi Saba"
> >> <rs...@optaros.com> said:
> >>
> >> Hi Matt,
> >> >
> >> > Currently the cleanup runs every 5 minutes.  Expired messages are sent
> >> to a
> >> > deadletter queue (org.activemq.deadletter.DLQ).  However the current
> >> behavior
> >> > is not consistent, as the deadletter message is set to expire and the
> >> cleanup
> >> > thread deletes deadletters as well.
> >> >
> >> > I have a fix for the next release which would allow to configure
> >> deadletter
> >> > parameters (e.g. deadletter name, cleanup, etc.) per broker/persistence
> >> store.
> >> > I'll keep you posted.
> >> >
> >> > Thanks,
> >> > -ramzi
> >> >
> >> > Matthew Sinclair-Day (msd@msdservices.com) wrote:
> >> >
> >> >> Hi.  A few questions about how ActiveMQ 3.1 manages expired messages:
> >> >>
> >> >> 1. Using Oracle behind the journal, how often does the cleanup task
> >> run
> >> >> to remove expired messages from Oracle?  I assume this is common
> >> >> behavior for the JDBC persistence layer, or does each kind of database
> >> >> have its own policies?
> >> >>
> >> >> 2. Are expired messages simply purged from the database or are they
> >> >> moved into a dead letter queue?
> >> >>
> >> >> 3. What destination does one monitor to read messages from the dead
> >> >> letter queue?
> >> >>
> >> >> 4. How long do messages stay in the dead letter queue?
> >> >>
> >> >> Matt
> >> >>
> >>
> >>
> >>
> >
> >
> >
>
> --
> View this message in context: http://www.nabble.com/-activemq-user---Cleanup-for-expired-Messages-tf199347.html#a5922804
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/