A channel initiator is needed to start a communication channel when there is a message to deliver. A channel listener waits to start the other end of a channel to receive the message.
Before you begin
To establish communication between queue managers in a
cluster, configure a link using one of the supported communication
protocols. The supported protocols are TCP or LU 6.2 on any platform,
and NetBIOS or SPX on Windows systems.
As part of this configuration, you also need channel initiators and
channel listeners just as you do with distributed queuing.
About this task
All cluster queue managers need a channel initiator to monitor the system-defined initiation queue SYSTEM.CHANNEL.INITQ
. SYSTEM.CHANNEL.INITQ
is the initiation queue for all transmission queues including the cluster transmission queue.
Each queue manager must have a channel listener. A channel listener program waits for incoming network requests and starts the appropriate receiver-channel when it is needed. The implementation of channel listeners is platform-specific, however there are some common features. On all IBM® MQ platforms, the listener can be started using the START LISTENER
command. On IBM MQ for IBM i, Windows, UNIX and Linux® systems, you can start the listener automatically at the same time as the queue manager. To start the listener automatically, set the CONTROL attribute of the LISTENER object to QMGR or STARTONLY.
A non-shared listener port (INDISP(QMGR)) must be used for CLUSRCVR channels on
z/OS® and for CLUSSDR channels to z/OS.
Procedure
-
Start the channel initiator.
- IBM MQ for z/OS
- There is one channel initiator for each queue manager and it runs as a separate address space. You start it using the MQSC
START CHINIT
command, which you issue as part of your queue manager startup.
- IBM MQ for UNIX, Linux, and Windows
- When you start a queue manager, if the queue manager attribute SCHINIT is set to QMGR, a channel initiator is automatically started. Otherwise it can be started using the runmqsc
START CHINIT
command or the runmqchi control command.
- IBM MQ for IBM i
- When you start a queue manager, if the queue manager attribute SCHINIT is set to QMGR, a channel initiator is automatically started. Otherwise it can be started using the runmqsc
START CHINIT
command or the runmqchi control command.
-
Start the channel listener.
- IBM MQ for z/OS
- Use the channel listener program provided by IBM MQ. To start an IBM MQ channel listener, use the MQSC command
START LISTENER
, which you issue as part of your channel initiator startup. For example:
START LISTENER PORT(1414) TRPTYPE(TCP)
or:
START LISTENER LUNAME(LONDON.LUNAME) TRPTYPE(LU62)
Members of a queue sharing group can use a shared listener instead of a listener for each queue manager. Do not use shared listeners with clusters. Specifically, do not make the CONNAME of the CLUSRCVR channel the address of the shared listener of the queue sharing group. If you do, queue managers might receive messages for queues for which they do not have a definition.
- IBM MQ for IBM i
- Use the channel listener program provided by IBM MQ. To start an IBM MQ channel listener use the CL command STRMQMLSR. For example:
STRMQMLSR MQMNAME(QM1) PORT(1414)
- IBM MQ for Windows
- Use either the channel listener program provided by IBM MQ, or the facilities provided by the operating system.
To start the
IBM MQ channel listener use the
RUNMQLSR command. For example:
RUNMQLSR -t tcp -p 1414 -m QM1
- IBM MQ on UNIX and Linux
- Use either the channel listener program provided by IBM MQ, or the facilities provided by the operating system; for example, inetd for TCP communications.
To start the
IBM MQ channel listener use the
runmqlsr command. For example:
runmqlsr -t tcp -p 1414 -m QM1
To use
inetd to start channels, configure two files:
- Edit the file /etc/services. You must be logged in as a superuser or root. If the following line is not in the file, add it as shown:
MQSeries 1414/tcp # WebSphere MQ channel listener
where 1414
is the port number required by IBM MQ. You can change the port number, but it must match the port number specified at the sending end.
- Edit the file /etc/inetd.conf. If you do not have the following line in that file, add it as shown:
MQSeries stream tcp nowait mqm MQ_INSTALLATION_PATH
/bin/amqcrsta amqcrsta
-m queue.manager.name
where
MQ_INSTALLATION_PATH
is replaced by the high-level directory in which
IBM MQ is installed.
The updates become active after inetd has reread the configuration files. Issue the following commands from the root user ID:
On
AIX®:
refresh -s inetd
On
Solaris or
Linux:
- Find the process ID of the inetd with the command:
ps -ef | grep inetd
- Run the appropriate command, as follows:
- For Solaris 9 and Linux:
kill -1 inetd processid
- For Solaris 10, or later versions:
inetconv