Queue manager alias definitions apply when an application that opens a queue to put a message, specifies the queue name and the queue manager name.
Queue manager alias definitions have three uses:
Queue manager alias definitions can be used to remap the queue manager name specified in an MQOPEN call. For example, an MQOPEN call specifies a queue name of THISQ and a queue manager name of YOURQM. At the local queue manager there is a queue manager alias definition like this:
DEFINE QREMOTE (YOURQM) RQMNAME(REALQM)
This shows that the real queue manager to be used, when an application puts messages to queue manager YOURQM, is REALQM. If the local queue manager is REALQM, it puts the messages to the queue THISQ, which is a local queue. If the local queue manager is not called REALQM, it routes the message to a transmission queue called REALQM. The queue manager changes the transmission header to say REALQM instead of YOURQM.
Figure 15 shows a scenario where messages arrive at queue manager 'QM1' with transmission headers showing queue names at queue manager 'QM3'. In this scenario, 'QM3' is reachable by multi-hopping through 'QM2'.
Figure 15. Queue manager alias
All messages for 'QM3' are captured at 'QM1' with a queue manager alias. The queue manager alias is named 'QM3' and contains the definition 'QM3 via transmission queue QM2'. The definition looks like this:
DEFINE QREMOTE (QM3) RNAME() RQMNAME(QM3) XMITQ(QM2)
The queue manager puts the messages on transmission queue 'QM2' but does not make any alteration to the transmission queue header because the name of the destination queue manager, 'QM3', does not alter.
All messages arriving at 'QM1' and showing a transmission header containing a queue name at 'QM2' are also put on the 'QM2' transmission queue. In this way, messages with different destinations are collected onto a common transmission queue to an appropriate adjacent system, for onward transmission to their destinations.
A receiving MCA opens the queue referenced in the transmission header. If a queue manager alias definition exists with the same name as the queue manager referenced, then the queue manager name received in the transmission header is replaced with the RQMNAME from that definition.
This has two uses: