SYSTEM BY TOM BRYANT STRATEGIES MVS/XA/ESA Problem Solving: Part I — Using IPCS With MVS/ESA Version 5

PCS for MVS/ESA Version 5 has come a long way since I first used it in 1983 the prompting of an exuberant IBM customer engineer. IPCS IPCS for MVS/ESA continues to move toward a fully panel-driven environment, although in Version 5 offers many Isome situations, I using IPCS commands easier. capabilities, including the ability to scan for unformatted storage dumps. This article Future articles will examine the environ- easily in batch mode as well as in an ISPF mental record editing and printing program foreground session. I also wanted a CLIST examines the many (EREP), one-page MVS/XA/ESA abend that was well-documented with easy-to-use facilities of IPCS, analysis, advanced SVCDUMP analysis, parameters. Finally, I wanted a CLIST that slip traps and GTF tracing, and standalone does not hang onto dump directory and IPCS and includes some dump analysis. print dataset allocations when completed, as of the author’s favorite IPCS stands for Interactive Problem the IBM BLSCDDIR CLIST does. Control System, although most people IPCS commands. (myself included) use it just for looking at IPCS FOR MVS/ESA unformatted storage dumps. IPCS will process VERSION 4.3 AND ABOVE SVCDUMPs which are dumps usually pro- The #IPCSTJB CLIST is the mainline duced with the abend (SVC 13) issued by your CLIST that you execute to establish an IPCS program or the system. Other unformatted session (see Figure 1). If you are invoking dumps that IPCS will produce include an #IPCSTJB for the first , the NEW CLIST application unformatted dump allocated keyword parameter indicates that you will through the SYSMDUMP statement and dynamically create a VSAM dump directory the standalone dump produced by the stand- using the value of the VOL CLIST keyword alone dump program. parameter. The BATCH keyword will allow IPCS has the ability to process generalized you to run the #IPCSTJB CLIST in batch trace facility (GTF) data both externally and (where ISPF LIBDEF commands need not be within the dump. IPCS has the ability to look performed and initial SETDEF parameter at live system storage, although only for your favorites of mine are set). I have been unable address space; you can’t look at any private to pass these SETDEF commands to IPCS storage in another address space. when running as an ISPF application. I usual- IBM provides the BLSCDDIR CLIST in ly do a certain amount of IPCS batch process- the library SYS1.SBLSCLI0 to initiate an ing before using the ISPF interface due to per- IPCS session. If you are at MVS/ESA Version formance reasons covered later in this article. 4.3 or above, you can now initialize IPCS I have added keyword parameters of under ISPF — this makes IPCS much easier DDIRPRI and DDIRSEC to the #IPCSTJB to use as a full-fledged ISPF application. I CLIST to allow the user to determine how took the ideas presented in the BLSCDDIR many cylinders are necessary for the primary CLIST and created my own IPCS startup allocation of the IPCS VSAM dump directory CLIST. I wanted a CLIST that could be run and for the secondary allocation. Most of the

TECHNICAL SUPPORT OCTOBER 1996 SYSTEM STRATEGIES

