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