Appendix A. Queue name resolution
This appendix describes queue name resolution as performed by queue managers
at both sending and receiving ends of a channel.
In larger networks, the use of queue managers has a number of advantages
over other forms of communication. These advantages derive from the name resolution
function in DQM and the main benefits are:
- Applications do not need to make routing decisions
- Applications do not need to know the network structure
- Network links are created by systems administrators
- Network structure is controlled by network planners
- Multiple channels can be used between nodes to partition traffic
Referring to Figure 96, the basic mechanism for putting messages
on a remote queue, as far as the application is concerned, is the same as
for putting messages on a local queue:
- The application putting the message issues MQOPEN and MQPUT calls to put
messages on the target queue.
- The application getting the messages issues MQOPEN and MQGET calls to
get the messages from the target queue.
If both applications are connected to the same queue manager then no inter-queue
manager communication is required, and the target queue is described as local to both applications.
However, if the applications are connected to different queue managers,
two MCAs and their associated network connection are involved in the transfer,
as shown in the figure. In this case, the target queue is considered to be
a remote queue to the putting application.
The sequence of events is as follows:
- The putting application issues MQOPEN and MQPUT calls to put messages
to the target queue.
- During the MQOPEN call, the name resolution function
detects that the target queue is not local, and decides which transmission
queue is appropriate. Thereafter, on the MQPUT calls associated with the MQOPEN
call, all messages are placed on this transmission queue.
- The sending MCA gets the messages from the transmission queue and passes
them to the receiving MCA at the remote computer.
- The receiving MCA puts the messages on the target queue, or queues.
- The getting application issues MQOPEN and MQGET calls to get the messages
from the target queue.
Note:
Only step 1 and step 5 involve application code; steps 2 through
4 are performed by the local queue managers and the MCA programs. The putting
application is unaware of the location of the target queue, which could be
in the same processor, or in another processor on another continent.
The combination of sending MCA, the network connection, and the receiving
MCA, is called a message channel, and is inherently
a unidirectional device. Normally, it is necessary to move messages in both
directions, and two channels are set up for this, one in each direction.