This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Acknowledging Message Delivery
A subscriber client receiving messages from a queue or topic in the broker should be configured to send an acknowledgement back to the broker when the messages are received. There are several acknowledgement methods that can be used by the subscriber.
Configuring the time taken to acknowledge messagesÂ
There are several acknowledgement models defined in JMS specification 1.1. To configure the time within which consumers can acknowledge messages, you can set the AndesAckWaitTimeOut
 entry in the JMS client as follows:Â
System.setProperty("AndesAckWaitTimeOut", "30000");
If the acknowledgment fails within the above time, the client informs the MB server that the message is rejected. The message is then scheduled to be redelivered later by the server.Â
Configuring standard JMS message acknowledgment patterns
The following are acknowledgment patterns introduced by JMS:
- Auto AcknowledgeÂ
- Duplicates Allowed
- Client Acknowledge
- Transacted Acknowledgement
Configuring per-message acknowledgment
Per-message acknowledgment can be used to ensure that the subscriber client acknowledges each message that is received. The subscriber can enable this feature by using one of the following options when creating the session.
Use theÂ
org.wso2.andes.jms.Session.PER_MESSAGE_ACKNOWLEDGE
enum available in the andes-client
JAR Â as shown below.import org.wso2.andes.jms.Session; QueueSession queueSession = queueConnection.createQueueSession(false, Session.PER_MESSAGE_ACKNOWLEDGE);
Alternatively, you can use the value 259 as shown below.
QueueSession queueSession = queueConnection.createQueueSession(false, 259);
Following is a sequence diagram on how an example scenario will work:
Â