Transfer Messages from one JMS Queue to Another

Is there a way to transfer all the expired messages from one JMS queue to some another JMS Queue designated to handle those expired messages (e.g. raising an alarm etc…)


Hi Manoj ,

You can try exploring the join feature provided by Universal Messaging.

excerpt from documentation :
“Joining a channel to another channel or queue allows you to set up content routing so
that events published to the source channel will be passed on to the destination channel/
queue automatically. Joins also support the use of filters, thus enabling dynamic content

Please refer to UM documentation for more details

Have you considered Dead Event Store? You do not need to do anything else if you use this option.

Dead Event Store would be a good option to explore. However you can specifying a TTL of 0 will mean that events will remain on the channel indefinitely.

One more thing is, TTL and Capacity will delete the old events from the store when Honor Capacity is set to false on the Queue/Channel Properties. In that case Dead Event Stores will help you to route to another Queue/Topic.

Thanks guys for sharing your thoughts and experience around it.

Forgot to mention that we are using Broker not UM.

->As you mentioned Join feature of UM is basically used for sharing the interest. Requirement here is to transfer the document from one queue if its TTL has expired. I don’t think this option will fulfill the requirement.

@ M@he$h
As per my understanding DLQ feature is used when a document doesn’t have any subscription defined. Went through the documentation and tried it myself. Not sure how TTL and Capacity of a queue can be leveraged to achieve this requirement.

I have one more question, does IS emits an event if a document is removed from broker queue because of expired TTL. If yes, how can we capture that event and process it.


IS does not emit any event, You need to configure the DLQ in broker for this.