Why a Default Transmit Queue is a Bad Idea

A default Transmit Queue (DEFXMITQ) is a bad idea since an endless loop can potentially be created between queue managers or a group of queue managers when a poor configuration is implemented.

Queue Manager Names:
• QMA is the name of a queue manager (shown above)
• QMB is the name of a queue manager (shown above)
• QMC is the name of a queue manager (not shown)

Queue Names:
• A1 is the name of queue in QMA (shown above)
• B1 is the name of queue in QMB (shown above)
• C1 is the name of queue in QMC (not shown)

The loop:
• The MQ application connects to QMA and opens queue C1 that resides on queue manager QMC
• The application puts a message to the opened queue
• Since queue manager MQA does not have a resolution entry for queue C1 or queue manager QMC, queue manager QMA puts the message on its default transmit queue (i.e. queue QMB)
• Queue manager QMB receives the message but since queue manager QMB does not have a resolution entry for queue C1 or queue manager QMC, it puts the message on its default transmit queue (i.e. queue QMA)
• Hence, the message arrives back at queue manager QMA and the loop begins again. The message(s) will loop forever. 🙁

I strongly suggest that companies not use a default transmit queue.

Regards,
Roger Lacroix
Capitalware Inc.

This entry was posted in IBM MQ.

4 Responses to Why a Default Transmit Queue is a Bad Idea