What you describe is as expected. Topics are a little different w.r.t to
expiry as the messages are only persisted on a per consumer basis.
If there are no consumers, the messages are discarded so they don't get a
chance to expire.
If there are durable subscribers the pendingMessageLimitStrategy kicks in
and first does message expiry, then does message discarding.

On 17 March 2010 09:38, roxanac <maria_...@hotmail.com> wrote:

>
> Hello!
> I have a problem or at least a thing that is not very clear for me.
> I am publishing non-persistent messages in a topic, having TimeToLive set
> to
> 5 seconds for producer and for message also ( I have a C# producer but this
> is not that relevant since I get the same behavior with a Java producer ).
> But in JConsole there is no registered expired message even after letting
> the producer publish messages for a very long time. All it seams to happen
> is that the Queue size of the topic is continuously increasing no matter if
> topic consumers exist or not.
>
> ex.:
> DequeueCount = 16402
> DispatchCount = 16402
> EnqueueCount= 16443
> ExpiredCount=0
> QueueSize=16443
>
> in activemq.xml I have the following:
>
> <policyEntry topic=">"
>                producerFlowControl="false"
>                memoryLimit="20mb"
>                optimizedDispatch="true"
>                lazyDispatch="false"
>                strictOrderDispatch="true"
>                expireMessagesPeriod="1000">
>
>                <deadLetterStrategy>
>                        <individualDeadLetterStrategy processExpired="false"
> />
>                </deadLetterStrategy>
>
>                <pendingMessageLimitStrategy>
>                        <constantPendingMessageLimitStrategy limit="1"/>
>                </pendingMessageLimitStrategy>
> </policyEntry>
>
> If I do the same thing for a queue the messages are expiring just fine, so
> no problem there, but I need a similar behavior for topics.
> I might be doing something wrong or this is just not working....
>
> I wrote in other post here the following:
>
>
> Wrt AMQ 5.3. By default, persistent messages that expire are automatically
> moved from their destination to the DLQ. However, non-persistent messages
> that expire are automatically removed/deleted from their destination.
>
> By default, the message broker sweeps destinations of expired messages
> every
> 30 seconds. You can change this default via the 'expireMessagesPeriod'
> property.
>
>
> Thank you!
> Roxana
>
> --
> View this message in context:
> http://old.nabble.com/Topics-messages-don%27t-expire-tp27929452p27929452.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 
http://blog.garytully.com

Open Source Integration
http://fusesource.com

Reply via email to