Invoking the DLQ handler
Invoke the dead-letter queue handler using the runmqdlq command. We can name the DLQ we want to process and the queue manager we want to use in two ways.
The two ways are as follows:
- As parameters to runmqdlq from the command prompt. For example:
runmqdlq ABC1.DEAD.LETTER.QUEUE ABC1.QUEUE.MANAGER <qrule.rul- In the rules table. For example:
INPUTQ(ABC1.DEAD.LETTER.QUEUE) INPUTQM(ABC1.QUEUE.MANAGER)
The examples apply to the DLQ called ABC1.DEAD.LETTER.QUEUE, owned by the queue manager ABC1.QUEUE.MANAGER.
If we do not specify the DLQ or the queue manager as shown, the default queue manager for the installation is used along with the DLQ belonging to that queue manager.
The runmqdlq command takes its input from stdin ; you associate the rules table with runmqdlq by redirecting stdin from the rules table.
To run the DLQ handler we must be authorized to access both the DLQ itself and any message queues to which messages on the DLQ are forwarded. For the DLQ handler to put messages on queues with the authority of the user ID in the message context, we must also be authorized to assume the identity of other users.
For more information about the runmqdlq command, see runmqdlq.
- The sample DLQ handler amqsdlq
In addition to the dead-letter queue handler invoked using the runmqdlq command, IBM MQ provides the source of a sample DLQ handler amqsdlq with a function that is similar to that provided by runmqdlq.Parent topic: Processing messages on an IBM MQ dead-letter queue
Related information