You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by spiiff <ma...@siemens.com> on 2007/10/29 19:31:17 UTC

message expiration

Hi,
one question about the message expiration in combination with topics.
I know how to configure the time-to-live.

A message first resides inside the journal. After the checkpointing(how to
configure checkpointing??), it is persisted in a database (if JDBC is
configured).

If the time-to-live is specified as zero the message does not expire.   
If the message does not expire, will it never be dropped out of the
database? 

How are the rules?

If you are using durable subscription and set the "time to live" to maybe 10
seconds and the consumer is active after 20 seconds again, then the consumer
will not receive the message, because it was dropped already.. ( I tried
this in my UnitTest)


We thought a message is dropped out of the activemq persistence if it is
received by the consumer(s). We have to make sure the consumers really
receive the messages. But if we set time-to-live to zero, then our database
will explode.

Regards,
Matthias
-- 
View this message in context: http://www.nabble.com/message-expiration-tf4713621s2354.html#a13473823
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: message expiration

Posted by spiiff <ma...@siemens.com>.
So we checked this ourselves, of course the messages are dropped out of the
activemq persistence if they are received by the consumer(s). It is
configurable in which time frame consumed messages will be dropped. And
after checkpointing the journal to the database consumed messages are also
dropped. 
But in this case:

        if (longTermPersistence instanceof JDBCPersistenceAdapter) {
            // Disabled periodic clean up as it deadlocks with the
checkpoint
            // operations.
            ((JDBCPersistenceAdapter)
longTermPersistence).setCleanupPeriod(0);
        }
        ( from class JournalPersistenceAdapter)

the periodic clean up is disabled and the database is cleaned only during
checkpoint operation (I guess...)


spiiff wrote:
> 
> Hi,
> one question about the message expiration in combination with topics.
> I know how to configure the time-to-live.
> 
> A message first resides inside the journal. After the checkpointing(how to
> configure checkpointing??), it is persisted in a database (if JDBC is
> configured).
> 
> If the time-to-live is specified as zero the message does not expire.   
> If the message does not expire, will it never be dropped out of the
> database? 
> 
> How are the rules?
> 
> If you are using durable subscription and set the "time to live" to maybe
> 10 seconds and the consumer is active after 20 seconds again, then the
> consumer will not receive the message, because it was dropped already.. (
> I tried this in my UnitTest)
> 
> 
> We thought a message is dropped out of the activemq persistence if it is
> received by the consumer(s). We have to make sure the consumers really
> receive the messages. But if we set time-to-live to zero, then our
> database will explode.
> 
> Regards,
> Matthias
> 

-- 
View this message in context: http://www.nabble.com/message-expiration-tf4713621s2354.html#a13590816
Sent from the ActiveMQ - User mailing list archive at Nabble.com.