How to take a Standalone dump (SADMP) of a z/OS system running under z/VM This is an example of how to create a standalone dump of a z/OS system using DASD. This procedure can be useful in the event that a z/OS IPL hangs and the source of the problem cannot be determined from the console log; in our case JES2 JCL resolved a system symbol to point to a non-existent proclib dataset so JES2 couldn’t start tasks and couldn’t tell us why Before a standalone dump can be taken, console addresses must be determined, standalone IPLtext generated to a DASD volume, and a dump output DASD dataset formatted. The IPLtext program volume must be accessible by the target z/OS image and cannot be a z/OS IPL volume. The dump output dataset must also be accessible and must have enough space to hold whatever is dumped. This example uses 1111 cylinders of a 3390 volume for 830 MBytes which was sufficient for a basic z/OS system dump. NOTE: The TSO ISMF utility can be used to show a list of volumes and available space. First determine the console addresses, generate the standalone dump (SADMP) IPLtext and format the dump output dataset: The z/OS system used in this example has a VM user name of ATSZOS1. To determine candidate console addresses, logon to VM as the z/OS image user. If z/OS is running, use the PA1 key to get into CP mode. Issue the command: cp q graph CP responds with graphic terminal data like the following: 00: GRAF 01A0 NOT DIALED SUBCHANNEL = 0019 00: GRAF 01A1 NOT DIALED SUBCHANNEL = 001A 00: GRAF 01A3 NOT DIALED SUBCHANNEL = 001B 00: GRAF 01A4 NOT DIALED SUBCHANNEL = 001C From this output console addresses 01A0, 01A1, 01A3 AND 01A4 will be specified as SADMP consoles when generating the IPLtext. The SADMP IPLTEXT is generated with the utility program, AMDSAOSG, and the dump output dataset can be formatted with the AMDSADDD REXX exec or the IPCS SADMP dump data set utility. We will create the SADMP IPLTEXT on volume ZO2RS2, and allocate & format the dump output dataset to be 1111 cylinders on an empty 3390 volume, DMTH01, using AMDSADDD. The device unit addresses are needed. From a z/OS console, display the device Units for the standalone dump IPL program volume, ZO2RS2, and the dump output dataset volume, DMTH01. D U,VOL=ZO2RS2 IEE457I 18.33.46 UNIT STATUS 966 UNIT TYPE STATUS VOLSER C336 3390 A ZO2RS2 VOLSTATE PRIV/RSDNT D U,VOL=DMTH01 IEE457I 18.13.59 UNIT STATUS 859 UNIT TYPE STATUS VOLSER C51D 3390 O DMTH01 VOLSTATE PRIV/RSDNT © Copyright IBM Corporation, 2008 1 Locate the program, AMDSAOSG, and the REXX exec, AMDSADDD. You can check if these members are in LNKLST or the TSO logon proc by issuing the TSO commands: ISRDDN;LINKLIST;M AMDSAOSG ISRDDN;M AMDSADDD If the members are not found, use SMP/E to locate the target libraries. Generate the standalone dump (SADMP) IPL program; example: //SADMPGEN JOB (0),'Woe S. Me',MSGLEVEL=(1,1),REGION=6072K, // CLASS=B,COND=(8,LT),MSGCLASS=O,TIME=1440,USER=&SYSUID /*JOBPARM LINES=9999 //* //* Delete any existing old SADUMP IPL pgm dataset from ZO2RS2 //* //SADMPDEL EXEC PGM=IEHPROGM //SYSPRINT DD SYSOUT=* //DD1 DD UNIT=SYSDA,VOL=SER=ZO2RS2,DISP=OLD //SYSIN DD * SCRATCH DSNAME=SYS1.PAGEDUMP.VZO2RS2,PURGE, + VOL=3390=ZO2RS2 /* //* //* Create SADUMP IPL program //* //SADMPGN EXEC PGM=AMDSAOSG //*STEPLIB DD DISP=SHR,DSN= If needed //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.MODGEN,DISP=SHR //GENPRINT DD SYSOUT=* //GENPARMS DD * AMDSADMP IPL=D3390,VOLSER=ZO2RS2, X ULABEL=NOPURGE, X CONSOLE=((1A0,3278),(1A1,3278),(1A3,3278),(1A4,3278)), X SYSUT=SYSDA, X OUTPUT=(DC51D,SYS1.SADMP), X MSG=ALL, X MINASID=ALL, X REUSEDS=ALWAYS, X DDSPROMPT=NO END /* Note: specify console (graphic device) addresses that are defined in VM for the z/OS user other than the z/OS master console. If IPL text already exists on the SADMP IPL volume, reply U to the overlay confirmation message when the SADMP gen job runs. 2 © Copyright IBM Corporation, 2008 *nnnn ICK21836D IPL TEXT EXISTS ON ZO2RS2. REPLY U TO OVERLAY, ELSE T Allocate the SADMP output datset: //SADMPALO JOB (0),'Woe S. Me',MSGLEVEL=(1,1),REGION=6072K, // CLASS=B,COND=(4,LT),MSGCLASS=O,TIME=1440,USER=&SYSUID /*JOBPARM LINES=9999 //* //* Delete any existing standalone SADMP output dataset //* //DELSADMP EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //DD1 DD VOL=SER=DMTH01,DSN=SYS1.SADMP, // UNIT=SYSDA,SPACE=(TRK,0),DISP=(MOD,DELETE) //* //* Create standalone dump output dataset //* //BLDSADMP EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSEXEC DD DISP=SHR,DSN=SYS1.COMBINED.ISPFCLIB //SYSTSIN DD * EX 'SYS1.COMBINED.ISPFCLIB(AMDSADDD)' + 'DEFINE DMTH01(SYS1.SADMP) 3390 1111 N' /* *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~* To perform a standalone dump: From the VM control userid issue this command, Note: the VM control userid is the VM userid from which you IPL z/OS cp stop The system may respond with READY depending on the CP state. From the VM control userid issue this command, cp store status The system will respond with Store complete. From the VM control userid issue this command to IPL from the standalone dump program volume that was created earlier, cp i C336 The system may respond with READY. From the VM control userid issue this command, cp set pswtrans all cp d psw or cp d pswg all © Copyright IBM Corporation, 2008 3 The system should respond with ATSZOS1 : PSW = 070A0000 003E0000 The x'003E0000' indicates SAD is waiting for a terminal. On another 3270 terminal at the VM logon screen dial the userid of the system running z/OS SAD. For example, issue the command, DIAL ATSZOS1 The system should respond with one of the console addresses specified in the AMDSADMP gen macro. DIALED TO ATSZOS1 01A0 Press the enter key to make SAD recognize the terminal. The system will respond with AMD083I AMDSADMP: STAND-ALONE DUMP INITIALIZED. IPLDEV: C336 LOADP: AMD001A SPECIFY OUTPUT DEVICE ADDRESS (1) Respond with the Enter key AMD094I C51D DMTH01 SYS1.SADMP IS VALID, HOWEVER, IT MAY ALREADY CONTAIN DATA FROM A PREVIOUS DUMP. THE INSTALLATION CHOSE TO ALWAYS REUSE THE DUMP DATA SET. AMD101I OUTPUT DEVICE: C51D DMTH01 SYS1.SADMP SENSE ID DATA: FF 3990 E9 3390 0A BLOCKSIZE: 24,960 AMD011A TITLE= Enter the SADMP Title, e.g. HFD$ IPL Standalone dump AMD005I DUMPING AMD005I DUMPING AMD005I DUMPING AMD005I DUMPING AMD005I DUMPING AMD005I DUMPING AMD005I DUMPING AMD108I DUMPING COMPLETED. AMD108I DUMPING COMPLETED. AMD108I DUMPING COMPLETED. AMD029D REPLY W OF OF OF OF OF OF OF OF REAL STORAGE NOW IN PROGRESS. PAGE FRAME TABLE COMPLETED. REAL STORAGE FOR MINIMAL ASIDS REAL STORAGE FOR SUMMARY ASIDS REAL STORAGE FOR SWAPPED-IN ASIDS IN-USE REAL STORAGE COMPLETED. REAL STORAGE SUSPENDED. AUXILIARY STORAGE FOR MINIMAL COMPLETED. COMPLETED. COMPLETED. ASIDS OF AUXILIARY STORAGE FOR SUMMARY ASIDS OF AUXILIARY STORAGE FOR SWAPPED-IN ASIDS TO WAIT AFTER NEXT FULL SCREEN, ELSE REPLY N; REPLY= Enter, N The system will respond: AMD108I DUMPING OF AUXILIARY STORAGE FOR SWAPPED-OUT ASIDS COMPLETED. AMD056I DUMPING OF AUXILIARY STORAGE COMPLETED. AMD005I DUMPING OF REAL STORAGE RESUMED. 4 © Copyright IBM Corporation, 2008 AMD095I REAL DUMP 4% COMPLETED. TOTAL MEGABYTES DUMPED: AMD005I DUMPING OF AVAILABLE REAL STORAGE COMPLETED. AMD005I DUMPING OF REAL STORAGE COMPLETED. AMD104I DEVICE VOLUME USED DATA SET NAME 1 C51D DMTH01 44% SYS1.SADMP 90 On the VM control userid watch for the following message which indicates the standalone dump is complete. 01: HCPGSP2630I The virtual machine is placed in CP mode due to a SIGP stop and store status from CPU 00. 00: HCPGIR450W CP entered; disabled wait PSW 00020000 00000000 00000000 00410000 The dump is complete. Log the userid running OS/390 SAD off the VM system with the following command. cp logoff The second VM session will also terminate. Terse the dump output: //SADMPTRS JOB (0),'Woe S. Me',CLASS=B,COND=(4,LT), // MSGCLASS=O,MSGLEVEL=(1,1),REGION=6072K, // TIME=1440,NOTIFY=&SYSUID /*JOBPARM LINES=9999 //CLEANOLD EXEC PGM=IEFBR14 //OUTFILE DD DISP=(MOD,DELETE),DSN=SYS1.SADMP.TERSED, // DCB=(DSORG=PS,RECFM=FB,LRECL=80),UNIT=SYSALLDA,SPACE=(TRK,(0)) //UNPAKPF1 EXEC PGM=AMATERSE,PARM='PACK' //SYSPRINT DD SYSOUT=*,DCB=(LRECL=133,BLKSIZE=12901,RECFM=FBA) //SYSUT1 DD DISP=SHR,DSN=SYS1.SADMP,UNIT=3390,VOL=SER=DMTH01 //SYSUT2 DD DISP=(NEW,CATLG),DSN=SYS1.SADMP.TERSED, // DCB=(DSORG=PS,RECFM=FB,LRECL=1024,BLKSIZE=10240), // UNIT=SYSALLDA,VOL=SER=HSL735,SPACE=(TRK,(900,900),RLSE) Send the dump to support level 2: Send your documentation using the PUTDOC tool available at techsupport.services.ibm.com/server/nav/zSeries/putdoc/putdoc.html OR 1.Compress your dataset using AMATERSE. 2.FTP to testcase.boulder.ibm.com (or 207.25.253.31) USERID:anonymous and PASSWORD:your complete e-mail address. 3.Specify BINary mode for transfer of the dataset. 4.PUT the file in the toibm/mvs directory using your PMR number as part of the name: ppppp.bbb.ccc.short.desc?.TRS sample: 12345.999.000.dumpa.trs (pmr.branch.country - U.S.=000) When the transfer is complete, ensure the PMR is updated with: - The file name and original MVS Dataset attributes, including LRECL, RECFM, BLKSIZE, and Primary and Secondary space. © Copyright IBM Corporation, 2008 5 References: GA22-7589-12, z/OS MVS Diagnosis: Tools and Service Aids SC24-6081-05, z/VM V5R3.0 CP Commands and Utilities Reference http://dtsc.dfw.ibm.com/MVSDS/'HTTPD2.DSN01.PUBLIC.HTML(HBMETSAD)' Art Eisenhour IBM Americas Advanced Technical Support arteisen@us.ibm.com 6 © Copyright IBM Corporation, 2008