Private storage analysis
By looking at the IEA705I, you can also see that the GETMAIN was unconditional for 32K of subpool 55 with backing storage (real) above or below 16 megabytes and virtual storage either above or below. When LOC=ANY is coded on the GETMAIN, VSM first looks to satisfy the request from above 16 megabytes. If unsuccessful, VSM then looks to satisfy the request from below 16 megabytes.
However, this does not necessarily indicate that subpool 55 was over-allocated. It just means that the virtual storage area that is constrained is the private area that includes the LSQA. Use the Abend-AID for CICS MVS Storage Analysis function to examine the allocations in the private areas.
The Virtual Storage Map, is a good place to start for any issues regarding storage allocations because it provides an overall picture of the address space. Access this screen by selecting menu option 1 from the MVS Storage Analysis menu, or once you have selected a region dump, you can enter the VSMAP fast-path command on the Command line on any Abend-AID for CICS screen.
Virtual Storage Map screen
COMMAND ===> SCROLL ===> CSR
The Ext User Region had not reached the highest allocatable address.
The Ext CSA had no pages converted to Ext SQA.
The CSA had no pages converted to SQA.
The User Region had not reached the highest allocatable address.
Starting Ending Size of Total Percent
Storage Area Address Address Area Allocated Allocated
**************** ******** ******** ********** ********** ***********
Ext Private 1D000000 7FFFFFFF 1,622,016K 54,420K 3.049
Ext User Region 1D000000 7DE7FFFF 131,584K 43,916K 33.375
Ext CSA 0A7FC000 1CFFFFFF 303,120K 184,448K 60.850
Ext MLPA 00000000 00000000 0K
Ext FLPA 0A7F9000 0A7FBFFF 12K
Ext PLPA 0726C000 0A7F8FFF 54,836K
Ext SQA 019E4000 02987FFF 16,016K 19,392K 121.079
Ext Nuc (R/W) 01DA8000 01DF6FFF 316K
Ext Nuc (R/O) 01000000 01DA7FFF 13,984K
- 16Mb Line ---- -------- -------- ---------- ---------- -----------
Nucleus (R/O) 00FDD000 00FFFFFF 140K
Nucleus (R/W) 00FD2000 00FDCFFF 44K
SQA 00E98000 00FC7FFF 1,216K 1,980K 162.829
PLPA 00D22000 00EDCFFF 1,772K
FLPA 00000000 00000000 0K
The amount of storage allocated in each area except for the LPA and nucleus areas is displayed along with the percentages these amounts represent. These figures are accumulated or calculated from the actual allocations found during analysis of the address space.
The analysis programs can produce messages in the Dump Analysis Message Log if errors or conditions such as invalid VSM control blocks are found. Normally you can find invalid control blocks for SQA DFEs or CSA DQEs and FQEs if the QUIESCE=NO option was specified on the SDUMP (X) request. QUIESCE=NO leaves the system dispatchable during the dumping of the SQA and CSA so that these areas can be modified (GETMAIN/FREEMAIN) such that the control blocks no longer reflect the storage dumped. Error detection is done such that processing stops only for looping conditions or broken chains, such as a DFE chain that causes the same series of DFEs to be repeatedly processed. This could significantly throw off the calculations of free areas.
In the header of the Virtual Storage Map screen, you can see that both user regions hit the highest allocatable address allowed. This information confirms that the private areas were indeed constrained, more specifically the user regions. Exactly what this indicates is described in the explanation of the Private Area Summary screen below. Also note that the SQA had reached 100 percent allocation and that any further requests for SQA subpools must be allocated from the CSA.
User region analysis
Find further detailed information on the Private Area Summary screen. Access this screen in one of the following ways:
- From the Virtual Storage Map, use the cursor-point-and-shoot feature and press Enter at the Ext Private, Ext User Region, Private, or User Region field under the Storage Area column.
- After selecting a region dump, enter the PVTSUM fast-path command on the Command line from any Abend-AID for CICS screen.
- Select option 2 from the MVS Storage Analysis menu.
Private Area Summary screen
COMMAND ===>
LDA Address................ 7FF18E00
Region Size (Kbytes)....... 8,192
To view the local system queue area select LSQA
To view a list of allocated subpools select List
Extended Private Area Private Area
Maximum Address............ 7FFFFFFF Maximum Address............ 009FFFFF
User Region Limit Address.. 7DE7FFFF User Region Limit Address.. 00890000
Low MVS Page Address....... 122FFFFF Low MVS Page Address....... 00814FFF
High User Region Address... 122FFFFF High User Region Address... 00814FFF
Starting Address........... 10300000 Starting Address........... 00005000
Maximum Size (Kbytes)...... 1,622,016 Maximum Size (Kbytes)...... 9,196
Limit Size (Kbytes)........ 32,768 Limit Size (Kbytes)........ 8,256
Adjusted Size (Kbytes)..... 32,768 Adjusted Size (Kbytes)..... 8,192
Free Blocks Available...... Yes Free Blocks Available...... Yes
SM Block Address........... 7F700000
SM Block Size (Kbytes)..... 8,508
The preceding figure displays detailed information on both the extended private area and private area. The local data area (LDA) is the VSM anchor block for information specific to an address space. The first five lines under each grouping map the private areas from the top of each area down to the start of each area. The private areas are further broken down into areas reserved for the operating system and its subsystems (MVS high private), and for user programs running in problem state (user region). LSQA, scheduler work area (SWA), and authorized user key subpools are allocated from the MVS high private area. These subpools are allocated from the top of the private area downward, while the user region subpools (0-127, 251, 252) are allocated from the start of the private area upward. No boundaries exist between LSQA, SWA, and authorized user key storage. They are all interspersed with each other, which can be seen on the Allocated Storage Map under the E/PVT Area column.
The user regions are limited in size depending on how the REGION parameter is coded on the JOB or EXEC statement, or whether the site chooses to override the defaults via system exit IEFUSI or IEALIMIT (controls below 16 megabyte private area only). Refer to the IBM OS/390 MVS Installation Exits manual for default limits or for coding either of these exits. Although there may be a limit on the user region, this does not place a limit on the MVS high private area. These subpools can be allocated from below the user region limit, but not below the highest allocated user region address (or page) also known as the top of the user region. This top is dynamic as storage is allocated and freed. Therefore, the low MVS page address line may be above or below the user region limit address line.
Keep in mind that MVS recovery/termination requires LSQA below 16 megabytes; and if it cannot be acquired, the address space will be terminated. When this occurs, an SVC dump is rarely usable.
This address space had REGION=8M or 8192K coded since the Region Size (Kbytes) field has 8,192. Note that the User Region Limit Address and High User Region Address fields contain the same addresses, 122FFFFF and 00814FFF. Note also that both Free Blocks Available fields display Yes, indicating that free blocks of storage do exist. Use the cursor-point-and-shoot feature and press Enter at the Yes field under the Extended Private Area column to display the Free Block Queue Elements screen. The significance of the Low MVS Page Address field is further discussed in LSQA Analysis.
Free Block Queue Elements screen, extended private area
COMMAND ===> SCROLL ===> CSR
Total free storage (K)...... 1,789,500 Free Below High User (K)... 0
Maximum Address.............. 7FFFFFFF Free from User to Limit (K) 0
User Region Limit Address.... 7F68C000 Free from Limit to MVS (K). 1,789,488
Low MVS Page Address......... 122FFFFF Free Between User & MVS (K) 1,789,488
High User Region Address..... 122FFFFF Free Above Low MVS (K)..... 12
FBQE Start of End of Size of
Address Area Area Area Location
******** ******** ******** ********** **********************************
7F765778 12300000 7F68BFFF 1,789,488K Below the High User Region & Low MVS
7F2B7700 7F68E000 7F68EFFF 4K Above the Low MVS Page Address
7F2B7700 7F691000 7F692FFF 8K Above the Low MVS Page Address
******************************* BOTTOM OF DATA ***************************************
The Free Block Queue Elements screen displays all the blocks of unallocated storage in the extended private area. The first free block starts at 12300000 to 7F68BFFF for 1,789,488K, which means that the only free blocks are above the limit of the extended user region. In other words, the entire extended user region is allocated. Note that the Free from User to Limit (K) field in the header is 0, which could mean that the extended user region limit needs to be increased. Note also that the Free from Limit to MVS (K) field is 1,789,488K. Therefore, the extended user limit could be increased if necessary.
Press the End (PF3) key to return to the Private Area Summary screen. Use the cursor-point-and-shoot feature and press Enter at the Yes displayed in the Free Blocks Available field under the Private Area section to display the Free Block Queue Elements screen for the private area.
Free Block Queue Elements screen, private area
COMMAND ===> SCROLL ===> CSR
Total free storage (K)...... 548 Free Below High User (K)... 20
Maximum Address.............. 008FFFFF Free from User to Limit (K) 0
User Region Limit Address.... 00890000 Free from Limit to MVS (K). 528
Low MVS Page Address......... 00814FFF Free Between User & MVS (K) 528
High User Region Address..... 00814FFF Free Above Low MVS (K)..... 0
FBQE Start of End of Size of
Address Area Area Area Location
******** ******** ******** ********** **********************************
7F69FEF0 0080F000 00813FFF 20K Below the High User Region Address
7F765448 00815000 00898FFF 528K Between High User Region & Low MVS
******************************* BOTTOM OF DATA ***************************************
The first free block starts at 0080F000 to 00813FFF with a size of 20K. Although the user region has some unallocated storage remaining, this amount is not enough to satisfy the GETMAIN request for 32K. There is another free block from 00815000 to 00898FFF of 528K, but it is above the user region limit. This block corresponds with the 00899000 in the Low MVS Page Address field displayed in the private area section of the Private Area Summary screen.
From the Free Block Queue Elements screen for the private areas, note that there is only 20K available in the user region below 16 megabytes, and there is nothing available in the extended user region. The GETMAIN for subpool 55 of 32K failed for this reason. The next step is to determine what subpools in the user regions if any are excessively allocated, or if the user region limits needs to be increased. If there are excessive allocations, the owner/allocator needs to be identified.
Press the END (PF3) key to return to the Private Area Summary screen. From this screen, use the cursor point-and-shoot feature and press Enter at the List field in the header to display the Allocated Private Subpools screen. Alternatively, you can enter the PVTSP fast-path command on the Command line of any Abend-AID for CICS screen once you have selected a region dump.
Allocated Private Subpools screen
COMMAND ===> SCROLL ===> CSR
Private Size (Kbytes)....................... 10,216
Extended Private Size (Kbytes).............. 1,622,016
Total Private Allocated (Kbytes)............ 7,540
Total Extended Private Allocated (Kbytes)... 1,283,360
To view a summary of these subpools select Summarize
To view user region subpools select User Region
To view scheduler work area subpools select SWA
To view authorized user key subpools select Authorized
TCB Allocated Percent of Allocated Percent of
Id Key Ownership Address <16Mb Total <16Mb >16Mb Total >16Mb
*** *** ********* ******** ********** *********** ********** ***********
229 0 OWN 009FD520 0K 0.000 5,028K 0.392
229 1 OWN 009FD520 0K 0.000 104K 0.008
229 1 OWN 009FD520 0K 0.000 4K 0.000
229 5 OWN 009FD520 0K 0.000 492K 0.038
229 5 OWN 009FD520 0K 0.000 44K 0.003
230 0 OWN 009FD520 4K 0.053 440K 0.034
230 0 OWN 009FD520 8K 0.106 16K 0.001
230 1 OWN 009FD520 28K 0.053 8K 0.001
230 1 OWN 009FD520 8K 0.106 212K 0.017
230 2 OWN 009FD520 4K 0.053 8K 0.001
The Allocated Private Subpools screen displays a list of allocated subpools that are chained off each task control block (TCB) found in the address space. The TCBs are processed in the order found on the TCB Summary screen. The LSQA subpools do not appear on this screen because they are not chained off the TCB. They are found from the AQATINDX and AQAT control blocks. However, the SWA and authorized user key subpools are chained off the TCB and appear here. Because it was previously determined that the user regions were constrained, use the cursor point-and-shoot feature and press Enter at the User Region field in the header to display the Allocated Private Subpools screen for the user region subpools only.
Allocated Private Subpools screen for User Regions
Private Size (Kbytes)....................... 10,216
Extended Private Size (Kbytes).............. 1,622,016
Total Private Allocated (Kbytes)............ 7,540
Total Extended Private Allocated (Kbytes)... 1,283,360
To view a summary of these subpools select Summarize
To view scheduler work area subpools select SWA
To view authorized user key subpools select Authorized
TCB Allocated Percent of Allocated Percent of
Id Key Ownership Address <16Mb Total <16Mb >16Mb Total >16Mb
*** *** ********* ******** ********** *********** ********** ***********
252 0 OWN 009FD520 0K 0.000 0K 0.000
0 8 OWN,SHR 009FED90 52K 0.690 25,664K 2.000
0 8 OWN,SHR 009FED90 0K 0.000 0K 0.000
252 0 OWN 009FED90 0K 0.000 0K 0.000
0 8 SHR 009F81B8
0 8 SHR 009F81B8
129 1 OWN 009F81B8 0K 0.000 0K 0.000
129 4 OWN 009F81B8 0K 0.000 76K 0.006
129 8 OWN 009F81B8 0K 0.000 0K 0.000
130 0 OWN 009F81B8 0K 0.000 8K 0.001
131 0 OWN 009F81B8 0K 0.000 0K 0.000
This screen lists the total allocations for a subpool only if it is owned (OWN or OWN,SHR), but not if it is shared (SHR). Incorrect calculations would otherwise result because the descriptor queue elements (DQEs) would be counted more than once. If you select a subpool that is SHR only, the Private Subpool Detail screen displays with the owning TCB address in the header as well as the DQEs and FQEs as if the subpool of the owning TCB had been selected. User region subpools can be summarized since a subpool can appear more than once whether it is owned exclusively or shared with other TCBs. On the Allocated Private Subpools screen, use the cursor point-and-shoot feature and press Enter at the Summarize field to display the Summarized Private Subpools screen.
Summarized Private Subpools
COMMAND ===> SCROLL ===> CSR
Private Size (Kbytes)....................... 10,216
Extended Private Size (Kbytes).............. 1,622,016
Total Private Allocated (Kbytes)............ 7,540
Total Extended Private Allocated (Kbytes)... 1,283,360
Allocated Percent of Allocated Percent of Total Percent of
Id <16Mb Total <16Mb >16Mb Total >16Mb Allocated <16M + >16M
*** ********** *********** ********** *********** ********** ***********
0 68K 0.902 25,700K 2.003 25,768K 1.996
1 20K 0.265 14,164K 1.104 14,184K 1.099
2 4K 0.053 60K 0.005 64K 0.005
3 8K 0.106 0K 0.000 8K 0.001
55 0K 0.000 0K 0.000 0K 0.000
92 0K 0.000 0K 0.000 0K 0.000
97 8K 0.106 452K 0.035 460K 0.036
100 0K 0.000 12K 0.001 12K 0.001
101 0K 0.000 4K 0.000 4K 0.000
102 4K 0.053 0K 0.000 4K 0.000
103 36K 0.477 0K 0.000 36K 0.003
104 0K 0.000 224K 0.017 224K 0.017
120 0K 0.000 508K 0.040 508K 0.039
127 0K 0.000 2,788K 0.217 2,788K 0.216
129 0K 0.000 76K 0.006 76K 0.006
Sort the Summarized Private Subpools screen by any of the columns. Because the extended area is used first for GETMAINs with LOC=ANY, sort the screen by the Allocated >16Mb column to show what subpool is using the most amount of extended user region. Type SORT on the Command line, place the cursor on the Allocated >16 Mb column heading and press Enter. Use the BOTTOM primary command or type MAX on the Command line and press the DOWN (PF8) key to scroll to the bottom of the data. Note that subpool 252 has the most allocated.
Summarized Private Subpools screen, sorted and scrolled down
COMMAND ===> SCROLL ===> CSR
Private Size (Kbytes)....................... 10,216
Extended Private Size (Kbytes).............. 1,622,016
Total Private Allocated (Kbytes)............ 7,540
Total Extended Private Allocated (Kbytes)... 1,283,360
Allocated Percent of Allocated Percent of Total Percent of
Id <16Mb Total <16Mb >16Mb Total >16Mb Allocated <16M + >16M
*** ********** *********** ********** *********** ********** ***********
130 0K 0.000 8K 0.001 8K 0.001
131 4K 0.053 548K 0.043 552K 0.043
132 20K 0.265 5,864K 0.457 5,884K 0.456
251 96K 1.273 364K 0.028 460K 0.036
252 6,632K 87.958 1,201,900K 93.653 1,208,532K 93.619
****************************** BOTTOM OF DATA ******************************************
Press the END (PF3) key to return to the Allocated Private Subpools screen for user regions only. Enter the SORT primary command, or type SORT on the command line and press Enter at the Allocated > 16 Mb column heading. Enter the BOTTOM primary command, or type MAX on the command line and press the DOWN (PF8) key to scroll to the bottom of the data.
Summarized Private Subpools screen, sorted and scrolled down
COMMAND ===> SCROLL ===> CSR
Private Size (Kbytes)....................... 10,216
Extended Private Size (Kbytes).............. 1,622,016
Total Private Allocated (Kbytes)............ 7,540
Total Extended Private Allocated (Kbytes)... 1,283,360
To view a summary of these subpools select Summarize
To view scheduler work area subpools select SWA
To view authorized user key subpools select Authorized
TCB Allocated Percent of Allocated Percent of
Id Key Ownership Address <16Mb Total <16Mb >16Mb Total >16Mb
*** *** ********* ******** ********** *********** ********** ***********
251 8 OWN 007F81B8 96K 1.273 364K 0.028
97 8 OWN,SHR 008BEE88 8K 0.106 452K 0.035
120 8 OWN 008BEE88 0K 0.000 508K 0.040
131 8 OWN 008F81B8 4K 0.053 536K 0.042
1 8 OWN,SHR 00842E88 4K 0.053 4,308K 0.336
1 8 OWN,SHR 008487A0 4K 0.053 4,812K 0.375
1 8 OWN,SHR 0084CC88 4K 0.053 4,852K 0.378
132 8 OWN 008F81B8 20K 0.265 5,864K 0.457
55 8 OWN 008C9A60 0K 0.000 8,192K 24.140
252 0 OWN 008C9BF8 4,900K 56.950 12,568K 37.034
************************** BOTTOM OF DATA *********************************************
Use the cursor point-and-shoot feature and press Enter at 252 to display the Private Subpool Detail screen for this subpool. Press the RIGHT (PF11) key to display the right-most portion of the screen.
Private Subpool Detail screen
COMMAND ===> SCROLL ===> CSR
Subpool..................... 252 SPQA Address................ 7F588760
Key......................... 0 Allocated <16Mb (Kbytes).... 6,632
SPQE Address................ 7F588748 Allocated >16Mb (Kbytes).... 1,201,900
TCB Address................. 009F81B8 Total Allocated (Kbytes).... 1,208,532
Ownership................... OWN Free <16Mb.................. 6,688
Free >16Mb.................. 138,320
Total Free.................. 145,008
DQE Backing Area Size of Data
Address Storage Address Area Address First 32 Bytes of Data
******** ******** ******** ********* ******** ********************************
7F588928 BELOW 00008000 24 00008018 CIPT..a & ..m.. .....
80 00008C68 CIPT.... { . p.. N ...B\
7F473028 BELOW 0001D000 0001D000 *DFHCICS .. 0720I HCI7200 -
7F44D688 BELOW 00022000 240 000220F0 .... ,..... a..... f..... .
7F21E1D8 BELOW 0065C000 2,360 0065C938 \. X X .. ..... X ........
7DBF4DD8 BELOW 00672000 00672000 ... .. } . x4. . .....
7F4731C0 ANYWHERE 00040000 00040000 &>MODHEAD P"720DFHLDSVC11/19/18
7F240A00 ANYWHERE 000C0000 000C0000 ................................
7F21E1A8 ANYWHERE 00100000 00100000 B0000175 . " W FREEWRK1 c . }
7F0546E8 ANYWHERE 00140000 00140000 DFHYA720T0 . 00} 00 00 .
7F588CD0 ANYWHERE 00009000 3,976 00009F88 .. Q.... 0 Dj ... ... ....
Not only is the DQE and FQE information displayed, but as an aid in attempting to determine the ownership of the storage, the first 32 bytes of allocated storage is displayed. Several first-32-bytes-for-a-DQE may exist if there is free storage (FQE) within that DQE. The methods used in displaying the first 32 bytes of data are the following:
- If there is no free area within a DQE, the first 32 bytes are at the start of the DQE, or DQE area address. Data address reflects this.
- If there are FQEs, there are additional first 32 bytes after each free area as determined by adding FQE area size to FQE area address. Data address reflects this calculation.
- If the free area is at the end of the DQE, << REACHED END OF DQE AREA >> is displayed. Data address is blank.
- If the page on which the allocation is located is not contained in the SDUMP dataset, << STORAGE NOT AVAILABLE >> is displayed.
Looking at these first 32 bytes of data, you see that subpool 252 contains either programs or CICS DSA data. Select a DSA name on the CICS Environment Summary or the Dynamic Storage Area Summary to determine in which subpools the DSAs exist. Refer to Enhanced Memory Display for information about how these screens can be used along with an enhancement to the Memory Display screen.
Press the END (PF3) key to return to the Allocated Private Subpools screen again. Next, use the cursor point-and-shoot feature and press Enter at the subpool with the next most extended storage allocated, subpool 55, to display the associated Private Subpool Detail screen. Press the RIGHT (PF11) key to display the right-most portion of the screen.
Private Subpool Detail screen, scrolled right
COMMAND ===> SCROLL ===> CSR
Subpool..................... 55 SPQA Address................ 7F6F9400
Key......................... 8 Allocated <16Mb (Kbytes).... 0
SPQE Address................ 7F6F93E8 Allocated >16Mb (Kbytes).... 8,192
TCB Address................. 008C9A60 Total Allocated (Kbytes).... 8,192
Ownership................... OWN Free <16Mb.................. 0
Free >16Mb.................. 81,920
Total Free.................. 81,920
DQE Backing Area Size of Data
Address Storage Address Area Address First 32 Bytes of Data
******** ******** ******** ********* ******** ********************************
7F6F9418 ANYWHERE 115F7500 1,280 115F7500 >VECTTBY........................
7F6F9448 ANYWHERE 116E1000 1,280 116E1500 >VECTTBY........................
7F6F9478 ANYWHERE 11701000 1,280 11701500 >VECTTBY........................
7F6F94A8 ANYWHERE 11721000 1,280 11721500 >VECTTBY........................
7F6F94D8 ANYWHERE 11741000 1,280 11741500 >VECTTBY........................
7F6F9508 ANYWHERE 11761000 1,280 11761500 >VECTTBY........................
7F6F9538 ANYWHERE 11781000 1,280 11781500 >VECTTBY........................
7F6F9568 ANYWHERE 117A1000 1,280 117A1500 >VECTTBY........................
7F6F9598 ANYWHERE 117C1000 1,280 117C1500 >VECTTBY........................
7F6F95C8 ANYWHERE 117E1000 1,280 117E1500 >VECTTBY........................
In addition to looking at the first 32 bytes of data, watch for large size DQEs. You can see repeated allocations of 129,792 bytes, just 1,280 bytes less than 128K. All of the allocations have an eye catcher of >VECTTBY so now you can use the TCB address to identify the owner. However, if the subpool were shared (OWN,SHR) among several TCBs, it would not be so easy to identify the owner. This situation is usually the case with subpool 0.
Press the END (PF3) key to return to the Allocated Private Subpools screen. Note that the TCB address owning subpool 55 is 008C9A60. At the Command line, enter the TCBS fast-path command to display the TCB Summary screen. Enter the BOTTOM primary command, or type MAX on the command line and press the DOWN (PF8) key to scroll to bottom of the display, where the TCB address for subpool 55 is located. Note that the program running on that TCB is VENXPGMY. Keep in mind that there may be several programs that run/ran on a TCB, but in the case of a vendor product, they will usually all be owned by that vendor.
TCB Summary screen
COMMAND ===> SCROLL ===> CSR
==>
Job Name................. CCFXC410 Number of TCBs........... 14
Abend Date............... 20APR2022 Number of RBs............ 19
Abend Time............... 19:04:16
R RTM2 Work Area S Save Area Trace G RB Register Contents
E TCB Storage I EPIE L TCB Load List
K Linkage Stack D TCB Detail C LE Information
TCB RB RB Interrupt Completion
Address Abend Address Type Program Offset Code Code
******** ***** ******** **** ******** ****** **** *****
_ 008CB700 PRB DFHSIP 000002 0001
_ 008CB490 008CB410 PRB DFHJCOCP 000000 0008
_ 008C20C8 PRB DFHAPSIP 001006 0001
_ 00882AC0 008A2370 PRB DFHSKTSK 000000 0006
_ 008B2740 008826C0 PRB CTCCJCOP 001CAA 0001
_ 008B2520 00882460 PRB CTCCJVUE 0005C2 0001
_ 008C9A60 008C99C8 PRB VENXPGMY 0001A6 0001
_ 008C97D0 <TCB 008FFC10 SVRB 000C S878
_ RB> 008FF928 SVRB 000E5C 0033
********************************* BOTTOM OF DATA *************************
Now that the owning TCB is identified, the entry point address is displayed in the hope some copyright information is in the program. Note the data in the Offset column (X'1A6'), and press the RIGHT (PF11) key to display the right-most portion of the screen. Use the cursor point-and-shoot feature and press Enter at the second fullword of the data in the PSW column to display the Storage Disassembly screen.
Storage Disassembly screen
COMMAND ===> SCROLL ===> CSR
Address Offset Object Code Mnemonic and Operands
1D07DCAA 00000000 A7F4 0121 BRC 15,*+578
1D07DCAE 00000004 E350 D0B0 0004 LG R5,176(,R13)
1D07DCB4 0000000A 5860 B0A4 L R6,164(,R11)
1D07DCB8 0000000E C070 0000 9D10 LARL R7,*+80416
1D07DCBE 00000014 A57A 8000 OILH R7,X'8000'
1D07DCC2 00000018 D204 5130 60A8 MVC 304(5,R5),168(R6)
1D07DCC8 0000001E 5850 7000 L R5,0(,R7)
1D07DCCC 00000022 C25F FFFF FFFF CLFI R5,-1
1D07DCD2 00000028 A784 009F BRC 8,*+318
1D07DCD6 0000002C 4150 4428 LA R5,1064(,R4)
1D07DCDA 00000030 B917 0025 LLGTR R2,R5
1D07DCDE 00000034 D767 4428 4428 XC 1064(104,R4),1064(R4)
1D07DCE4 0000003A 96BE 4438 OI 1080(R4),190
1D07DCE8 0000003E 9620 443A OI 1082(R4),32
1D07DCEC 00000042 9201 4440 MVI 1088(R4),1
1D07DCF0 00000046 D207 4444 7000 MVC 1092(8,R4),0(R7)
1D07DCF6 0000004C 5800 7008 L R0,8(,R7)
1D07DCFA 00000050 5000 444C ST R0,1100(,R4)
1D07DCFE 00000054 5800 700C L R0,12(,R7)
1D07DD02 00000058 5000 4450 ST R0,1104(,R4)
1D07DD06 0000005C 9202 446B MVI 1131(R4),2
Use the cursor point-and-shoot feature and press Enter at the address of the PSW to display the Memory Display. At the Command line, enter -1A6 to move the display back to the EPA.
Memory Display screen
COMMAND ===> SCROLL ===> CSR
Clip Prev Next Lock
Start Addr: 1D07DCAA Comment: __________________________________
1D07DCAA area EPVT sp 251 key 0 ASID 01DF EBCDIC
Address Offset Word 1 Word 2 Word 3 Word 4 Storage
1D07DCAA +00000000 47F0A0A2 E5C5D5E7 D7C7D4E8 40F0F64B * 00sVENXPGMY 06.*
1D07DCCA +00000020 F0F64BF0 F64007E3 C660F0F3 F0F6F940 *06.06 PTF-03069 *
1D07DCEA +00000040 F0F961F2 F261F0F0 7CF0F74B F1F85C5C *09/22/19@07.18***
1D07DD0A +00000060 40E5C5D5 C4D6D940 D7D9D6C4 E4C3E340 * VENDOR PRODUCT *
1D07DD2A +00000080 E84040C3 5D40F1F9 F6F06BF2 F0F0F040 *Y (C) 1960,2000 *
1D07DD4A +000000A0 E5C5D5C4 D6D940E7 40C3D6D9 D74BD0E4 *VENDOR X CORP. U*
1D07DD6A +000000C0 D5D7E4C2 D3C9E2C8 C5C460D9 C9C7C8E3 *NPUBLISHED-RIGHT*
1D07DD8A +000000E0 E240D9C5 E2C5D9E5 C5C440E4 D5C4C5D9 *S RESERVED UNDER*
1D07DDAA +00000100 40E3C8C5 40C3D6D7 E8D9C9C7 C8E340D3 * THE COPYRIGHT L*
1D07DDCA +00000120 C1E6E240 D6C640E3 C8C540E4 4BE24B40 *AWS OF THE U.S. *
1D07DDEA +00000140 96402284 58204100 96802284 C0200000 *o d .o" d{ ..*
1D07DE0A +00000160 FFFFA774 FF69D717 44904490 96B844A0 * x P o *
1D07DE2A +00000180 500044BC 92B04491 A7080001 50004494 *&. k jx . &. m*
1D07DE4A +000001A0 0006C28B 00000001 B9140008 B9170016 *. B ... . . *
1D07DE6A +000001C0 449096B0 44A09205 44A89298 4491A708 * o k ykq jx *
1D07DE8A +000001E0 D0B80004 B9170016 E3F05018 00040DEF *} . . T0& . *
1D07DEAA +00000200 44A850B0 44AC5850 B0A45050 44BC92B0 * y& & u&& k *
1D07DECA +00000220 4490E350 D0B80004 89800006 C28B0000 * T&} . i". B ..*
Looking in the Storage column at the copyright text, you can see that Vendor X owns this module, and it is at release 6.6.0 with a PTF level of 03069 dated 09/22/19. Press the END (PF3) key three times to return to the Allocated Private Subpools screen. Note that there is another subpool 55 allocation, and its TCB address is 008C97D0. Enter the TCBS fast-path command to display the TCB Summary screen for this subpool. Enter the BOTTOM primary command, or type MAX on the command line and press the DOWN (PF8) key to scroll down to the TCB address for this subpool.
TCB Summary screen
COMMAND ===> SCROLL ===> CSR
==>
Job Name................. CCFXC410 Number of TCBs........... 14
Abend Date............... 20APR2022 Number of RBs............ 19
Abend Time............... 19:04:16
R RTM2 Work Area S Save Area Trace G RB Register Contents
E TCB Storage I EPIE L TCB Load List
K Linkage Stack D TCB Detail C LE Information
TCB RB RB Interrupt Completion
Address Abend Address Type Program Offset Code Code
******** ***** ******** **** ******** ****** **** *****
_ 008CB700 PRB DFHSIP 000002 0001
_ 008CB490 008CB410 PRB DFHJCOCP 000000 0008
_ 008C20C8 PRB DFHAPSIP 001006 0001
_ 00882AC0 008A2370 PRB DFHSKTSK 000000 0006
_ 008B2740 008826C0 PRB CTCCJCOP 001CAA 0001
_ 008B2520 00882460 PRB CTCCJVUE 0005C2 0001
_ 008C9A60 008C99C8 PRB VENXPGMY 0001A6 0001
_ 008C97D0 <TCB 008FFC10 SVRB 000C S878
_ RB> 008FF928 SVRB 000E5C 0033
_ 008C99C8 PRB VENXPGMZ 0001A8 0078
********************************* BOTTOM OF DATA *************************
The TCB Summary screen shows this is program VENXPGMZ, and it is also owned by the same vendor. Enter the E (TCB Storage) line command next to the TCB address to display all private area subpools allocated by the TCB. The total amount of storage allocated below, above, and combined by the TCB is shown in the header.
Allocated Private Subpools screen
COMMAND ===> SCROLL ===> CSR
==>
Private Size (Kbytes)....................... 10,216
Extended Private Size (Kbytes).............. 1,622,016
Total Private Allocated (Kbytes)............ 7,540
Total Extended Private Allocated (Kbytes)... 1,283,360
Total Allocated to TCB <16Mb (Kbytes)....... 6,756
Total Allocated to TCB >16Mb (Kbytes)....... 1,223,216
Total Amount Allocated to TCB (Kbytes)...... 1,229,972
TCB Allocated Percent of Allocated Percent
Id Key Ownership Address <16Mb TCB <16Mb >16Mb TCB >16M
*** *** ********* ******** ********** *********** ********** ********
229 0 OWN 009F81B8 0K 0.000 20K 0.00
229 2 OWN 009F81B8 0K 0.000 32K 0.00
229 5 OWN 009F81B8 16K 0.000 8K 0.00
229 6 OWN 009F81B8 0K 0.000 96K 0.00
229 7 OWN 009F81B8 0K 0.000 456K 0.03
230 0 OWN 009F81B8 0K 0.000 36K 0.00
230 1 OWN 009F81B8 0K 0.000 4K 0.00
230 5 OWN 009F81B8 4K 0.059 180K 0.01
The vendor needs to determine if this is a normal situation; and if it is, to make recommendations for increasing the limit on user region storage. If it is not normal, then the vendor needs to remedy the situation.
This scenario is only a simulation and VENXPGMY and VENXPGMZ were written to show how Abend-AID for CICS Virtual Storage Analysis can be used in such situations as S878-xx or S80A-xx.