Defining IBM MQ objects

Use one of the IBM MQ command input methods to define IBM MQ objects. Refer to the information within this topic for further details about defining these objects.

Refer to Monitor and control channels on z/OS for information about defining objects.


Transmission queues and triggering channels

Define the following:

  • 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.

Use the TRIGDATA field on the transmission queue to trigger the specified channel. For example:

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 we are using a trigger type of FIRST and the channel fails to start when it is triggered, we must start the channel manually. 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). We must ensure that a queue is available with the name SYSTEM.CHANNEL.SYNCQ (see Plan 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

We need to ensure that a channel command queue exists for the system with the name SYSTEM.CHANNEL.INITQ.

If the channel initiator detects a problem with the SYSTEM.CHANNEL.INITQ, it is unable to continue normally until the problem is corrected. The problem could be one of the following:

  • 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. For to stop the channel initiator but not the queue manager, we can use the MQSC command STOP CHINIT.

Parent topic: Set up communications with other queue managers