Estimating, checking, and setting MEMLIMIT

The z/OS® MEMLIMIT parameter limits the amount of 64-bit (above-the-bar) storage that the CICS® address space can use. This storage includes the CICS dynamic storage areas above the bar (collectively called the GDSA) and MVS™ storage in the CICS region outside the GDSA.

About this task

CICS requires a MEMLIMIT value of 6 GB; any additional use by applications or JVMs should be allowed for with a larger value of MEMLIMIT. If you attempt to start a CICS region with a MEMLIMIT value that is less than 6 GB, message DFHSM0602 is issued, a system dump with the dump code KERNDUMP is produced, and CICS terminates.

You cannot alter the MEMLIMIT value for the CICS region while CICS is running. You can specify a new MEMLIMIT value on the next start of the CICS region.

CICS uses a different calculation to z/OS when checking MEMLIMIT to see whether a new GDSA extent can be allocated. CICS calculates the current usage as the amount that is allocated to the 64-bit Memory Objects, which includes both Usable and Hidden storage.

Procedure

  • When you are setting MEMLIMIT, you should aim to avoid CICS SOS Above the Bar. MEMLIMIT can be reduced after the actual peak usage is clear.
  • To check the MEMLIMIT value that currently applies to a running CICS region, use one of the following methods:
    • CICS Explorer®: Regions view or Global Dynamic Storage Areas view
    • CICSPlex® SM: Dynamic storage areas - CICSDSA view or CICS regions - CICSRGN view
    • CEMT: CEMT INQUIRE DSAS or CEMT INQUIRE SYSTEM
    • CICS SPI: INQUIRE SYSTEM
    • The Storage Above 2 GB report produced by DFH0STAT provides information about 64-bit usage from various CICS Statistics fields. SMSMEMLIMIT - (SMSLVABYTES/1048576) rounded down to units of GB shows by how much the GDSA can be expanded. This is reported as "MEMLIMIT minus allocated to Private Memory Objects".
    Links to information about these resources are at the end of this topic.
  • To estimate a suitable MEMLIMIT value for a CICS region, add up the storage requirements for those facilities that use 64-bit storage that you use in your CICS region.

    For a list of CICS facilities that use 64-bit storage in the CICS region and the relevant storage subpools, see CICS facilities that use 64-bit storage.

    CICS must allocate a GDSA extent that is a multiple of 1 GB before it can suballocate storage for CICS 64-bit subpools within it. The CICS Internal Trace Table is always allocated with a size of 1 GB.

    The CICS storage manager statistics show the storage used in each CICS subpool in the GDSA in a running CICS region. For information about the subpools in the GDSA, see CICS subpools in the GCDSA and CICS subpools in the GSDSA.

  • To change a MEMLIMIT value in z/OS, or determine the value that applies to a CICS region that you are setting up, see Limiting the use of memory objects in the z/OS MVS Programming: Extended Addressability Guide.
    MEMLIMIT can be set in one of the following ways:
    • A MEMLIMIT value can be specified in the JOB statement in the CICS JCL, or in the EXEC statement (program execution line) for CICS.
    • If there is no MEMLIMIT value specific to the CICS region, the MEMLIMIT value that is set in the z/OS SMFPRMxx PARMLIB member, or the system default, applies.
    • The z/OS installation exit IEFUSI can override any other MEMLIMIT values.
    The following example shows a MEMLIMIT value set in the program execution line:
    //CICS EXEC PGM=DFHSIP,PARM='SI',REGION=0M,MEMLIMIT=6G