activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Fernandez <>
Subject Re: Broker Hangs with Durable subscriptions
Date Mon, 04 Jan 2010 12:14:14 GMT

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'


KameshBathina wrote:
> I even tried with 5.3. The timetolive field is working but for this to
> take effect the consumers should active. Other wise if consumer is down
> and timetolive field expires the broker will maintain them in memory or
> disk, till the consumer is up. When the consumer is UP, the messages are
> validated for timetolive and if they are expired they will be discarded
> and will not be delivered to consumers. 
> I think as per design, when consumers are down and even if timetolive is
> expired, messages will be in messaging system. Is it possible for broker
> to make them discarded based on timetolive irrespective of whether
> consumer is UP or DOWN ?
> So with this  behavior, if a consumer is down and producer is continue
> publishing messages they will be piled up in messaging system (without
> discard even with timetolive expiry)
> rajdavies wrote:
>> I would suggest you upgrade to 5.3 if possible - it would be the most  
>> straight forward way to resolve this
>> On 31 Dec 2009, at 09:59, KameshBathina wrote:
>>> Hi,
>>> We are using ActiveMQ 4 as messaging middle ware in our application.  
>>> Our
>>> architecture involves many (~20) durable subscribers and single  
>>> producer,
>>> all consumers are subscribed to a single topic. The producer sends  
>>> keep
>>> alive messages to all consumers periodically.
>>> When one of the consumer goes down, then the pending messages for that
>>> consumer are keep growing and over a time it occupying 20MB (default  
>>> broker
>>> memory for AMQ 4) and making broker MemoryPercentageUsed to 100%.  
>>> After this
>>> point the producer is blocked in publish() method. Hope that the  
>>> default
>>> producer flow control mechanism is triggering and halting the  
>>> producer. Even
>>> though other consumers are working fine, due to one down consumer  
>>> entire
>>> messaging system is going into hang state. The broker is in this  
>>> state till
>>> the DOWN consumer is up and consumed its messages.
>>> I have gone through documentation and user forums and found that
>>> "constantPendingMessageLimitStrategy" and  
>>> "constantPendingMessageLimit"
>>> properties can be used to limit the number of pending messages per  
>>> consumer.
>>> But these options are not working for durable subscribers.
>>> I tried with timetolive option with messages also, in AMQ 4 this  
>>> field is
>>> not working (ie., even after timetolive expired the messages are not  
>>> getting
>>> removed from messaging system)
>>> Can any body suggest me how can I avoid this issue with durable  
>>> subscribers
>>> and limit the pending messages so that producer will not block and  
>>> rest of
>>> the system will work fine.
>>> Thanks and Regards,
>>> Kamesh
>>> -- 
>>> View this message in context:
>>> Sent from the ActiveMQ - User mailing list archive at
>> Rob Davies
>> I work here:
>> My Blog:
>> I'm writing this:

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

View raw message