Max Redelivery Count
Configure a Redelivery Policy
A redelivery policy is a filter that helps you conserve resources by limiting the number of times the Mule runtime engine (Mule) executes messages that generate errors. You can add a redelivery policy to any source in a flow.
When you add a redelivery policy to a flow’s source, Mule evaluates the received data before it executes the flow’s components. If a message delivery fails a specified number of times, the redelivery policy prevents the flow from processing the received data and raises a REDELIVERY_EXHAUSTED error.
Redelivery Policy Configuration Parameters
Field | Type | Default Value | Description |
---|---|---|---|
Number |
5 |
Maximum number of times that a message can be redelivered to the flow and processed unsuccessfully before raising a MULE:REDELIVERY_EXHAUSTED error. |
|
Use Secure Hash |
Boolean |
True |
Indicates whether to use a secure hash algorithm to identify a redelivered message. |
Message Digest Algorithm |
String |
SHA-256 |
Secure hashing algorithm to use for the message. If the payload of the message is a Java object, Mule ignores the Message Digest Algorithm value and returns the value that the payload’s |
ID Expression |
Expression |
- |
Defines one or more expressions that determine when a message has been redelivered. This property can be set only if the value of Use Secure Hash is False. |
Object Store |
String |
Object Store created by Mule’s default |
Object Store in which the redelivery counter for each message is stored. You can configure the Object Store as a reference or an inner element. For information, see the Object Store connector documentation. |
How the Redelivery Policy Works
Each time the source receives a new message, Mule identifies the message by generating its key.
-
If the processing flow causes an exception, Mule increments the counter associated with the message key. When the counter reaches a value greater than the configured maxRedeliveryCount value, Mule throws a MULE:REDELIVERY_EXHAUSTED error.
-
If the processing flow does not cause an exception, its counter is reset.
Errors
-
MULE:REDELIVERY_EXHAUSTED
Thrown when the number of executions that raise an error is greater than the configured maxRedeliveryCount value.
Example
In this example, Mule logs an error with a Redelivery exhausted in http listener
message when the maxRedeliveryCount of 2 is exceeded:
<flow name="logOnRedeliveryExhausted">
<http:listener path="test" config-ref="listenerConfig">
<redelivery-policy maxRedeliveryCount="2" useSecureHash="true"/>
</http:listener>
<flow-ref name="processData"/>
<error-handler>
<on-error-continue type="MULE:REDELIVERY_EXHAUSTED">
<logger message="Redelivery exhausted in http listener" level="ERROR"/>
</on-error-continue>
</error-handler>
</flow>