Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

Analyzing MVS Virtual Storage


This section describes the Abend-AID for CICS Virtual Storage Analysis and the Memory Display screens. It also describes an approach for using Abend-AID for CICS to resolve an 878-xx abend or S80A-xx.

An S878 occurs when the system tries and fails to satisfy a STORAGE request, an RU or VRU form of a GETMAIN request, or an RU form of a FREEMAIN request, and depending on the reason code, indicates an out-of-storage condition. An S80A-xx occurs when the system tries and fails to process an R form of the GETMAIN or FREEMAIN macro. The xx is the reason code that explains the error which is also found in the system diagnostic work area (SDWA) in field SDWACRC.

Programming errors that commonly cause an S878-xx or S80A-xx include the following:

  • GETMAINs without subsequent FREEMAINs; that is, orphaned storage.
  • A section of program code that contains a GETMAIN which is repeatedly being executed (loop). Looking at the system trace table also assists in this case.
  • An invalid length specified on a GETMAIN.

Further, if the reason code indicates a GETMAIN failure for private area or local system queue area (LSQA) storage, verify that the size specified on the REGION parameter coded on the JOB or EXEC statement is large enough. The size specified on the REGION parameter is limited by the size of the private areas. The size of the private areas is determined by the size of the common areas at IPL time. In other words, storage for the common areas is set aside first and what is left over is for the private areas. The common areas include the prefixed save area (PSA); common service area (CSA); pageable, fixed, and modified link pack areas (PLPA, FLPA, and MLPA); system queue area (SQA); and the nucleus, which is fixed and non-swappable.

Note

For an in-depth discussion of the virtual storage areas, refer to the IBM OS/390 MVS initialization and tuning guide.

In order to determine the exact cause of the S878 or S80A, examine the IEA705I message in the JESMSGLG of the abending job for the xx reason code. If it is not available, the data area containing the unformatted information for the IEA705I is found in the extended nucleus. To find this area in the dump, go to the Control Blocks/Storage screen and select the CVT. Once the CVT is displayed on the Memory Display screen, select the address at offset x'10C'.

Refer to IBM informational APAR II05506 or IEA705I in the IBM messages manual for the layout of this area, which virtual storage manager (VSM) uses as a save area for error conditions. This area is in a module called IEAVMSGS in the extended read/write nucleus, which can also be found from the Nucleus Map display.

The JESMSGLG for the S878 sample created for this demonstration. The reason code is 10, which indicates the GETMAIN was for private area storage that could not be satisfied.

JESMSLOG for the S878 Abend

 Abend-AID ---------------- JES2 System Log --------------- Row 000001 of 000095
COMMAND ===> SCROLL ===> PAGE
==>
 Time     Job      Message
******** ******** *************************************************************
11.41.42 JOB12501 +DFHCP0102I H01AC118 CPI initialization has ended.
11.41.42 JOB12501 +DFHPR0105I H01AC118 Partner resource manager initialization
11.41.42 JOB12501 +DFHAI0102I H01AC118 AITM initialization has ended.
11.41.43 JOB12501 +DFHJC4508 H01AC118 CICS SYSTEM LOG. SECONDARY DATA SET NOW
11.41.43 JOB12501 +DFHJC4553 09/09/2019 11:41:43 H01AC118 Archive job submitted
11.41.43 JOB12501 +DFHAP1204I H01AC118 COBOL2 is being initialized.
11.41.43 JOB12501 +DFHSI1517 H01AC118 Control is being given to CICS
 . .    .    .    .     .
 .     .    .    .    .     .
 .     .    .    .    .     .
 .     .    .    .    .     .
11.42.49 JOB12501 IEA705I ERROR DURING GETMAIN SYS CODE = 878-10 CCFXC410 CICS
11.42.49 JOB12501 IEA705I 00F0C100 008C97D0 008C97D0 00377200 00008000
11.45.30 JOB12501 IEA995I SYMPTOM DUMP OUTPUT
  SYSTEM COMPLETION CODE=878 REASON CODE=00000010
TIME=11.42.49 SEQ=50362 CPU=0047 ASID=007B
PSW AT TIME OF ERROR 070C1000  8155EE6E ILC 2  INTC 0D
 .     .    .    .    .     .
 .     .    .    .    .     .
******************************** BOTTOM OF DATA *********************************

Because most of the screens displayed in this chapter are wider than the standard, default display format (24 rows by 80 characters), you may want to change your emulator/terminal display to a wider format (27 rows by 132 columns).

