Create procedures for the channel initiator

For each IBM MQ subsystem, tailor a copy of CSQ4CHIN. Depending on what other products we are using, you might need to allow access to other data sets.

  • Repeat this task for each IBM MQ queue manager.
  • We might need to modify the cataloged procedure when migrating from a previous version.

We need to create a channel-initiator started task procedure for each IBM MQ subsystem that is going to use distributed queuing.

To do this:
  1. Copy the sample started task procedure thlqual.SCSQPROC(CSQ4CHIN) to your procedure library. Name the procedure xxxx CHIN, where xxxx is the name of the IBM MQ subsystem (for example, CSQ1CHIN would be the channel initiator started task procedure for queue manager CSQ1).
  2. Make a copy for each IBM MQ subsystem that we are going to use.
  3. Tailor the procedures to we requirements using the instructions in the sample procedure CSQ4CHIN. We can also use symbolic parameters in the JCL to allow the procedure to be modified when it is started. This is described with the start options in Administer IBM MQ for z/OS .

    Concatenate the distributed queuing library thlqual.SCSQMVR1.

    Access to the LE runtime library SCEERUN is required; if it is not in your link list (SYS1.PARMLIB(LNKLSTkk)), concatenate it in the STEPLIB DD statement.

  4. Authorize the procedures to run under your external security manager.
  5. We need to include the library containing messages in your selected language:

    • thlqual.SCSQSNLE, for US English mixed case
    • thlqual.SCSQSNLU, for US English uppercase
    • thlqual.SCSQSNLK, for Japanese
    • thlqual.SCSQSNLF, for French
    • thlqual.SCSQSNLC, for Chinese

The channel initiator is a long running address space. To prevent its termination after a restricted amount of CPU has been consumed, confirm that either:

  • The default for started tasks in your z/OS system is unlimited CPU; a JES2 configuration statement for JOBCLASS(STC) with TIME=(1440,00) achieves this, or
  • Explicitly add a TIME=1440, or TIME=NOLIMIT, parameter to the EXEC statement for CSQXJST.

We can add the exit library (CSQXLIB) to this procedure later if we want to use channel exits. We need to stop and restart your channel initiator to do this.

If we are using TLS, access to the system TLS runtime library is required. This library is called SIEALNKE. The library must be APF authorized.

If we are using TCP/IP, the channel initiator address space must be able to access the TCPIP.DATA data set that contains TCP/IP system parameters. The ways that the data set has to be set up depends on which TCP/IP product and interface we are using. They include:

  • Environment variable, RESOLVER_CONFIG
  • /etc/resolv.conf on the file system
  • //SYSTCPD DD statement
  • //SYSTCPDD DD statement
  • jobname/userid.TCPIP.DATA
  • SYS1.TCPPARMS(TCPDATA)
  • zapname.TCPIP.DATA

Some of these affect your started-task procedure JCL. For more information, see z/OS Communications Server: IP Configuration Guide.

Parent topic: Configure the queue manager and channel initiator


Related concepts