Special considerations for queue sharing groups
Starting in IBM® Rational® Integration Tester 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 Rational® Integration Tester for the queue sharing group. The group appears to Rational® Integration Tester as a single queue manager. When recording or stubbing starts, Rational® Integration Tester 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, Rational® Integration Tester 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 Rational® Integration Tester 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 Rational®
Integration Tester 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 Rational® Integration Tester 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.