CICS is utilizing 64 bit storage that is above the 2 gigabytes (GB) boundary, also known as above the bar, more and more in each new release of CICS Transaction Server for z/OS (CICS TS) starting with version 3.2. CICS has an above the bar dynamic storage area referred to as the grande dynamic storage area (GDSA), but how it is allocated is a bit different, compared to how the DSAs and EDSAs that reside below the bar are allocated.
For below the line DSA and above the line DSA, CICS has system initialization (SIT) parameters to pre-allocate these storage areas. The parameters are DSALIM and EDSALIM. These values need to be smaller than than the REGION size specified for the CICS job, or smaller than the limit specified in the IEFUSI exit. At initialization, CICS will getmain the DSALIM and EDSALIM storage so it is reserved, and if the getmain fails, meaning the value is too large, CICS will getmain smaller default amounts. In any case, the DSAs for below the bar storage are pre-allocated storage areas.
Now for above the bar DSA, there is *no* SIT parameter called GDSALIM. That is, no SIT parameter to control the allocation of the storage. The key difference between the above and below the bar DSAs, is that CICS does not ‘reserve’ or pre-allocate the GDSA.
The amount of 64-bit storage available to the CICS region is controlled by the z/OS parameter MEMLIMIT. This storage includes the GDSA and 64-bit MVS storage in the CICS region outside the GDSA. Some examples of MVS 64 bit allocations outside our GDSA are:
- CICS internal trace table
- Main temporary storage queues controlled by TSMAINLIMIT
- Storage related to JVMs
- Initial storage heap controlled by options -Xms and -Xmx
- HEAP64 runtime option
- Applications requesting 64 bit storage
Getting back to the GDSA, CICS allocates an “extent” when allocating storage for the GDSAs. The extent size for the GDSA is 1 GB. When CICS needs storage for one of its GDSAs (GCDSA, GUDSA or GSDSA), there needs to be 1 GB of continuous storage available from the MEMLIMIT, otherwise a short on storage condition will occur and CICS issues message DFHSM0606 The amount of MVS above the bar storage available to CICS is critically low.
It is important to ensure a large enough MEMLIMIT is specified to satisfy the GDSA and other 64-bit storage requirements. To estimate a good MEMLIMIT value for a CICS region, you should add up the storage requirements for the facilities that use 64-bit storage that you use in your CICS region. For more information, see Estimating, checking, and setting MEMLIMIT in the CICS documentation.