Defining IBM MQ objects on z/OS
On z/OS®, use one of the IBM® MQ command input methods to define IBM MQ objects.
For more information about defining objects, see Monitoring and controlling channels on z/OS.
Transmission queues and triggering channels
- A local queue with the usage of XMITQ for each sending message channel.
- Remote queue definitions. A remote queue object has three distinct uses, depending upon the way the name and content are specified:
- Remote queue definition
- Queue manager alias definition
- Reply-to queue alias definition
These three ways are shown in Three ways of using the remote queue definition object.
DEFINE QLOCAL(MYXMITQ) USAGE(XMITQ) TRIGGER +
INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(MYCHANNEL)
DEFINE CHL(MYCHANNEL) CHLTYPE(SDR) TRPTYPE(TCP) +
XMITQ(MYXMITQ) CONNAME('9.20.9.30(1555)')
The supplied sample CSQ4INYD gives additional examples of the necessary definitions.
Loss of connectivity to the CF structure where the synchronization queue for
shared channels is defined, or similar problems, might temporarily prevent a channel from starting.
After problem resolution, if you are using a trigger type of FIRST and the channel fails to start
when it is triggered, you must start the channel manually. If you want to automatically start
triggered channels after problem resolution, consider setting the queue manager TRIGINT attribute to
a value other than the default. Setting the TRIGINT attribute to a value other than the default
causes the channel initiator to retry starting the channel periodically while there are messages on
the transmission queue.
Synchronization queue
DQM requires a queue for use with sequence numbers and logical units of work identifiers (LUWID). You must ensure that a queue is available with the name SYSTEM.CHANNEL.SYNCQ (see Planning on z/OS ). This queue must be available otherwise the channel initiator cannot start.
Make sure that you define this queue using INDXTYPE(MSGID). This attribute improves the speed at which they can be accessed.
Channel command queues
You need to ensure that a channel command queue exists for your system with the name SYSTEM.CHANNEL.INITQ.
- The queue is full
- The queue is not enabled for put
- The page set that the queue is on is full
- The channel initiator does not have the correct security authorization to the queue
If the definition of the queue is changed to GET(DISABLED) while the channel initiator is running, the initiator is unable to get messages from the queue, and terminates.
Starting the channel initiator
Triggering is implemented using the channel initiator. On IBM MQ for z/OS, the initiator is started with the MQSC command
START CHINIT.
Stopping the channel initiator
The channel initiator is stopped automatically when you stop the queue manager. If you need to
stop the channel initiator but not the queue manager, you can use the MQSC command STOP
CHINIT.