Access the MVS Storage Analysis function from the MVS Information menu, which is a selection on the Report Menu for region dump analysis. Alternatively, once you have selected a region dump, you can enter the MVSSTG fast-path command from the Command line on any Abend-AID for CICS screen to directly access the MVS Storage Analysis menu.

MVS Storage Analysis Menu

 Abend-AID ---------------- MVS Storage Analysis -----------------------------
OPTION  ===>

1  VSMAP    Virtual Storage Map   8  SQASP SQA Subpools

2  PVTSUM Private Area Summary   9  CSASUM CSA Summary

3  PVTSP    Private Subpools   10 CSASP CSA Subpools

4  LSQA     LSQA Summary   11 LPAMAP LPA Map

5  LSQASP   LSQA Subpools   12 NUCMAP Nucleus Map

6  ASMAP    Allocated Storage Map   13 MEMOBJ Memory Objects

7  SQASUM   SQA Summary   14 DSPACE Data Spaces

This menu provides links to different storage areas to help you determine the cause of memory errors:

  1. VSMAP (Virtual Storage Map) — Displays the starting and ending address of the virtual storage areas for an MVS system from which the address space was dumped. See Private Storage Analysis for more information.
  2. PVTSUM (Private Area Summary) — Displays allocations of the private areas of the address space at the time the SVC dump was taken. The information is obtained from the VSM LDA (Local Data Area) directly or is computed from data contained therein. See Private Storage Analysis for more information.
  3. PVTSP (Private Subpools) — Displays the totals of allocated storage by subpool in the Private and Extended Private areas for all TCBs or for a specific TCB at the time of the error. Amounts are only displayed once for a shared (SHR) subpool under the TCB that owns (OWN) it. Select a shared-only subpool to see the owning TCB address. See Private Storage Analysis  for more information.
  4. LSQA (LSQA Summary) — Displays information on the local system queue area (LSQA) in the private areas of the address space at the time the SVC dump was taken. The information is obtained from the VSM local data area (LDA) or computed from data addressed by it. See LSQA Analysis for more information.
  5. LSQASP (LSQA Subpools) — Summarizes the allocated subpools in the LSQA or SQA and the extended LSQA or SQA areas at the time of the error. See LSQA Analysis  for more information.
  6. ASMAP (Allocated Storage Map) — Displays allocated virtual storage by starting address, ending address, and number of pages (range), virtual storage area (Private, CSA, or SQA), subpool, key (applicable to Private and CSA), ownership and owning TCB address (applicable to Private only). All fields can be sorted except Ownership and TCB Address. See Allocated Storage Map for more information.
  7. SQASUM (SQA Summary) — Displays information on the global system queue area (SQA) at the time the SVC dump was taken. The information is obtained from the VSM global data area (GDA) or computed from data addressed by the GDA. See Common Storage Analysis and SQA Analysis for more information.
  8. SQASP (SQA Subpools) — Summarizes the allocated subpools in the LSQA or SQA and the extended LSQA or SQA areas at the time of the error. See SQA Analysis  for more information.
  9. CSASUM (CSA Summary) — Displays allocations of the common service areas of virtual storage at the time the SVC dump was taken. The information is obtained from the VSM GDA directly or is computed from data contained therein. See SQA Analysis for more information.
  10. CSASP (CSA Subpools) — Summarizes the allocated subpools in the CSA and the extended CSA at the time of the error. See SQA Analysis for more information.
  11. LPAMAP (LPA Map) — Displays a mapping of the modules located in link pack areas (LPA) sorted by address. There are three chains/queues containing either a CDE or an LPDE. The pagable link pack areas (PLPA) are chained from the CVTLPDIA. The fixed and modified LPAs (FLPA and MPLA) are chained from the CVTQLPQA and the dynamic LPAs (available from OS/390 V2R4) are chained from the ECVTDLPF. See Link Pack Areas for more information.
  12. NUCMAP (Nucleus Map) — Displays a mapping of the CSECTs located in the system nucleus areas sorted by address. The NUCMAP is addressed from CVTNUCMP. See Nucleus Areas for more information.
  13. MEMOBJ (Memory Objects) — Displays information on memory objects that were allocated using the IARV64 macro (storage above the bar). See 64-bit Memory Analysis  for more information.
  14. DSPACE (Data Spaces) — Displays the data spaces that are owned by a TCB running in the selected ASID. There may be other data spaces contained in the dump that are owned by other ASIDs.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*