Testing for distributed queuing
We can use the supplied installation verification program, CSQ4IVPX, to confirm that distributed queuing is operational.
Overview of CSQ4IVPX job
CSQ4IVPX is a batch job that starts the channel initiator and issues the IBM MQ DISPLAY CHINIT command. This verifies that all major aspects of distributed queuing are operational, while avoiding the need to set up channel and network definitions.
Preparing to run CSQ4IVPX
Before you run CSQ4IVPX:- The sample JCL, CSQ4IVPX, required to run the installation verification program is in library
thlqual.SCSQPROC.
Customize the CSQ4IVPX JCL with the high-level qualifier for the IBM MQ libraries, the national language you want to use, the four-character queue manager name, and the destination for the job output.
-
Update RACF® to allow CSQ4IVPX to access its resources if IBM MQ security is active. To run CSQ4IVPX when IBM MQ security is enabled, you need a RACF user ID with authority to access the objects. For
details of defining resources to RACF, see Set up security on z/OS®
. The user ID that runs the IVP must have the following access authority:
These requirements assume that the connection security profile ssid.CHIN has been defined (as shown in Connection security profiles for the channel initiator ), and that all IBM MQ security is active. The RACF commands to do this are shown in Figure 1. This example assumes that:Authority Profile Class CONTROL ssid.START.CHINIT and ssid.STOP.CHINIT MQCMDS UPDATE ssid.SYSTEM.COMMAND.INPUT MQQUEUE UPDATE ssid.SYSTEM.CSQUTIL.* MQQUEUE READ ssid.BATCH MQCONN READ ssid.DISPLAY.CHINIT MQCMDS - The queue manager name is CSQ1
- The user ID of the person running sample CSQ4IVPX is TS101
- The channel initiator address space is running under the user ID CSQ1MSTR
- Update RACF to allow the channel initiator
address space the following access authority:
Authority Profile Class READ ssid.CHIN MQCONN UPDATE ssid.SYSTEM.COMMAND.INPUT MQQUEUE UPDATE ssid.SYSTEM.CHANNEL.INITQ MQQUEUE UPDATE ssid.SYSTEM.CHANNEL.SYNCQ MQQUEUE ALTER ssid.SYSTEM.CLUSTER.COMMAND.QUEUE MQQUEUE UPDATE ssid.SYSTEM.CLUSTER.TRANSMIT.QUEUE MQQUEUE ALTER ssid.SYSTEM.CLUSTER.REPOSITORY.QUEUE MQQUEUE CONTROL ssid.CONTEXT.** MQADMIN The RACF commands to do this are also shown in Figure 1.
RDEFINE MQCMDS CSQ1.DISPLAY.DQM PERMIT CSQ1.DISPLAY.DQM CLASS(MQCMDS) ID(TS101) ACCESS(READ) RDEFINE MQCMDS CSQ1.START.CHINIT PERMIT CSQ1.START.CHINIT CLASS(MQCMDS) ID(TS101) ACCESS(CONTROL) RDEFINE MQCMDS CSQ1.STOP.CHINIT PERMIT CSQ1.STOP.CHINIT CLASS(MQCMDS) ID(TS101) ACCESS(CONTROL) RDEFINE MQQUEUE CSQ1.SYSTEM.COMMAND.INPUT PERMIT CSQ1.SYSTEM.COMMAND.INPUT CLASS(MQQUEUE) ID(TS101,CSQ1MSTR) ACCESS(UPDATE) RDEFINE MQQUEUE CSQ1.SYSTEM.CSQUTIL.* PERMIT CSQ1.SYSTEM.CSQUTIL.* CLASS(MQQUEUE) ID(TS101) ACCESS(UPDATE) RDEFINE MQCONN CSQ1.BATCH PERMIT CSQ1.BATCH CLASS(MQCONN) ID(TS101) ACCESS(READ) RDEFINE MQCONN CSQ1.CHIN PERMIT CSQ1.CHIN CLASS(MQCONN) ID(CSQ1MSTR) ACCESS(READ) RDEFINE MQQUEUE CSQ1.SYSTEM.CHANNEL.SYNCQ PERMIT CSQ1.SYSTEM.CHANNEL.SYNCQ CLASS(MQQUEUE) ID(CSQ1MSTR) ACCESS(UPDATE) RDEFINE MQQUEUE CSQ1.SYSTEM.CLUSTER.COMMAND.QUEUE PERMIT CSQ1.SYSTEM.CLUSTER.COMMAND.QUEUE CLASS(MQQUEUE) ID(CSQ1MSTR) ACCESS(ALTER) RDEFINE MQQUEUE CSQ1.SYSTEM.CLUSTER.TRANSMIT.QUEUE PERMIT CSQ1.SYSTEM.CLUSTER.TRANSMIT.QUEUE CLASS(MQQUEUE) ID(CSQ1MSTR) ACCESS(UPDATE) RDEFINE MQQUEUE CSQ1.SYSTEM.CLUSTER.REPOSITORY.QUEUE PERMIT CSQ1.SYSTEM.CLUSTER.REPOSITORY.QUEUE CLASS(MQQUEUE) ID(CSQ1MSTR) ACCESS(ALTER) RDEFINE MQQUEUE CSQ1.SYSTEM.CHANNEL.INITQ PERMIT CSQ1.SYSTEM.CHANNEL.INITQ CLASS(MQQUEUE) ID(CSQ1MSTR) ACCESS(UPDATE) RDEFINE MQADMIN CSQ1.CONTEXT.** PERMIT CSQ1.CONTEXT.** CLASS(MQADMIN) ID(CSQ1MSTR) ACCESS(CONTROL)
Running CSQ4IVPX
When we have completed these steps, start your queue manager.
The IVP runs as a batch job. Customize the job card to meet the submission requirements of your installation.
Checking the results of CSQ4IVPX
CSQ4IVPX runs the CSQUTIL IBM MQ utility to issue three MQSC commands. The SYSPRINT output data set should look like Figure 2, although details might differ depending on your queue manager attributes.- You should see the commands (1) each followed by several messages.
- The last message from each command should be
CSQ9022I ... NORMAL COMPLETION
(2). - The job as a whole should complete with return code zero (3).
CSQU000I CSQUTIL IBM MQ for z/OS - V6 CSQU001I CSQUTIL Queue Manager Utility - 2005-05-09 09:06:48 COMMAND CSQU127I CSQUTIL Executing COMMAND using input from CSQUCMD data set CSQU120I CSQUTIL Connecting to queue manager CSQ1 CSQU121I CSQUTIL Connected to queue manager CSQ1 CSQU055I CSQUTIL Target queue manager is CSQ1 START CHINIT (1) CSQN205I COUNT= 2, RETURN=00000000, REASON=00000004 CSQM138I +CSQ1 CSQMSCHI CHANNEL INITIATOR STARTING CSQN205I COUNT= 2, RETURN=00000000, REASON=00000000 CSQ9022I +CSQ1 CSQXCRPS ' START CHINIT' NORMAL COMPLETION (2) DISPLAY CHINIT (1) CSQN205I COUNT= 2, RETURN=00000000, REASON=00000004 CSQM137I +CSQ1 CSQMDDQM DISPLAY CHINIT COMMAND ACCEPTED CSQN205I COUNT= 12, RETURN=00000000, REASON=00000000 CSQX830I +CSQ1 CSQXRDQM Channel initiator active CSQX002I +CSQ1 CSQXRDQM Queue sharing group is QSG1 CSQX831I +CSQ1 CSQXRDQM 8 adapter subtasks started, 8 requested CSQX832I +CSQ1 CSQXRDQM 5 dispatchers started, 5 requested CSQX833I +CSQ1 CSQXRDQM 0 SSL server subtasks started, 0 requested CSQX840I +CSQ1 CSQXRDQM 0 channel connections current, maximum 200 CSQX841I +CSQ1 CSQXRDQM 0 channel connections active, maximum 200, including 0 paused CSQX842I +CSQ1 CSQXRDQM 0 channel connections starting, 0 stopped, 0 retrying CSQX836I +CSQ1 Maximum channels - TCP/IP 200, LU 6.2 200 CSQX845I +CSQ1 CSQXRDQM TCP/IP system name is TCPIP CSQX848I +CSQ1 CSQXRDQM TCP/IP listener INDISP=QMGR not started CSQX848I +CSQ1 CSQXRDQM TCP/IP listener INDISP=GROUP not started CSQX849I +CSQ1 CSQXRDQM LU 6.2 listener INDISP=QMGR not started CSQX849I +CSQ1 CSQXRDQM LU 6.2 listener INDISP=GROUP not started CSQ9022I +CSQ1 CSQXCRPS ' DISPLAY CHINIT' NORMAL COMPLETION (2) STOP CHINIT (1) CSQN205I COUNT= 2, RETURN=00000000, REASON=00000004 CSQM137I +CSQ1 CSQMTCHI STOP CHINIT COMMAND ACCEPTED CSQN205I COUNT= 2, RETURN=00000000, REASON=00000000 CSQ9022I +CSQ1 CSQXCRPS ' STOP CHINIT' NORMAL COMPLETION (2) CSQU057I CSQUCMDS 3 commands read CSQU058I CSQUCMDS 3 commands issued and responses received, 0 failed CSQU143I CSQUTIL 1 COMMAND statements attempted CSQU144I CSQUTIL 1 COMMAND statements executed successfully CSQU148I CSQUTIL Utility completed, return code=0 (3)