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.

Figure 1. Three methods of passing messages through the system

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:
  1. QB at QMC
  2. QB at QMD_norm
  3. 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