Passing messages through the system
We can pass messages through the system in three ways - using the location name, using an alias for the queue manager, or selecting a transmission queue.
The technique shown in Figure 1 in Receive messages, showed how an alias flow is captured. Figure 1 illustrates the ways networks are built up by bringing together the techniques previously described.
The configuration shows a channel delivering three messages with different destinations:- QB at QMC
- QB at QMD_norm
- QB at QMD_PRIORITY
We must pass the first message flow through the system unchanged. We must pass the second message flow through a different transmission queue and channel. For the second message flow we must also resolve messages for the alias queue manager name QMD_norm to the queue manager QMD. The third message flow chooses a different transmission queue without any other change.
In a clustering environment, messages are passed through a cluster transmission queue. Normally a single transmission queue, SYSTEM.CLUSTER.TRANSMIT.QUEUE, transfers all messages to all queue managers in all clusters that the queue manager is a member of; see A cluster of queue managers. We can define separate transmission queues for all or some of the queue managers in the clusters that the queue manager is a member of.
The following methods describe techniques applicable to a distributed-queuing environment.
Use these methods
For these configurations, we must prepare the:- Input channel definitions
- Output channel definitions
- Transmission queues:
- QMC
- TX1
- QMD_fast
- Queue manager alias definitions:
- QMD_norm with QMD_norm to QMD through TX1
- QMD_PRIORITY with QMD_PRIORITY to QMD_PRIORITY through QMD_fast
Note: None of the message flows shown in the example changes the destination queue. The queue manager name aliases provide separation of message flows.
Method 1: Use the incoming location name
You are going to receive messages with a transmission header containing another location name, such as QMC. The simplest configuration is to create a transmission queue with that name, QMC. The channel that services the transmission queue delivers the message unchanged to the next destination.
Method 2: Use an alias for the queue manager
The second method is to use the queue manager alias object definition, but specify a new location name, QMD, and a particular transmission queue, TX1. This action:- Terminates the alias message flow set up by the queue manager name alias QMD_norm, that is, the named class of service QMD_norm.
- Changes the transmission headers on these messages from QMD_norm to QMD.
Method 3: Select a transmission queue
The third method is to have a queue manager alias object defined with the same name as the destination location, QMD_PRIORITY. Use the queue manager alias definition to select a particular transmission queue, QMD_fast, and therefore another channel. The transmission headers on these messages remain unchanged.
Parent topic: IBM MQ distributed queuing techniques