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. Joe http://www.ttmsolutions.com 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: >>> http://old.nabble.com/Broker-Hangs-with-Durable-subscriptions-tp26976903p26976903.html >>> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >>> >> >> Rob Davies >> http://twitter.com/rajdavies >> I work here: http://fusesource.com >> My Blog: http://rajdavies.blogspot.com/ >> I'm writing this: http://www.manning.com/snyder/ >> >> >> >> >> >> >> > > -- View this message in context: http://old.nabble.com/Broker-Hangs-with-Durable-subscriptions-tp26976903p27012143.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.
