Special considerations for queue sharing groups

Starting in HCL DevOps Test Integrations and APIs (Test Integrations and APIs) 9.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 API agent for each queue manager in the group.
  • When configuring the API agent for the queue managers, create the Integration Tester 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 Test Integrations and APIs for the queue sharing group. The group appears to Test Integrations and APIs as a single queue manager. When recording or stubbing starts, Test Integrations and APIs 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, Test Integrations and APIs produces a warning and only messages for a single queue manager are intercepted.
  • Under the following circumstances, API agent for a particular queue manager when started begins the 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 Test Integrations and APIs 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 Test Integrations and APIs 9.5.0, the following namelists are required by the agent. These namelists must exist on each queue manager for which an instance of the agent 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 Test Integrations and APIs 9.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 agent 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.