Figure 1: #IPCSTJB: Clist to Get Into {Access} IPCS ELSE ALLOCATE F(IPCSDDIR) DSNAME(‘&SYSUID..DDIR.DUMP’) SHR REUSE IF &LASTCC GT 0 THEN + PROC 0 BATCH NEW VOL(UCB999) DDIRPRI(90) DDIRSEC(50) DEBUG DO /**************************************************************/ /* */ WRITE &SYSUID..DUMP.DDIR NOT FOUND /* #IPCSTJB: IPCS ALL-PURPOSE INITIALIZATION CLIST */ WRITE SPECIFY #IPCSTJB NEW /* */ FREE F(IPCSPRNT /* */ /* BATCH ==> POSITIONAL OPERAND TO INDICATE IPCS BATCH */ END /* EXECUTION (ISPF DIALOG IS DEFAULT) */ ISPEXEC LIBDEF ISPPLIB DATASET ID(‘SYS1.SBLSPNL0’) /* */ ISPEXEC LIBDEF ISPMLIB DATASET ID(‘SYS1.SBLSMSG0’) /* NEW ==> CREATE NEW IPCS VSAM DUMP DIRECTORY */ ISPEXEC LIBDEF ISPTLIB DATASET ID(‘SYS1.SBLSTBL0’) /* (DEFAULT IS TO USE EXISTING DIRECTORY) */ ISPEXEC LIBDEF ISPSLIB DATASET ID(‘SYS1.SBLSKEL0’) /* */ ISPEXEC SELECT PGM(BLSGLIBD) PARM(PANEL(BLSPPRIM)) + /* VOL ==> KEYWORD OPERAND TO SPECIFY WHERE IPCS VSAM */ NEWAPPL(BLSG) PASSLIB /* DUMP DIRECTORY IS TO RESIDE */ ISPEXEC LIBDEF ISPPLIB /* */ ISPEXEC LIBDEF ISPMLIB /* DDIRPRI ==> IPCS DUMP DIRECTORY PRIMARY ALLOCATION IN */ ISPEXEC LIBDEF ISPSLIB /* CYLINDERS (IF NEW DIRECTORY SPECIFIED) */ ISPEXEC LIBDEF ISPTLIB /* */ FREE F(IPCSDDIR,IPCSPRNT) /* DDIRSEC ==> IPCS DUMP DIRECTORY PRIMARY ALLOCATION IN */ EXIT /* CYLINDERS (IF NEW DIRECTORY SPECIFIED) */ END /* */ /* DEBUG ==> SHOW DIAGNOSTICS IF CLIST PROBLEMS */ IF &BATCH EQ &STR(BATCH) THEN + /* */ DO /**************************************************************/ IF &STR(&SYSISPF) EQ &STR(ACTIVE) THEN + DO CONTROL NOFLUSH NOLIST NOMSG WRITE #IPCSTJB BATCH CLIST MUST NOT BE EXECUTED UNDER ISPF FREE F(IPCSDDIR,IPCSPRNT) IF &DEBUG EQ &STR(DEBUG) THEN + EXIT CONTROL CONLIST SYMLIST LIST MSG END IF &NEW EQ &STR(NEW) THEN SET &DMPSTAT EQ &STR(NEW) WRITE #IPCSTJB CLIST BATCH EXECUTION ELSE SET &DMPSTAT EQ &STR(EXISTING) WRITE &SYSUID..DDIR.DUMP DUMP DIRECTORY STATUS IS &DMPSTAT WRITE DATASET &SYSUID..IPCSPRNT WILL BE CREATED DELETE ‘&SYSUID..IPCSPRNT’ IF &NEW EQ &STR(NEW) THEN + ALLOC F(IPCSPRNT) DA(‘&SYSUID..IPCSPRNT’) + DO NEW SPA(20 10) CYL REL REUSE %#IPCSDDR VOL(&VOL) DDIRPRI(&DDIRPRI) DDIRSEC(&DDIRSEC) &DEBUG IF &BATCH NE &STR(BATCH) THEN + END DO ELSE ALLOCATE F(IPCSDDIR) DSNAME(‘&SYSUID..DDIR.DUMP’) SHR REUSE IF &STR(&SYSISPF) EQ &STR(NOT ACTIVE) THEN + IF &LASTCC GT 0 THEN + DO DO WRITE #IPCSTJB NOBATCH CLIST MUST BE EXECUTED UNDER ISPF WRITE FREE F(IPCSDDIR,IPCSPRNT) WRITE &SYSUID..DUMP.DDIR NOT FOUND EXIT WRITE SPECIFY #IPCSTJB NEW END FREE F(IPCSPRNT WRITE #IPCSTJB CLIST ONLINE EXECUTION EXIT WRITE &SYSUID..DDIR.DUMP DUMP DIRECTORY STATUS IS &DMPSTAT END WRITE DATASET &SYSUID..IPCSPRNT WILL BE CREATED IPCS NOPARM IF &NEW EQ &STR(NEW) THEN + SETDEF ACTIVE LENGTH(200) FLAG(ERROR) + DO DISPLAY(MACHINE,REMARK,STORAGE,SYMBOL) + %#IPCSDDR VOL(&VOL) DDIRPRI(&DDIRPRI) DDIRSEC(&DDIRSEC) &DEBUG NOCONFIRM NOVERIFY END END

Figure 2: #IPCSDDR: Allocate and Initialize New IPCS VSAM CONTROL NOFLUSH NOLIST NOMSG IF &DEBUG EQ &STR(DEBUG) THEN CONTROL SYMLIST CONLIST MSG Dump Directory

