Prerequisites
See Prerequisites to Run the MB Samples for a list of prerequisites.
About the sample
This sample demonstrates how the Time to Live(TTL) value can be set to messages that are published to WSO2 Message Broker. It first introduces a sample JMS client named QueueSender, which is used to send messages with TTL value set or without a TTL value for a queue in WSO2 Message Broker. Then it introduces a sample JMS client named QueueReceiver to receive the messages, which are not expired at that time and prints the number of received messages on the console.
The <MB_HOME>/Samples/JmsExpirationSample/src/org/sample/
jms directory has the following classes:
Building the sample
Run the ant command from the <MB_HOME>/Samples/JmsExpirationSample
directory.
Analyzing the output
You will get the following log in your console.
[java] Sending 5 messages with TTL value of 1sec [java] Received message count: 0 [java] Sending 5 messages without TTL [java] Received message count: 5 [java] Sending 5 messages TTL value of 10sec [java] Received message count: 5
The first 5 messages were published with a TTL value of one second and none of them got delivered since they expired. In the second case, 5 messages were sent without a TTL value and all of them got delivered. In the last case, 5 messages were sent with a TTL value of ten seconds and all of them got delivered since they could reach the recipient before the messages expire.