Channels

A channel is a logical communication link, used by distributed queue managers, between an IBM® MQ MQI client and an IBM MQ server, or between two IBM MQ servers.

Channels are objects that provide a communication path from one queue manager to another. Channels are used in distributed queuing to move messages from one queue manager to another and they shield applications from the underlying communications protocols. The queue managers might exist on the same, or different, platforms.

A channel has two definitions: one at each end of the connection. For queue managers to communicate with one another, you must define one channel object at the queue manager that is to send messages, and another, complementary one, at the queue manager that is to receive them. The same channel name must be used at each end of the connection, and the channel type used must be compatible.

There are three categories of channel in IBM MQ, with different channel types within these categories:
  • Message channels, which are unidirectional, and transfer messages from one queue manager to another.
  • MQI channels, which are bidirectional, and transfer MQI calls from an IBM MQ MQI client to a queue manager, and responses from a queue manager to an IBM MQ client.
  • AMQP channels, which are bidirectional and connect an AMQP client to a queue manager on a server machine. IBM MQ uses AMQP channels to transfer AMQP calls and responses between AMQP applications and queue managers

Message channels

A message channel is a one-way link. It connects two queue managers by using message channel agents (MCAs).

The purpose of a message channel is to transfer messages from one queue manager to another. Message channels are not required by the client server environment.

Figure 1. Message channels between two queue managers
Queue manager on System A, connected to queue manager on System B, using two message channels, one in each direction.

For more information, see Channel-exit calls and data structures.

MQI channels

A Message Queue Interface (MQI) channel connects an IBM MQ MQI client to a queue manager on a server machine, and is established when you issue an MQCONN or MQCONNX call from an IBM MQ MQI client application.

It is a two-way link and is used for the transfer of MQI calls and responses only, including MQPUT calls that contain message data and MQGET calls that result in the return of message data. There are different ways of creating and using the channel definitions (see Defining MQI channels ).

Figure 2. Client-connection and server-connection on an MQI channel
A client connected to a queue manager using an MQI channel. The channel has a client-connection on the client and a server-connection on the server.

[z/OS]An MQI channel can be used to connect a client to a single queue manager, or to a queue manager that is part of a queue sharing group (see Connecting a client to a queue-sharing group ).

There are two channel types for MQI channel definitions. They define the bi-directional MQI channel.

Client-connection channel
This type is for the IBM MQ MQI client.
Server-connection channel
This type is for the server running the queue manager, with which the IBM MQ application, running in an IBM MQ MQI client environment, is to communicate.

Channel definitions

See Channel definitions for descriptions of each type of channel.