# redeliveryDelay

When `redeliveryDelay` is set, the EMS server waits the specified interval before returning an unacknowledged message to the queue.

When a previously delivered message did not receive a successful acknowledgment, the EMS server waits the specified redelivery delay before making the message available again in the queue. This is most likely to occur in the event of a transaction rollback, session or message recovery, session or connection close, or the abrupt exit of a client application. However, note that the delay time is not exact, and in most situations will exceed the specified `redeliveryDelay`.

Note: The redelivery delay is not available for routed queues.

The value can be specified in seconds, minutes, or hours. The value may be in the range of 15 seconds and 8 hours.

You can set `redeliveryDelay` using the form:

       redeliveryDelay=time[sec|min|hour]

where time is the number of seconds. Zero is a special value that indicates no redelivery delay.

You can optionally include time units, such as sec, min, or hour describe the time value as being in seconds, minutes, or hours, respectively. For example:

       redeliveryDelay=30min

specifies a redelivery delay of 30 minutes.

During the delay interval, messages are placed in the `$sys.redelivery.delay` queue. This queue can be browsed, but it cannot be consumed from or purged. However, purging the queue from which the delayed message came, or removing the message using its message ID, immediately removes that message from `$sys.redelivery.delay`.

Note: While a message is on the `$sys.redelivery.delay queue`, it is not on the queue from which it came and so it is not included in statistical message counts. This includes `maxmsgs`, `maxbytes`, `flowControl`, and so on.
Copyright © Cloud Software Group, Inc. All rights reserved.