[z/OS]

Update the z/OS link list and LPA

Update the LPA libraries with the new version of early code libraries. Other code can go in the link list or the LPA.

  • You need to perform this task once for each z/OS® system where you want to run IBM® MQ.
  • If you are using queue sharing groups, you should refresh the early code in each queue manager in the QSG to the IBM MQ 9.1.0 level before migrating any of the queue managers to IBM MQ 9.1.0.

    Install the latest early code on each LPAR, and then refresh the queue managers one at a time at some point before migration. You do not have to migrate all of the queue managers at the same time.

  • You might need to perform this task when migrating from a previous version. For further details, see the Program Directory. For download links for the Program Directories, see IBM MQ for z/OS Program Directory PDF files.
Note: The data set for LPA is version specific. If you are using an existing LPA in the system, contact your system administrator to decide which LPA to use.

Early code

Some IBM MQ load modules need to be added to MVS™ for IBM MQ to act as a subsystem. These modules are known as the Early code, and they can be executed even if a queue manager is not active. For example, when an operator command is issued on the console with an IBM MQ command prefix, this Early code will get control and check if it needs to start a queue manager, or to pass the request to a running queue manager. This code is loaded into the Link Pack Area (LPA). There is one set of Early modules, which are used for all queue managers, and these need to be at the highest level of IBM MQ. Early code from a higher version of IBM MQ will work with a queue manager with a lower version of IBM MQ, but not the opposite.

The early code comprises the following load modules:
  • CSQ3INI and CSQ3EPX in the library thqual.SCSQLINK
  • CSQ3ECMX in the library thqual.SCSQSNL x, where x is your language letter:
    • 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

IBM MQ includes a user modification that moves the contents of the thqual.SCSQSNL i library into the thqual.SCSQLINK and informs SMP/E. This user modification is called CSQ8UERL and is described in the Program Directory for IBM MQ for z/OS , for either Long Term Support or Continuous Delivery. For download links for the Program Directories, see IBM MQ for z/OS Program Directory PDF files.

When you have updated the early code in the LPA libraries, it is available from the next z/OS IPL (with the CLPA option) to all queue manager subsystems added during IPL from definitions in IEFSSNss members in SYS1.PARMLIB.

You can make it available immediately without an IPL for any new queue manager subsystem added later (as described in Define the IBM MQ subsystem to z/OS ) by adding it to the LPA as follows:
  • If you did not use CSQ8UERL, issue these z/OS commands:
    
    SETPROG LPA,ADD,MODNAME=(CSQ3INI,CSQ3EPX),DSNAME=thqual.SCSQLINK
    SETPROG LPA,ADD,MODNAME=(CSQ3ECMX),DSNAME=thqual.SCSQSNL x
    
  • If you did use CSQ8UERL, you can load the early code into the LPA using the following z/OS command:
    
    SETPROG LPA,ADD,MASK=*,DSNAME=thqual.SCSQLINK
    
  • If you are using Advanced Message Security you must also issue the following z/OS command to include an additional module in the LPA:
    
    SETPROG LPA,ADD,MODNAME=(CSQ0DRTM),DSNAME=thqual.SCSQLINK
    
If you have applied maintenance, or you intend to restart a queue manager with a later version or release of IBM MQ, the early code can be made available to existing queue managers using the following steps. Queue managers that you do not perform these steps on continue to use the version of early code that they are already using. It is not necessary to perform these steps for all queue managers on an LPAR, unless you are specifically trying to apply maintenance to all of them, or update them all to a more recent version or release of IBM MQ.
  1. Add it to the LPA using z/OS SETPROG commands as described previously in this topic.
  2. Stop the queue manager, using the IBM MQ command STOP QMGR.
  3. Ensure that the qmgr.REFRESH.QMGR security profile is set up. See MQSC commands, profiles, and their access levels.
  4. Refresh the early code for the queue manager using the IBM MQ command REFRESH QMGR TYPE(EARLY).
  5. Restart the queue manager, using the IBM MQ command START QMGR.
The IBM MQ commands STOP QMGR, REFRESH QMGR, and START QMGR are described in MQSC commands.

Other code

All the IBM MQ supplied load modules in the following libraries are reentrant and can be placed in the LPA:
  • SCSQAUTH
  • SCSQANL x, where x is your language letter
  • SCSQMVR1
Important: However, if you place the libraries in the LPA, whenever you apply maintenance, you have to copy any changed modules manually into the LPA. Therefore, it is preferable to put the IBM MQ load libraries in the link list, which can be updated after maintenance by issuing the z/OS command REFRESH LLA.

This is particularly recommended for SCSQAUTH so that you do not have to include it in several STEPLIBs. Only one language library, SCSQANL x should be placed in the LPA or link list. The link list libraries are specified in an LNKLSTkk member of SYS1.PARMLIB.

The distributed queuing facility and CICS® bridge (but not the queue manager itself) need access to the Language Environment (LE) runtime library SCEERUN. If you use either of these facilities, you need to include SCEERUN in the link list.

Some modules are loaded at queue manager start up into ECSA. In ECSA constrained environments, it is possible to place these modules into the LPA instead. See Placing IBM MQ global modules into the LPA for more information.
Important: To use this facility at IBM MQ 9.1 requires that you apply APAR PH52358.