The channel initiator on z/OS
The channel initiator provides and manages resources that enable IBM MQ distributed queuing. IBM MQ uses Message Channel Agents (MCAs) to send messages from one queue manager to another.
To send messages from queue manager A to queue manager B, a sending MCA on queue manager A must set up a communications link to queue manager B. A receiving MCA must be started on queue manager B to receive messages from the communications link. This one-way path consisting of the sending MCA, the communications link, and the receiving MCA is known as a channel. The sending MCA takes messages from a transmission queue and sends them down a channel to the receiving MCA. The receiving MCA receives the messages and puts them on to the destination queues.
In IBM MQ for z/OSĀ®, the sending and receiving MCAs all run inside the channel initiator (the channel initiator is also known as the mover ). The channel initiator runs as a z/OS address space under the control of the queue manager. There can be only a single channel initiator connected to a queue manager and it is run inside the same z/OS image as the queue manager. There can be thousands of MCA processes running inside the channel initiator concurrently.
Figure 1 shows two queue managers within a sysplex. Each queue manager has a channel initiator and a local queue. Messages sent by queue managers on AIX and Windows are placed on the local queue, from where they are retrieved by an application. Reply messages are returned by a similar route. The channel initiator also contains other processes concerned with the management of the channels. These processes include:
- Listeners
- These processes listen for inbound channel requests on a communications subsystem such as TCP, and start a named MCA when an inbound request is received.
- Supervisor
- This manages the channel initiator address space, for example it is responsible for restarting channels after a failure.
- Name server
- This is used to resolve TCP names into addresses.
- TLS tasks
- These are used to perform encryption and decryption and check certificate revocation lists.