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.
- 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 that send instrumentation event messages to another queue manager.
- Queue managers that send remote administration commands to another queue manager. For example, using MQSC commands or the administrative REST API.
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.
- 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
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.
A message channel is a one-way link. If you want a remote queue manager to respond to messages sent by a local queue manager, you must set up a second channel to send responses back to the local queue manager.
A message channel connects two queue managers by using message channel agents (MCAs). There is a message channel agent at each end of a channel. 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. For more information about pipelining, see Attributes of channels.
For more information about channels, see Channel-exit calls and data structures, and Distributed queuing components.
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 ).
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.