Separate message flows

We can use a queue manager alias to create separate message flows to send messages to the same queue manager.

In a distributed-queuing environment, the need to separate messages to the same queue manager into different message flows can arise for a number of reasons. For example:

  • We might need to provide a separate flow for large, medium, and small messages. This need also applies in a clustering environment and, in this case, we can create clusters that overlap. There are a number of reasons you might do so, for example:

    • To allow different organizations to have their own administration.
    • To allow independent applications to be administered separately.
    • To create a class of service. For example, you could have a cluster called STAFF that is a subset of the cluster called STUDENTS. When you put a message to a queue advertised in the STAFF cluster, a restricted channel is used. When you put a message to a queue advertised in the STUDENTS cluster, either a general channel or a restricted channel can be used.
    • To create test and production environments.

  • It might be necessary to route incoming messages by different paths from the path of the locally generated messages.
  • Your installation might require to schedule the movement of messages at certain times (for example, overnight) and the messages then need to be stored in reserved queues until scheduled.

Figure 1. Separating messages flows
In the example shown in Figure 1, the two incoming flows are to alias queue manager names 'QMC_small' and 'QMC_large'. You provide these flows with a queue manager alias definition to capture these flows for the local queue manager. We have an application addressing two remote queues and we need these message flows to be kept separate. You provide two remote queue definitions that specify the same location, 'QMC', but specify different transmission queues. This definition keeps the flows separate, and nothing extra is needed at the far end as they have the same destination queue manager name in the transmission headers. You provide:


Coordination with adjacent systems

When we use a queue manager alias to create a separate message flow, we need to coordinate this activity with the system administrator at the remote end of the message channel to ensure that the corresponding queue manager alias is available there.

Parent topic: IBM MQ distributed queuing techniques