Getting started with intra-group queuing
How to enable, disable, and use intra-group queuing.
Enabling intra-group queuing
- Define a shared transmission queue called SYSTEM.QSG.TRANSMIT.QUEUE. The definition of this queue can be found in thlqual.SCSQPROC(CSQ4INSS), the CSQINP2 sample for SYSTEM objects for queue sharing groups. This queue must be defined with the correct attributes, as stated in thlqual.SCSQPROC(CSQ4INSS), for intra-group queuing to work properly.
- Because the IGQ agent is always started at queue manager initialization, intra-group queuing is
always available for inbound message processing. The IGQ agent processes any messages that are
placed on the SYSTEM.QSG.TRANSMIT.QUEUE. However, to enable intra-group queuing for outbound
processing, the queue manager attribute IGQ must be set to
ENABLED.Important: If the queue manager attribute IGQ is set to ENABLED, existing object handles may be invalidated with reason code MQRC_OBJECT_CHANGED. For more information, see Specific properties of intra-group queuing. As described in the 'Programmer response' section for this reason code, applications need to be coded to handle this situation (see 2041 (07F9) (RC2041): MQRC_OBJECT_CHANGED for more details).
Additionally, as IGQ is designed as a long running and self-recovering task, which starts during initialization and terminates with shutdown. For more information, see Limitations of intra-group queuing.
Disabling intra-group queuing
Additionally, as IGQ is designed as a long running and self-recovering task, which starts during initialization and terminates with shutdown. For more information, see Limitations of intra-group queuing.
Using intra-group queuing
Once intra-group queuing is enabled, it is available for use and a queue manager uses it whenever possible. That is, when an application puts a message to a remote queue definition, to a fully qualified remote queue, or to a cluster queue, the queue manager determines if the message is eligible to be delivered using intra-group queuing and if it is, places the message on to SYSTEM.QSG.TRANSMIT.QUEUE. There is no need to change user applications, or to application queues, because for eligible messages the queue manager uses the SYSTEM.QSG.TRANSMIT.QUEUE, in preference to any other transmission queue.