This sample demonstrates how the message expiration time (time to live) can be set for messages published to WSO2 message broker (WSO2 MB).
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.