PROC 0 VOL(UCB999) DDIRPRI(90) DDIRSEC(50) DEBUG DELETE ‘&SYSUID..DDIR.DUMP’ CLUSTER /**************************************************************/ /* */ DEFINE CLUSTER(NAME(‘&SYSUID..DDIR.DUMP’) + /* #IPCSDDR: CLIST TO DEFINE IPCS VSAM DUMP DIRECTORY */ VOLUME(&VOL) + /* (INVOKED BY THE #IPCSTJB CLIST) */ INDEXED + /* */ FREESPACE(10,10) + /* */ REUSE + /* VOL ==> KEYWORD OPERAND TO SPECIFY WHERE IPCS VSAM */ IMBED + /* DUMP DIRECTORY IS TO RESIDE */ REPLICATE + /* */ SHAREOPTIONS(1,3)) + /* DDIRPRI ==> IPCS DUMP DIRECTORY PRIMARY ALLOCATION IN */ INDEX(NAME(‘&SYSUID..DDIR.DUMP.INDEX’) + /* CYLINDERS (IF NEW DIRECTORY SPECIFIED) */ CYLINDERS(2,2) + /* */ CONTROLINTERVALSIZE(4096)) + /* DDIRSEC ==> IPCS DUMP DIRECTORY PRIMARY ALLOCATION IN */ DATA(NAME(‘&SYSUID..DDIR.DUMP.DATA’) + /* CYLINDERS (IF NEW DIRECTORY SPECIFIED) */ CYLINDERS(&DDIRPRI,&DDIRSEC) + /* */ KEYS(128,0) + /* DEBUG ==> SHOW DIAGNOSTICS IF CLIST PROBLEMS */ RECORDSIZE(384 3072)) /* */ /* */ /* APAR OY62871 - FIX CISIZ SPECIFIED FOR INDEX AND DATA */ IPCSDDIR ‘&SYSUID..DDIR.DUMP’ /* APAR OW13537 - SPECIFY CISIZE(4096) FOR INDEX ONLY */ /* (LET DATA TAKE VSAM DEFAULT) */ /* */ ALLOCATE (IPCSDDIR) DSNAME(‘&SYSUID..DDIR.DUMP’) SHR REUSE /**************************************************************/ t i m e, my defaults will suffice (unless you are processing DB2 allow you to free IPCS print dataset allocation in order to rename the SVCDUMPs or standalone dumps, in which case, you will need much IPCSPRNT dataset to your choosing (see Figure 3). space). Now that we have a tool for IPCS dump processing, we first have to The #IPCSTJB CLIST will invoke the #IPCSDDR CLIST only get the dump from the dump dataset to DASD. If the dump is in one of when the NEW parameter has been selected to create a new IPCS the system dump datasets (SYS1.DUMP?? where ?? is a number such VSAM dump directory (see Figure 2). The #IPCSDDR CLIST takes as 00 through 99) all you have to do is use IEBGENER to copy the care of this IPCS VSAM dump directory allocation using the same dump to your dump dataset. The SYS1.DUMP?? datasets must be key wo rd command names as #IPCSTJB. This is all pretty stra i g h t- a l l o c at e d LRECL of 4160, BLKSIZE of 4160 and RECFM F or FB, fo rward. The #IPCSTRM CLIST is only needed in a batch IPCS job to besides DSORG of . The pro blem inherent with using the

TECHNICAL SUPPORT OCTOBER 1996 SYSTEM STRATEGIES

Figure 3: #IPCSTRM: Issue IPCS END Command and Free Files Figure 4: Load Standalone Dump From Tape

(Only Needed for Batch Jobs) //SADLOAD EXEC PGM=IEBGENER, // REGION=5M PROC 0 //SYSPRINT DD SYSOUT=* /**************************************************************/ //SYSIN DD DUMMY /* */ //* /* #IPCSTRM: IPCS ALL-PURPOSE INITIALIZATION CLIST */ //SYSUT1 DD DSN=SADUMP, /* */ // UNIT=(CART,,DEFER), /* CLIST TO END BATCH IPCS SESSION IN ORDER TO */ // LABEL=(1,,,EXPDT=98000), /* FREE IPCS FILES. */ // VOL=SER=00666, /* */ // LRECL=4160, /**************************************************************/ // BLKSIZE=29120, CONTROL NOFLUSH NOLIST NOMSG // RECFM=FBS, END // DISP=OLD FREE F(IPCSDDIR,IPCSPRNT) //* //JOBCARD JOB //SYSUT2 DD DSN=YOUR.SADUMP.DASD.DSN, //* // UNIT=(SYSDA,2), //*************************************************// // LRECL=4160, //* BATCH INVOCATION OF #IPCSTJB *// // BLKSIZE=4160, //*************************************************// // RECFM=F, //* // SPACE=(CYL,(70,20),RLSE), //IPCSNEW EXEC PGM=IKJEFT01, // DISP=(,CATLG,DELETE) // DYNAMNBR=75,REGION=8M //SYSPROC DD DSN=MY.USER.EXEC,DISP=SHR //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * Figure 5: IPCS Option 1 BROWSE PROFILE PREFIX(DCTOM) DELETE ‘DCTOM.SVCDUMP.IOSPURGA’ ————————— IPCS - ENTRY PANEL ———————————- %#IPCSTJB NEW BATCH COMMAND ==> SETDEF NOTERMINAL PRINT SETDEF DSNAME(‘DCTOM.SVCDUMP.IOSPURGA’) CURRENT DEFAULTS: STATUS FAILDATA REGISTERS SOURCE ==> DSNAME(‘DCTOM.SVCDUMP.IEC999I’) SUMMARY FORMAT ALL ADDRESS SPACE ==> SETDEF TERMINAL NOPRINT %#IPCSTRM OVERRIDE DEFAULTS: RENAME IPCSPRNT IOSPURGA SOURCE ==> DSNAME(‘DCTOM.SVCDUMP.IEC999I’) /* ADDRESS SPACE ==> PASSWORD ==>

