Channels, clusters, and remote queuing

A queue manager communicates with another queue manager by sending a message and, if required, receiving back a response. The receiving queue manager could be:
  • On the same machine
  • On another machine in the same location (or even on the other side of the world)
  • Running on the same platform as the local queue manager
  • Running on another platform supported by IBM® MQ
These messages might originate from:
  • User-written application programs that transfer data from one node to another
  • User-written administration applications that use PCF commands or the MQAI
  • The IBM MQ Explorer.
  • Queue managers sending:
    • Instrumentation event messages to another queue manager
    • MQSC commands issued from a runmqsc command in indirect mode (where the commands are run on another queue manager)
Before a message can be sent to a remote queue manager, the local queue manager needs a mechanism to detect the arrival of messages and transport them consisting of:
  • At least one channel
  • A transmission queue
  • A channel initiator
For a remote queue manager to received a message, a listener is required.

A channel is a one-way communication link between two queue managers and can carry messages destined for any number of queues at the remote queue manager.

Each end of the channel has a separate definition. For example, if one end is a sender or a server, the other end must be a receiver or a requester. A simple channel consists of a sender channel definition at the local queue manager end and a receiver channel definition at the remote queue manager end. The two definitions must have the same name and together constitute a single message channel.

If you want the remote queue manager to respond to messages sent by the local queue manager, set up a second channel to send responses back to the local queue manager.

Use the MQSC command DEFINE CHANNEL to define channels. In this section, the examples relating to channels use the default channel attributes unless otherwise specified.

There is a message channel agent (MCA) at each end of a channel, controlling the sending and receiving of messages. The MCA takes messages from the transmission queue and puts them on the communication link between the queue managers.

A transmission queue is a specialized local queue that temporarily holds messages before the MCA picks them up and sends them to the remote queue manager. You specify the name of the transmission queue on a remote queue definition.

You can allow an MCA to transfer messages using multiple threads. This process is known as pipelining. Pipelining enables the MCA to transfer messages more efficiently, improving channel performance. See Attributes of channels for details of how to configure a channel to use pipelining.

Preparing channels and transmission queues for remote administration tells you how to use these definitions to set up remote administration.

For more information about setting up distributed queuing in general, see Distributed queuing components.