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/.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

When using message queues in WSO2 Message Broker, messages are removed from the message store when the message consumers acknowledge the messages were received. There are several acknowledgement models defined in JMS specification 1.1

To configure the time within which consumers can acknowledge that messages were received, you can set the AndesAckWaitTimeOut entry in the JMS client:

System.setProperty("AndesAckWaitTimeOut", "30000");

If the acknowledgement fails within this time, the client informs the MB sever that this message was rejected from the client. The message is then scheduled to be redelivered later by the server.

If you want to limit the number of times the message broker attempts to deliver the message, you can set the maximumNumberOfMessageDeliveryAttempts entry in the andes-config.xml file:

<!--Broker will drop the message after the configured number of delivery attempts for each message.-->
	    <maximumNumberOfMessageDeliveryAttempts>10</maximumNumberOfMessageDeliveryAttempts>

Note that this is the total number of delivery attempts, not re-delivery attempts. After the maximum number of re-delivery attempts are breached, the message is sent to the Dead Letter Channel. This is useful when the client application does not acknowledge the message because an operation on the message failed.

If the message is successfully delivered on a redelivery attempt, the JMSRedelivered field is set to true in the message header, allowing the client to determine whether the message was delivered on its original attempt or on a redelivery attempt.

  • No labels