POINTER: SYS1.DUMP?? datasets is managing the resource. An installation must ADDRESS ==> 00000010.% have automated procedures in place to dump and clear the datasets REMARK ==> when they become filled. Another alternative is to use the new MVS/ESA Version 5 dynamic dump datasets. Since MVS/ESA Version and let the data component take a VSAM default which, in this case, is 5 offers much in the way of dynamic system variables, all you have to a fairly large control interval size of 18432 for 3390 DASD. Please do to utilize dynamic dumps is add the following commands to your refer to IBM APARs OY62871 and OW13537 for more information. If COMMND?? SYS1.PARMLIB member (wh e re ?? is a command you want to speed up IPCS processing, I would recommend experi- s u ffix value): menting with the VSAM bufferspace (BUFSP) parameter on the IDCAMS DEFINE CLUSTER statement since TSO does not support COM=’DD NAME=SYSTEM.DUMP.&SYSNAME..D&DATE..&JOBNAME..S&SEQ. ‘ COM=’DD ADD,SMS=(DATA=DEFAULT,MGMT=DUMPSYS,STOR=DUMPSYS)’ the AMP parameter. COM=’DD ALLOC=ACTIVE At the end of the #IPCSTJB CLIST are certain IPCS SETDEF options I prefer to use.The LENGTH(200) tells IPCS that any LIST In the above situation, there are SMS classes that will put these dumps command should display 200 bytes unless a specific length is supplied. d i re c t ly to ML2 as soon as the volumes defined in the DUMPSYS The FLAG(ERROR) tells IPCS to give me all messages except infor- s t o rage group fill up to a certain threshold. If you want DFHSM to mational and warning messages. Non-error messages tend to the move these dumped datasets to ML2, then make sure your dump fir st-time IPCS user scram b le down many paths (most wron g ) , tra ck i n g dataset name is not SYS1. When using automatic SVCDUMPs, the d own these messages. I activate the MACHINE key wo rd of the command to display dump titles (D D,T) should have the AUTODSN DI S P L A Y SETDEF keywo r d because I want to see the AS I D , STO R AG E keyword added. For example: KEY and ABSOLUTE ADDRESS OF AN AREA when listing storage. I also turn on the STORAGE Option to make the storage look like D D,T,AUTODSN=5 a printed dump. The IPCS SETDEF defaults for these are NOMACH I N E and NOSTORAGE. I always turn on NOVERIFY since I don’t need will display the last five automatically allocated dump datasets (unless confirmation messages for subsequent commands. I would also suggest th e y have been migrated by DFHSM). The IPCS (and TSO) SYSDSCAN setting NOCONFIRM to avoid the following irritating IPCS messages: will not show dynamic dumps! If you are loading a standalone dump to DASD, it is a little trickier. BLS18168D PROCEED WITH COPY ENTER Y TO CONTINUE N TO TERMINATE The little-documented BLKSIZE for the standalone dump tape is BLS18160D MAY SUMMARY DATA BE USED BY DUMP ACCESS ENTER Y TO USE 29120 and the RECFM is FBS (see Figure 4 for sample JCL to load a N TO BYPASS standalone dump to DASD from tape). Now that your dump has been copied to DASD, it’s time to use the Specifying NOCONFIRM will default the answers of these prompts to #IPCSTJB initialization CLIST.1 After subtask completion, all non- Y.You want the summary data closest to the problem at hand.There are shared subpools are freed. Some batch LSR control blocks are built in ne w GLOBAL/LOCAL values in IPCS. GLOBAL will set default val u e s non-shared protected storage which leaves batch LSR out of our per- for the IPCS VSAM dump directory globally and LOCAL will set formance analysis. The #IPCSTJB CLIST has been updated to use a de f ault values for a given dump. My global values equal my local val u e s CISIZE of 4096 for the IPCS VSAM dump directory index component because I have yet to see a reason to set different values.

1. Before starting, I asked IBM why it wasn’t possible to use IBM local shared resources (LSR) to greatly speed up IPCS VSAM processing.The answer:Batch LSR is not supported for IPCS since TSO uses a single TCB for each call. SYSTEM STRATEGIES

Figure 6: IPCS Option 3 Utility DAE Selection 5 Figure 7: IPCS VSAM Dump Directory Reorganization

