@art: Yes. If durable subscriber went offline, broker has to keep persistent or non persistent both message somewhere(tmp storage). So that when the subscriber comes up again, broker should be able to send the messages to subscriber.
@raj: Test case is pretty simple. Steps: 1) Run a java consumer who has durable subscription to a topic. 2) Remove the consumer without unsubscribing. (Offline/Inactive durable subscriber) 3) Run a producer by specifying timetolive to 10 seconds and send messages to the same topic using two ways: MessageProducer producer = mySession.createProducer(destination); producer.setTimeToLive(10000); 1) producer.setDeliveryMode(DeliveryMode.PERSISTENT) : In this case you can see messages are getting expired after expiration time (10 seconds) exceeded. 2) producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT) : In this case you can see messages are not getting expired after expiration time (10 seconds) exceeded. Here message will only get expired when durable subscriber again comes up.(As you told in last comment that msgs will not be deleted untill they are ready to send). My question is about 2nd case only. That it should expire messages which are in tmp store considering expiration time. It should not wait for durable subscriber to come up again. Thanks, Anuj -- View this message in context: http://activemq.2283324.n4.nabble.com/Non-persistent-Messages-Not-getting-expired-even-after-expiration-time-exceeded-tp4680428p4680512.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.