Special considerations for queue sharing groups
Starting HCL OneTest™ API V9.1.1, you can record and virtualize shared queues in a queue sharing group.
Following are a few important considerations you must be aware of about recording and
virtualizing shared queues:
- To intercept and capture messages to the shared queues from all queue managers in the group, you must configure an instance of the RIT exit for each queue manager in the group.
- When configuring the RIT exit for the queue managers, create RIT namelists and queues for each
queue manager. For instructions, see the RITDEFN sample job. The namelists are defined with
QSGDISP(GROUP), and the queue is defined with QSGDISP(SHARED). The namelists and queues must have
the 4-character queue manager name as the last part of their names. For example, if the queue
sharing group is made up of queue managers QMGRA and QMGRB, you must create the following namelists
and queues:
- COM.GREENHAT.INTERCEPT.QMGRA
- COM.GREENHAT.INTERCEPT.QMGRA_LCK
- COM.GREENHAT.INTERCEPT.QMGRB
- COM.GREENHAT.INTERCEPT.QMGRB_LCK
- RIT.DIVERT.RULES.QMGRA
- RIT.DIVERT.RULES.QMGRA_LCK
- RIT.DIVERT.RULES.QMGRB
- RIT.DIVERT.RULES.QMGRB_LCK
- COM.GREENHAT.COMMAND.QUEUE.QMGRA
- COM.GREENHAT.COMMAND.QUEUE.QMGRB
- Create a locking queue for the group named COM.GREENHAT.INTERCEPT_LCK. The QSGDISP should be SHARED.
- Define a single transport within HCL OneTest™ API for the queue sharing group. The group appears to HCL OneTest™ API as a single queue manager. When recording or stubbing starts, HCL OneTest™ API queries the queue sharing group and verifies that the required namelists and queues exist for each queue manager within the group.
- Define a coupling facility structure for MQ to use while recording and virtualizing shared queues. The name of the structure must be xxxxAPPL1, where xxxx is the four-character name of your queue sharing group.
- If you want to capture or virtualize all messages that are sent to a shared queue, you must use mirror queue recording and sift and pass through stubbing with fixed queues. When you create fixed queues for stubbing, you must use QSGDISP(SHARED) and specify the STRUCT parameter. If you choose to do transport recording, dynamic mirror queue recording, or sift and pass through stubbing with dynamic queues, HCL OneTest™ API produces a warning and only messages for a single queue manager are intercepted.
- Under the following circumstances, RIT exit for a particular queue manager when started will
begin recording or stubbing:
- If the queue manager is down after the mirror queue recording or fixed queue stubbing is started.
- The queue manager is started while the recording or stubbing is in progress.
- You can still record and stub non-shared queues when running HCL OneTest™ API with a queue sharing group. For this to work, however, the host and port number that is specified in your transport must point directly to the queue manager where the non-shared queues reside. If your host and port number point to a load balancing mechanism, instead of a directly to a queue manager, you may not get connected to the queue manager where the non-shared queue resides.
- Beginning in HCL OneTest™ API V9.5.0, the
following namelists are required by the exit. These namelists must exist on each queue manager for
which an instance of the exit is running. The QSGDISP parameter for these namelists must be set to
QMGR, and you can find the commands to create these namelists in the RITDEFN sample job.
- COM.GREENHAT.EXIT.INTERCEPT
- COM.GREENHAT.EXIT.DIVERT1
- COM.GREENHAT.EXIT.DIVERT2
- Beginning in HCL OneTest™ API V9.5.0, a new queue named COM.GREENHAT.ALLOW.GENERIC.QNAMES is required for transport recording, or for recording an operation that contains a wild card in the queue name. This queue must exist on each queue manager for which an instance of the exit is running. The QSGDISP parameter for this queue must be set to QMGR, and you can find the command to create the queue in the RITDEFN sample job.