———————————————- DAE DISPLAY ——————————————— //* //*************************************************************** ENTER AN ACTION CODE NEXT TO AN ENTRY. //* PERFORM TEMPORARY EXPORT OF CLUSTER BEFORE REORGANIZATION * ENTER / NEXT TO AN ENTRY TO CHOOSE FROM A LIST OF ACTION CODES. //*************************************************************** //* DATASET: ‘DCTOM.DAE’ //EXPORT EXEC PGM=IDCAMS, DUMPS SINCE LAST DAE DISPLAY: 0 TOTAL DUMPS SUPPRESSED:14557 // REGION=5M EVENTS SINCE LAST DAE DISPLAY: 0 SUPPRESSION RATE: 99% //AMSDUMP DD SYSOUT=* //SYSPRINT DD SYSOUT=* A LAST LAST TOTAL DATE OF SYMPTOM STRING INFORMATION: //EXPOUT DD DSN=&&EXPOR T, C DATE SYSTEM EVENTS DUMP ABEND REASON MODULE CSECT // DISP=(,PASS,DELETE), V 12/01/95 PT31 15 04/06/93 S00C4 00000011 NUCLEUS IOSPURGB // UNIT=(cart,,DEFER), 11/27/95 PT31 144 08/21/95 S0002 00000030 IFG0199B #UNKNOWN // LABEL=(1,SL) 11/27/95 PT31 12 10/05/95 S004E 00C90202 DSNIDM DSNIMS1W //SYSIN DD * EXPORT - ——————————————— DAE ENTRY DETAILS ——————- ROW 1 TO 9 DCTOM.DDIR.DUMP - OUTFILE(EXPOUT) - TOTAL EVENTS: 15 : SVC DUMP TEMPORARY SYMPTOM STRING TRUNCATED /* //* DATE TIME SYSTEM NAME //*************************************************************** LAST (MOST RECENT) EVENT: 12/01/95 18:59:55 PT31 //* DELETE EXISTING CLUSTER AFTER TEMPORARY EXPORT. * DUMP TAKEN: 04/06/93 23:58:31 PTIA //*************************************************************** //* SYMPTOMS USED FOR DUMP SUPPRESSION: //DELETE EXEC PGM=IDCAMS,COND=(0,NE), MVS RETAIN // REGION=5M KEY KEY SYMPTOM DATA EXPLANATION //AMSDUMP DD SYSOUT=* MOD/ RIDS/ NUCLEUS LOAD MODULE NAME //SYSPRINT DD SYSOUT=* CSECT/ RIDS/ IOSPURGB ASSEMBLY MODULE CSECT NAME //SYSIN DD * PIDS/ PIDS/ 5752SC1C3 PRODUCT/COMPONENT IDENTIFIER DELETE DCTOM.DDIR.DUMP CLUSTER AB/S AB/S 00C4 ABEND CODE-SYSTEM /* REXN/ RIDS/ IOSPURGA RECOVERY ROUTINE CSECT NAME //* FI/ VALU/H 41B000101F3BD500300D98F3 FAILING INSTRUCTION AREA //*************************************************************** REGS/ REGS/ 0E022 REG/PSW DIFFERENCE //* IMPORT CLUSTER BACK TO DASD TO REORGANIZE IT. * REGS/ REGS/ 09258 REG/PSW DIFFERENCE //*************************************************************** HRC1/ PRCS/ 00000011 ABEND REASON CODE //* ***************************** BOTTOM OF DATA ***************************** //IMPORT EXEC PGM=IDCAMS,COND=(0,NE), // REGION=5M //AMSDUMP DD SYSOUT=* //SYSPRINT DD SYSOUT=* Each IPCS command creates symbol equates in the dump directory. //IMPDSN DD DSN=&&EXPOR T, // DISP=(OLD,DELETE,DELETE) Some commands create hundreds of these entries. All of this activity //SYSIN DD * IMPORT INFILE(IMPDSN) - causes heavy control area/control interval activity in the IPCS OUTDATASET(DCTOM.DDIR.DUMP) VSAM dump directory. That’s why I always recommend doing most /* of your IPCS processing in batc h and only then using the ISPF interface. You will have already suffered the performance penalty for the VSAM split activity and the VSAM file will be “settled in” as such. stack pointers appropriately. Letters H and L will allow you to create The IPCS Primary Option Menu looks much the same as in previous 31-bit and 24-bit stack pointers respectively. MVS/ESA releases with the exception of Options 4 and 6. For those The IPCS Option 2 menu lists the bulk of the online dialog functions active IPCS users in MVS/ESA Version 4 you may find it irritating that you can use with IPCS. Selection 1 of SYMPTOMS will execute the the IPCS command Option 4 is now Option 6. Later, you will find VERBEXIT SYMPTOMS command, which I sometimes find useful. Option 4 INVENTORY a useful tool to prevent excessive typing. If Selection 2 will perform a STATUS SYSTEM CONTENTION CPU you use my #IPCSTJB CLIST, you may never have to go to IPCS FAILDATA REGS, which I like a lot, except for the CONTENTION Option 0, which is used to set dump processing information. If you which takes a long time to be processed. I would prefer the failure data decide to process a dump and enter information in the IPCS Option 0 and registers (FAILDATA and REGS) be reported along with the SYS- screen, make sure you initiate dump processing by using a dialog TEM information. Be careful not to blindly enter commands that may Option 1 list or an IPCS command and IPCS will load the dump into take a lot of time and won’t solve your problem quickly. Selection 3 the IPCS VSAM dump directory. WORKSHEET will invo ke a STATUS SYSTEM WO R K S H E E T IPCS Option 1 is the BROWSE panel. You will find this full-screen whi c h is critical to solving prob lems involving global system analys i s browse facility very helpful in working backward in storage for eye- (RSM dumps and standalone dumps in particular). You will see key catchers or running control block addresses. See Figure 5. The system indicators side-by-side for analysis. Selection 4 is the SUM- ADDRESS field can be an absolute address, such as 0000010, which MARY of ADDRESS SPACE and STARTED tasks and invokes the will list storage at location 10. If I append a percent sign (%) to the end SUMMARY KEYFIELD which is one of my favorite IPCS commands of the address 00000010.%, this means use this value as a 24-bit to use to see at a glance the important ASCB/TCB/RB/CDE fields address pointer and list that storage area. If I use a question mark(?), of in t e r est. Selection 5 invok es the ANA L YZE CONTENTION IPCS this simply means use a 31-bit address. If I have a full-screen Option 1 co m m a n d , wh i ch may run longer than most IPCS commands due to display, I can place a % or ? at the end of an address and simply go all of the symbol equates it must create. Selection 6 is COMPONENT there. It is a very handy facility! IPCS Option 1 has various commands which displays a panel of all the different component analysis and trace that will allow you to manipulate the storage entries in this stack. If I information you can do. There is an overwhelming temptation to just enter the letter R over the address portion of the stack entry, IPCS will start doing component traces. Resist the urge, and read about the com- create another duplicate stack entry. I can also use the letter E to edit a ponent trace in the IBM manual, MVS/ESA Diagnosis: Using Dumps st a c k entry to cha n g e the att ri b utes from AREA to STRUC T U R E ( C V T ) and Traces (LY28-1845) before running these facilities. using my 00000010.% previous example. Selection 7 will show you a trace formatting panel which covers Other IPCS Option 1 stack commands include F, which will use the CT R A CE (component tra c e ) ,G T F T R AC E ,M T R ACE (in storage syslog) , IPCS CBFORMAT command against this pointer (which must be an SYSTRACE (system trace which used to be VERBEXIT TRACE),and IPCS structure). Using F will allow you to format the control block MERGE (merge multiple traces). I would recommend using the IPCS with one letter. Using letters I and D will allow you to insert and delete SYSTEM TRACE (SYSTRACE) Option off of the Selection 7 panel SYSTEM STRATEGIES

