[z/OS]

Placing IBM MQ global modules into the LPA

When an IBM® MQ for z/OS® queue manager starts up, it loads some of its load modules (global modules) into the extended common service area (ECSA). At queue manager shut down the ECSA is freed.

Important: To use this facility at IBM MQ 9.2 requires that you apply APAR PH52358.
There are 19 global modules, which at IBM MQ 9.2, consumes approximately 1.2 MB of ECSA per running queue manager. In environments that run multiple queue managers per LPAR, and require a reduction in ECSA consumption due to ECSA or high private constraints, it is possible to place the global modules into the LPA.
Note: Although CSQ7GPLM is a global module, it should not be added to the LPA.

If the queue manager cannot find a global module in its STEPLIB, and detects the module is in the LPA, it uses the LPA copy directly, instead of loading a copy of the module into ECSA. Alternatively if the queue managers code is normally loaded from the link list then any global modules in the LPA are loaded in preference to any global modules in the link list.

The z/OS common storage tracking function (see Using the common storage tracking function) tracks the storage under the each queue manager's MSTR address space for each queue manager and can be used to detect how much space is being use by the global modules.

By default, the global modules are in the SCSQAUTH load library. If the MSTR address space of a queue manager locates SCSQAUTH through the STEPLIB concatenation, the global modules from there are used in preference to any in the LPA and are loaded into ECSA.

The global modules are:

CSQ0GPLM, CSQ3AMGP, CSQ3SSGP, CSQ9PREP,
CSQ9SCNB, CSQGGPLM, CSQMCGLM, CSQMGPLM, CSQRGLM1,
CSQSLD1, CSQVGEPL, CSQVSRX, CSQWDLD2, CSQWDLD3,
CSQWVZSA, CSQWZDG0, CSQWVZPS, CSQWVGTM, CSQZTDDM

Notes:
  • The name of the global modules for IBM MQ remain constant across different IBM MQ versions. Therefore, if you load global modules into the LPA, they should be from a single IBM MQ version, and should only be used by queue managers running at the same IBM MQ version.
  • If multiple versions of IBM MQ are run on the same LPAR then only one of those can have its global modules in the LPA at any given time.

If maintenance is applied to an IBM MQ installation which has global modules loaded into the LPA, and that maintenance updates any of the global modules, you should perform the procedure described in the following text again.

Procedure

To put the global modules from a version of IBM MQ into the LPA, perform the following steps:
  1. Create a copy of the thlqual.SCSQAUTH load library, and its contents, for example: thlqual.LOCAL.SCSQAUTH. Ensure that this load library is protected from unauthorized access using your external security manager (ESM).
  2. APF authorize the thlqual.LOCAL.SCSQAUTH load library; see APF authorize the IBM MQ load libraries.
  3. Create a new thlqual.GLOBAL.SCSQAUTH load library with the same attributes as thlqual.LOCAL.SCSQAUTH.
    Note: This load library does not need to be APF authorized. Ensure that this load library is protected from unauthorized access using your ESM.
  4. Copy the 19 global modules from thlqual.LOCAL.SCSQAUTH into thlqual.GLOBAL.SCSQAUTH.
  5. Delete the 19 global modules from thlqual.LOCAL.SCSQAUTH.
  6. Place the 19 global modules from thlqual.GLOBAL.SCSQAUTH into the LPA, by either:
    1. a. Adding thlqual.GLOBAL.SCSQAUTH into an LPALSTxx member of SYS1.PARMLIB. You must then IPL the system with the CLPA option to ensure that the library contents are loaded into the PLPA.
    2. b. Dynamically adding the modules to the LPA using the following command:
      SETPROG 
      LPA,ADD,MODNAME=(CSQ0GPLM,CSQ3AMGP,CSQ3SSGP,CSQ9PREP,CSQ9SCNB,CSQGGPLM,
      CSQMCGLM,CSQMGPLM,CSQRGLM1,CSQSLD1,CSQVGEPL,CSQVSRX,CSQWDLD2,CSQWDLD3,
      CSQWVZSA,CSQWZDG0,CSQWVZPS,CSQWVGTM,CSQZTDDM),DSNAME= thlqual.GLOBAL.SCSQAUTH
      Note: LPALSTxx is the preferred long term means of placing modules in LPA.
  7. Validate that the modules are in the LPA by issuing the following command:
    D PROG,LPA,MODNAME=CSQMCGLM
The output of the command should indicate the entry and load points of the module if it was successfully loaded into the LPA.
For each queue manager that needs to use the global modules from the LPA, then if you normally place:
  1. thlqual.SCSQAUTH in the link list, just stop and start your queue manager. The global modules are loaded from the LPA, and the local modules from the link list.
  2. thlqual.SCSQAUTH in the MSTR JCL STEPLIB, change the JCL so that the STEPLIB uses thlqual.LOCAL.SCSQAUTH instead of thlqual.SCSQAUTH. Stop and start the queue manager; the global modules are loaded from the LPA, and the local modules from the STEPLIB.

The CHIN and AMSM JCL can continue to use thlqual.SCSQAUTH as can any IBM MQ applications.

To revert the queue manager to loading the global modules into ECSA perform the following steps:
  1. Stop the queue managers
  2. Remove the global modules from the LPA, either at the next IPL by removing the LPALSTxx definitions or by using the following command:
    SETPROG LPA,DELETE,MODNAME=(xxx) FORCE=YES
  3. If thlqual.LOCAL.SCSQAUTH is in the STEPLIB of the queue manager replace it with thlqual.SCSQAUTH.
  4. Restart the queue managers.