(actually it is Option 2 then 7 then 4). The IPCS COMMANDS: AUTHOR’S FAVO R I T E S (IEAVSDT ) for real storage manager (RSM) S Y S T R ACE command will allow you to The IPCS SELECT CURRENT ERROR failures or standalone dumps. IPCS STATUS specify special criteria to the system to get command will display the ASID, JOBNAME, WORKSHEET will provide you critical data in only the trace records you need. A new facili- ASCBADDR and SELECTION CRITERIA the logical config u r ation commun i c a tions area ty in MVS/ESA Version 5 is the TIME format. for the app ro p ri a te addr ess spaces. An exa m p l e (LCCA) to determine if a processor is spinning N ow LOCAL/GMT timestamps look like of SELECT CURRENT ERROR would be: (IHR1 offset X’208’), dispatcher flags are at 14:32:52.977663 instead of a hex timestamp offset X’21C’ and automatic CPU recovery like AC24EEC-12787FE05. If you enter the ASID JOBNAME AS C B A D D R SELECTION CRITERIA [ACR] is at offset X’2B4’. The PSA fields of IPCS command yourself, it would be SYS- ———— —— — — — — — ———————— ————————————————— note are the current ASCB/TCB, supervisor 0001 *MASTER* 00FD5180 CURRENT TRACE TIME(LOCAL). 00B2 TSOUSER 00F4FA00 ERROR bits (SUPER at X’228’ locks held CLHS at Of the items in the IPCS Option 3 Utility offset X’2F8’) and functional recovery routine Me nu , I only use Selection 5 (DAE proc e s s i n g ) . The ERROR indicator is any (FRR) stack areas at offset X’380’. I would This online facility allows you to look at ASCB/ASXB/TCB error indicator that indi- recommend you get comfortable with looking the dump analysis and elimination (DA E ) cates the address space is in error. It’s handy at these areas in a non-critical SVCDUMP d ataset and (optionally) ch a n ge entries in it to issue the IPCS CBSTAT command to get this other than a RSM problem or a standalone (see Fi g u re 6). The DAE info ation com- address space (ASCB) STATUS) as follows: dump to get a feel for the data areas. bined with in-storage LOGREC i n fo rm at i o n The IPCS WHERE command will take an (VERBEXIT LOGDATA) will provide just ISSUE CBSTAT XXXXXXXX. STRUCTURE(ASCB) add r ess and inspect the MVS/ESA link pack the right amount of diagnostic data to solve (where XXXXXXXX. is the ASCBADDR) di re c t o r y entries (LPDE) and contents direc t o r y most pro bl e m s . en t r ies (for non-LPA modules) to tell you wha t IPCS Option 4 is the new INVENTORY The CBSTAT information is a summarized load module is at this addr ess. It would be a option. It will allow you to delete dump version of the VERBEXIT SRMDATA com- IBM option to have a special overlay d i re ctory information with or without deleting mand which I will cover later.You can find s t ru c t u re th a t would tell you the CSECT the original dump dataset. I use this delete out if a address space is swapped in or out and (SMP/E MOD entry) of the storage. You have to dump (DD) option the most, although some the reasons why such as input terminal ta k e the load module addr ess and fig u r e out the of the other things you can do are: (user hasn’t pressed enter) or detected wait CSECT offset to determine the PTF level of the (ENQ or DFHSM recall for example). You mo d u l e . If you do a IPCS WHERE command ■ BR - activates the BROWSE option will also get information on address space sta- for a NUCLEUS module, you will get the prop - of the IPCS dialog for that source; tus such as if the address space was forced out er inform a tion for a IBMLINK search since the ■ DD - deletes descriptions of the source (S0A22 abend). system nuc leus is linkedited with the scatt e r - and, optionally, the source dataset; load att ri bu t e . ACTIVE STOR A GE is not sup- ■ DT - deletes translation results for po r ted for this command (whi c h could be the source; IPCS stands for another IBM enhancement). ■ LA - lists dump description with The IPCS SUMMARY JOBSUMMARY storage attributes; Interactive Problem will repo r t on all system jobnames and comple- ■ LB - lists dump description with Control System, ti o n codes at a single glance. Remember you record locations; may be dealing with more than one non-zero ■ LD - lists dump description with although most people completion code. IPCS will internally invoke dumped storage summary; (myself included) the IPCS CBSTAT facility for the addr ess space ■ LT - lists dump description with which will give you information on whether translation results; use it just for the JOBNAME is in a long wait, swapped out ■ LZ - lists dump description with looking at unformatted or if another condition exists. The COMP field storage att ri bu t e s , rec o r d locati o n s , of the SUMMARY JOBSUMMARY is the dumped storage summary and storage dumps. most important field in this listing. For a translation results; and COMP of 0405C000 the first byte indicates ■ SD - established the source as both The IPCS STATUS SYSTEM command that a STEP abend has been requested. If it the local and global IPCS default. will provide you with pertinent information was a X’80’then a dump has been requested. such as when the dump was taken. The field to To see the rest of the indicators for the COMP IPCS Option 5 SUBMIT allows you to sub- note is the PROGRAM REQU E S T I N G completion code, look at field TCPCMP in the mit IPCS batch jobs while under IPCS. My DUMP.The most common entries would be SYS1.MACLIB macro IKJTCB. It is impor- #IPCSTJB CLIST will not support this option SVCDUMP for a synch ronous dump (the tant to know the exact details of how the and I don’t know why you would want to do c u rrent TCB/RP are in the failing task for the abend occur red.This additional information such a thing. It is important to diagnose one dump) or IEAVTSDT for a scheduled dump may help you solve the problem quicker. problem at a time, and this option does not (system issued SDUMP or abend, and you The IPCS SUMMARY KEYFIELD com- allow you to do that! must find failing TCB/RB in the dump). mand will show the key ASCB fields (and cor- IPCS Option 6 is the list of all the IPCS I usually issue the IPCS STATUS FAILDATA responding IPCS CBSTAT information from commands you can use. IPCS Option 6 is REGISTERS command to obtain the PSW SRM) that will let you see at a glance exactly also my favo ri t e, since I’ve learned all of and the general/access/control REGISTERS. what has happened. For the program request these commands and usually know a c t ly The IPCS STATUS FAILDATA REGISTERS blocks (PRBs) listed under the task control wh at I want to do. If you spend a few min- will do an implied IPCS WHERE command blocks (TCBs) remember the TCBs are from utes eve ry other day learning my favo ri t e and tell you (if possible) the storage the oldest to newest but the PRBs are fr om newes t IPCS commands (wh i ch I will cover lat e r ) , PSW points to which can be very handy. The to oldest in the IPCS SUMMARY KEYFIELD. in no time you will know enough to solve IPCS STATUS WORKSHEET command is In the repo r t from the IPCS SUMMARY FOR- most pro bl e m s . most important in scheduled SVCDUMPs MAT the TCBs are ol d e s t / n e west and the PRBs SYSTEM STRATEGIES e also oldest/newest but you are presented with a great deal of infor- mation to absorb, and most times this will serve to confuse the prob- lem solver.When you just need to take a quick look at some storage, nothing beats the IPCS LIST command.The LIST defaults are estab- lished in the IPCS SETDEF command (in our case listing 200 bytes). The IPCS list command output has a field called KEY(XY) where X is the storage protect key and Y is another indicator. If this KEY field is KEY(FF) then the storage key is not known. Refer to SYS1.MACLIB member BLSRDRPX for more details on these storage key/reference NaSPA board member Tom Bryant has more than 18 years of experience bit settings. The IPCS LIST command also uses the 24-bit indicator in data processing, with 15 of those years as an MVS/XA/ESA systems (%) and the 31-bit indicator (?) as a pointer to storage listed. I have programmer. found it very useful to use the LIST xxxxxxxx. STRUCTURE com- mand (where xxxxxxxx. is the addr ess) because the STRUCTURE key- ©1996 Technical Enterprises, Inc. Reprinted with permission of wor d will provide hex offs e t s from your address which can be useful for Technical Support ma gaz i n e . For subscription inform at i o n , em a i l getting module offset information. [email protected] or call 414-768-8000, Ext. 116. I find myself issuing the SYSTRACE TIME(LOCAL) command to get the system trace table information (this was formerly executed as VERBEXIT TRACE). I usually perform a find for ‘ *’to see any event t h at was marked as an ex c eption by IPCS. The good info rm ation is u s u a l ly toward the back of the trace table. Make sure to back up a few entries and see what happened immediately before (let’s say) your SVC abend (indicator would be *SVC). If you had a control block chain of more than a few entries and suspected a broken chain entry, how would you solve this on a timely basis? The IPCS RUNCHAIN command will trace through control blocks that have pointers to other control blocks for a single chain. If you want the system to go through control block chains at many levels, then use the IPCS SCAN com- mand (and prepare for a long wait). If I wanted to run through the MVS/ESA subsystem control blocks and create IPCS equate entries for SSCVT001, SSCVT002, etc., I would issue this command:

RUNCHAIN ADDRESS(10.%+128?+18?) NAME(SSCVT) LINK(4) + LENGTH(32) EXEC((LIST X)) CHARACTER

The address field takes the value (or generated values) from the ADDRESS field and creates a control block called SSCVTxxx (where xxx is a generated number). Our forward pointer is at X’4’ which is indicated by the LINK field.We know our SSCVT field entry is 32 bytes long, hence the LENGTH(32) field. For each time we invoke the control block equate routine, list the current SSCVTxxx created in character from the EXEC((LIST X)) CHARACTER. This command can save you hours of time going through control block chains. Try a variation of this command to go through the ASCB or TCB chains. The IPCS LPAMAP and IPCS VERBEXIT NUCMAP commands will present you information on the MVS/ESA link pack area and the nucleus respectively. I prefer to invoke both of these commands using EPA (entry point address) since I am more address-conscious in the dump than module-name-conscious. The last IPCS command I will examine is the VERBEXIT S R M DATA command. This output will present detailed SRM user c o n t rol bl o ck (OUCB) info rm ation such as the existence of a PRIV- ILEGED PRO G R A M , the SWAP OUT reason for a DETECTED WA I T, T E R M I NAL INPUT or other, wh e re the user has been swapped (such as auxiliary storage). A dd i t i o n a l ly, for MVS/ESA Ve rsion 5 SRM goal mode env i ronments you will see the SERV I C E CLASS and WO R K L OAD info rm ation. Since this is a large amount of output, I perform a FIND command for ASID in column 2 and con- tinue the finds while I look at the data. See macro IRAOUCB in SYS1.MODGEN for more information on the SRM OUCB. Figure 7 is the JCL I use to peri o d i c a l ly re o rga n i ze the IPCS VSAM dump d i re c t o ry wh i ch will become fragmented over time. I hope this arti c le has given you a feel for IPCS in an MVS/ESA Ver sion 5 envi ro n m e n t , and provided shortcuts you can use to make you r pro b lem solving a brief encounter instead of a lifetime commitment. ts

TECHNICAL SUPPORT OCTOBER 1996