MVS Diagnosis: Tools and Service Aids

Transcript

1 z/OS Version 2 Release 3 MVS Diagnosis: Tools and Service Aids IBM GA32-0905-30

2 Note Before using this information and the product it supports, read the information in “Notices” on page 663 . This edition applies to Version 2 Release 3 of z/OS (5650-ZOS) and to all subsequent releases and modifications until otherwise indicated in new editions. Last updated: 2019-02-16 © Copyright International Business Machines Corporation 1988, 2017. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

3 Contents List of Figures... xiii List of Tables...xix About this information... xxi Who should use this information... xxi z/OS information...xxi How to send your comments to IBM...xxiii If you have a technical problem... xxiii Summary of changes... xxiv Summary of changes V2R3... xxiv Summary of changes for z/OS MVS Diagnosis: Tools and Service Aids for Version 2 Release 2 (V2R2) as updated September 2016...xxv General content changes for z/OS MVS Diagnosis: Tools and Service Aids... xxv Summary of changes for z/OS MVS Diagnosis: Tools and Service Aids for Version 2 Release 2 (V2R2) as updated December 2015... xxv General content changes for z/OS MVS Diagnosis: Tools and Service Aids... xxv Summary of changes V2R2... xxvi Summary of changes for z/OS Version 2 Release 1 (V2R1) as updated February 2015...xxvi Summary of changes for z/OS Version 2 Release 1 (V2R1) as updated March 2014... xxvi z/OS Version 2 Release 1 summary of changes...xxvii Chapter 1. Selecting tools and service aids...1 How do I know which tool or service aid to select?...1 What tools and service aids are available?...2 Chapter 2. SVC dump...7 Planning data set management for SVC dumps...8 Using automatically allocated dump data sets...8 Using pre-allocated dump data sets...12 Choosing SVC dump data sets... 13 Finding automatically allocated dump data sets... 14 Communication from the system...14 Specifying SYS1.DUMPxx data sets... 15 Controlling SYS1.DUMPxx data sets... 15 Obtaining an SVC dump... 16 Issuing a macro for SVC dump...17 Operator activities...17 Making a dump data set available... 20 Determining current SVC dump options and status...20 Finding SVC dumps... 20 Printing, viewing, copying, and clearing a pre-allocated or SYS1.DUMPxx data set... 22 Contents of SVC dumps... 23 Customizing SVC dump contents...23 Tailoring SVC dumps... 33 Analyzing summary SVC dumps...33 SUMDUMP output for SVC-Entry SDUMPX... 34 SUMDUMP output for branch-entry SDUMPX... 35 Analyzing disabled summary dumps...35 Analyzing suspend summary dumps...36 Analyzing an SVC dump... 36 iii

4 Specifying the source of the dump... 37 Formatting the SVC dump header...37 Looking at the dump title... 38 Displaying the incident token, time and type of dump...39 Locating error information... 40 Analyze TCB structure...42 Examining the LOGREC buffer...44 Examining the system trace...45 Looking at the registers...46 Other useful reports for SVC dump analysis...47 Reading the SDUMPX 4K SQA buffer... 47 Chapter 3. Transaction dump... 49 Planning data sets for transaction dumps... 49 Planning data set management for transaction dumps...49 Using preallocated dump data sets... 50 Setting up allocation authority...50 Choices for IEATDUMP Data Sets... 50 Obtaining transaction dumps... 52 Printing, viewing, copying, and clearing a dump data set... 52 Contents of transaction dumps... 53 Customizing transaction dump contents...53 Chapter 4. Stand-alone dump... 59 Planning for stand-alone dump...60 Should I take a stand-alone dump to DASD or to tape?...60 Can I use my current version of the stand-alone dump program to dump a new version of z/OS?.. 63 Creating the stand-alone dump program...63 MNOTES from the AMDSADMP macro...63 Coding the AMDSADMP macro...67 Using the AMDSADDD utility... 79 Generating the stand-alone dump program... 86 One-stage generation...87 Two-stage generation... 92 Running the stand-alone dump program... 96 Procedure A: Initialize and run stand-alone dump... 96 Procedure B: Restart stand-alone dump...100 Procedure C: ReIPL stand-alone dump... 100 Procedure D: Dump the stand-alone dump program...100 Running the stand-alone dump program in a sysplex... 101 Capturing a stand-alone dump quickly... 102 Minimize the operator actions... 102 Get a partial stand-alone dump...103 Copying, viewing, and printing stand-alone dump output... 103 Copying the dump to a data set...103 Viewing stand-alone dump output... 106 Printing stand-alone dump output... 106 Message output... 107 Stand-alone dump messages on the 3480, 3490, or 3590 display...107 Analyzing stand-alone dump output...108 Collecting initial data...108 Analyzing an enabled wait... 111 Analyzing a disabled wait...115 Analyzing an enabled loop...115 Analyzing a disabled loop... 116 SLIP problem data in the SLIP work area...116 Problem data saved by first level interrupt handlers...117 iv

5 Chapter 5. ABEND dump... 121 Synopsis of ABEND dumps...121 Obtaining ABEND dumps...123 Data set for dump...124 Process for obtaining ABEND dumps... 125 Printing and viewing dumps... 126 Contents of ABEND dumps...127 Determining current ABEND dump options... 127 Default contents of summary dumps in ABEND dumps... 131 Customizing ABEND dump contents...132 Customizing SYSABEND dump contents...133 Customizing SYSMDUMP dump contents...134 Customizing SYSUDUMP dump contents... 136 Analyzing an ABEND dump...137 Analysis Procedure...138 Chapter 6. SNAP dump... 141 Obtaining SNAP dumps... 141 Customizing SNAP dump contents... 144 Customizing through installation exits... 144 Customizing through the SNAP or SNAPX macro...144 Chapter 7. The dump grab bag... 147 Problem data for storage overlays... 147 Analyzing the damaged area...147 Common bad addresses... 148 Problem data from the linkage stack... 148 Problem data for modules...149 Processing modes... 149 Problem data from recovery work areas...150 Problem data for ACR... 150 Pre-Processing phase data... 151 Data obtained by IPCS... 151 Problem data for machine checks...151 Chapter 8. System trace...153 Customizing system tracing... 153 Increasing the size of the system trace table...153 Tracing branch instructions... 154 Receiving system trace data in a dump... 154 Formatting system trace data in a dump... 155 Reading system trace output... 155 Example of a system trace in a dump...155 Summary of system trace entry identifiers ... 156 ACR trace entries...158 AINT trace entries...159 ALTR trace entries... 160 BR trace entries...161 BSG, PC, PR, PT, PTI, SSAR and SSIR trace entries... 162 CALL, CLKC, EMS, EXT, I/O, MCH, RST, SS, TIMR, and WTI trace entries...164 CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH trace entries... 167 DSP, SRB, SSRB, and WAIT trace entries... 170 MODE and MOBR trace entries... 172 PCIL trace entries...173 PCIS trace entries... 174 PDMX trace entries...175 v

6 PGM, SPER and SPR2 trace entries... 176 RCVY trace entries... 177 SPIN trace entries... 182 SSRV trace entries...187 SUSP trace entries... 197 SVC, SVCE, and SVCR trace entries... 198 SYNS and SYNE trace entries...200 TIME trace entries...202 USRn trace entries... 203 Chapter 9. Master trace...205 Master trace and the hardcopy log...205 Customizing master trace...205 Requesting master trace... 205 Receiving master trace... 206 Reading master trace data... 207 Master trace output formatted in a dump... 207 Master trace table in storage... 208 Chapter 10. The Generalized Trace Facility (GTF)... 211 GTF and IPCS... 211 GTF and the GTRACE macro... 211 Using IBM defaults for GTF... 212 The IBM-supplied parmlib member of GTF trace options... 212 The IBM-supplied cataloged procedure...212 Customizing GTF...213 Defining GTF trace options...214 Setting up a cataloged procedure...214 Determining GTF's storage requirements... 218 Starting GTF... 219 Using the START command to invoke GTF... 220 Specifying or changing GTF trace options through system prompting...221 Examples of starting GTF...221 Starting GTF to trace VTAM remote network activity...224 Stopping GTF...225 GTF trace options...226 Combining GTF options...230 Examples of sample prompting sequences... 236 Receiving GTF traces... 239 Combining, extracting, and merging GTF trace output... 239 Merging trace output...240 Reading GTF output... 241 Formatted GTF trace output...243 Trace record identifiers ...243 Example of formatted GTF trace output...245 Formatted trace records for events... 247 Time stamp records... 247 Source index records... 248 Lost event records...248 ADINT trace records... 249 CCW trace records...249 CSCH and HSCH trace records...251 DSP and SDSP trace records...252 EOS, INTG, IO, IOCS, and PCI trace records...254 EXT trace records...257 FRR trace records...259 HEXFORMAT, SUBSYS, and SYSTEM trace records...261 vi

7 IOX trace records... 261 LSR trace records... 264 MSCH trace records... 265 PCIDMX trace records...266 PCILG trace records... 266 PCISTG trace records...267 PGM and PI trace records... 268 RNIO trace records... 269 RSCH trace records... 270 SLIP trace records...271 SLIP standard trace record... 271 SLIP standard/user trace record... 275 SLIP user trace record... 275 SLIP debug trace record... 276 SRB trace records...277 SRM trace records...278 SSCH trace records... 279 STAE trace records...280 SVC and SVCR trace records...282 SYNS and SYNE trace records...284 SYNCH I/O trace records... 285 TCW trace records...288 USR trace records... 290 Unformatted USR trace record... 290 Formatted USR trace record... 291 USRF9 trace record for VSAM... 292 USRFD trace record for VTAM...292 USRFE trace record for BSAM, QSAM, BPAM, and BDAM... 293 USRFF trace record for open/close/EOV abnormal end... 294 USRFF trace record for user requested work area...294 XSCH trace record...295 Event Identifiers (EIDs) for USR trace records...295 Format Identifiers (FIDs) for USR trace records... 297 Unformatted GTF trace output... 298 Control records...299 Unformatted lost event records...300 User data records...300 System data records... 302 Unformatted trace records for events... 302 Chapter 11. The generic tracker facility... 321 GTZLQRY REXX callable function... 324 GTZLQRY "STATUS" interface... 324 GTZLQRY "TRACKDATA" interface... 328 GTZLQRY "EXCLUDE" interface...335 GTZLQRY "DEBUG" interface... 339 Data persistence and generic tracking services... 343 simplified DFSMS tracking ...344 JES3 control statement tracking...345 MVS Allocation tracking ...346 SDSF tracking...347 TSO/E tracking... 347 VSM tracking... 348 Chapter 12. Component trace...349 Planning for component tracing...350 Create CTncccxx parmlib members for some components...351 vii

8 Select the trace options for the component trace... 356 Decide where to collect the trace records...357 Obtaining a component trace...358 Request component tracing to address space or data space trace buffers...359 Request writing component trace data to trace data sets...361 Create a parmlib member... 364 Request component tracing for systems in a sysplex...366 Verifying component tracing...367 Verify that the writer is active...369 Viewing the component trace data... 370 SYSAPPC component trace... 371 Requesting a SYSAPPC trace... 372 Formatting a SYSAPPC trace...375 Output from a SYSAPPC Trace...378 FMH-5 trace data... 381 SYSAXR component trace... 384 Requesting a SYSAXR trace... 385 Formatting a SYSAXR trace...386 Output from a SYSAXR Variables Trace...386 SYSBCPII component trace...387 Requesting a SYSBCPII trace... 388 Formatting a SYSBCPII trace...389 Output from a SYSBCPII trace...390 SYSBHI component trace...391 Requesting a SYSBHI trace...392 Formatting a SYSBHI trace... 393 Output from a SYSBHI trace... 394 SYSCEA component trace...395 Requesting a SYSCEA trace... 396 Formatting a SYSCEA trace...397 Output from a SYSCEA trace...398 SYSDLF component trace...398 Requesting a SYSDLF trace...399 Formatting a SYSDLF trace... 399 Output from a SYSDLF trace... 399 SYSDSOM component trace... 400 Requesting a SYSDSOM trace... 400 Formatting a SYSDSOM trace...400 Output from a SYSDSOM trace... 401 SYSDUMP component trace... 402 Requesting a SYSDUMP trace... 403 Formatting a SYSDUMP trace...404 Output from a SYSDUMP trace... 404 Viewing SDUMP CTRACE in IPCS Active...405 SYSGRS component trace... 406 Requesting a SYSGRS trace... 406 Formatting a SYSGRS trace...410 Output from a SYSGRS trace...410 SYSHZS component trace... 411 Requesting a SYSHZS trace... 412 Formatting a SYSHZS trace...413 Output from a SYSHZS trace...413 SYSIEFAL component trace...414 Requesting a SYSIEFAL trace...415 Formatting a SYSIEFAL trace... 419 Output from a SYSIEFAL trace...419 SYSIOS component trace... 420 Requesting a SYSIOS trace... 421 viii

9 Formatting a SYSIOS trace...424 CTRACE COMP(SYSIOS) subcommand output...424 SYSJES component trace... 425 Requesting a SYSJES trace... 426 Formatting a SYSJES trace...429 Output from a SYSJES trace... 431 SYSjes2 component trace... 433 Requesting a SYSjes2 trace... 434 Formatting SYSjes2 sublevel trace Information... 434 Output from a SYSjes2 trace...434 SYSLLA component trace... 436 Requesting a SYSLLA trace... 436 Formatting a SYSLLA trace...436 SYSLOGR component trace... 437 Obtaining a dump of system logger information...437 Requesting a SYSLOGR trace...439 Formatting a SYSLOGR trace... 442 Output from a SYSLOGR trace... 443 SYSOMVS component trace... 443 Requesting a SYSOMVS trace... 444 Formatting a SYSOMVS trace...446 Output from a SYSOMVS trace...448 SYSOPS component trace... 453 Requesting a SYSOPS trace... 454 Formatting a SYSOPS trace...456 Output from a SYSOPS trace...457 SYSRRS component trace...458 Requesting a SYSRRS trace... 459 Formatting a SYSRRS trace...462 Output from a SYSRRS trace...463 SYSRSM component trace...464 Requesting a SYSRSM trace...465 Formatting a SYSRSM trace... 478 Output from a SYSRSM trace... 478 SYSSPI component trace...479 Requesting a SYSSPI trace... 479 Formatting a SYSSPI trace...480 SYSTTRC transaction trace...480 SYSVLF component trace... 481 Requesting a SYSVLF trace... 481 Formatting a SYSVLF trace...482 Output from a SYSVLF trace... 482 SYSWLM component trace... 484 Requesting a SYSWLM trace... 484 Formatting a SYSWLM trace...485 Output from a SYSWLM trace...485 SYSXCF component trace...486 Requesting a SYSXCF trace...487 Formatting a SYSXCF trace... 490 Output from a SYSXCF trace... 490 SYSXES component trace...491 Requesting a SYSXES trace...493 Formatting a SYSXES trace... 495 Output from a SYSXES trace... 496 Chapter 13. Transaction trace... 497 How transaction trace works...497 ix

10 Transaction trace commands...497 The TRACE TT command... 497 DISPLAY TRACE,TT...499 Using IPCS to view transaction trace output... 500 Chapter 14. GETMAIN, FREEMAIN, STORAGE (GFS) trace... 503 Starting and stopping GFS trace... 503 Receiving GFS trace data...504 Formatted GFS trace output...504 Unformatted GFS trace output...506 Chapter 15. Recording logrec error records...509 Collection of software and hardware information... 509 Choosing the correct logrec recording medium...510 Initializing and reinitializing the logrec data set...510 Initializing the logrec data set... 510 Reinitializing the logrec data set...511 a logrec log stream...512 Defining Changing the logrec recording medium... 514 Error recording contents...514 Logrec data set header record...515 Logrec data set time stamp record...515 Types of logrec error records...515 Obtaining information from the logrec data set...517 Using EREP... 517 Obtaining records from the logrec log stream... 519 Using System Logger services to obtain records from the logrec log stream... 519 Using EREP to obtain records from the logrec log stream...520 Obtaining information from the logrec recording control buffer...524 Formatting the logrec buffer...524 Finding the logrec and WTO recording control buffers... 524 Reading the logrec recording control buffer...525 Interpreting software records... 525 Detail edit report for a software record... 525 Chapter 16. AMBLIST: Map load modules and program objects...533 Obtaining AMBLIST output...533 Specifying the JCL statements... 534 Controlling AMBLIST processing... 534 Examples of running AMBLIST... 538 List the contents of an object module... 538 Map the CSECTs in a load module or program object... 540 Trace modifications to the executable code in a CSECT...541 List the modules in the link pack area and the contents of the DAT-on nucleus... 542 Examples for z/OS UNIX System Services file support...543 Reading AMBLIST output... 544 Module summary... 544 LISTOBJ outputs... 548 LISTLOAD OUTPUT=MODLIST output... 557 LISTLOAD OUTPUT=XREF output...571 LISTLOAD OUTPUT=MAP...577 LISTLOAD OUTPUT=XREF output (comparison of load module and program object version 1)...577 LISTLOAD OUTPUT=BOTH Output... 580 LISTIDR output...583 LISTLPA output...586 Chapter 17. SPZAP: Modify data in programs and VTOCs...589 x

11 Planning for SPZAP...589 Invoking SPZAP...590 Inspecting and modifying data...590 Inspecting and modifying a load module or program object...590 Inspecting and modifying a data record...596 Updating the System Status Index (SSI)... 598 Running SPZAP... 600 Using JCL and control statements to run SPZAP... 601 Chapter 18. AMATERSE: Pack and unpack a data set... 621 Planning for AMATERSE...621 Invoking AMATERSE... 622 Specifying the JCL statements for AMATERSE...622 Invoking AMATERSE from a problem program... 624 Additional considerations for AMATERSE...624 Restrictions for AMATERSE...624 Allocation considerations... 625 Space considerations...625 Chapter 19. AMAPDUPL: Problem Documentation Upload Utility...627 Planning to use PDUU...628 Prerequisites and restrictions for PDUU...628 JCL statements for PDUU... 628 JCL examples for PDUU... 631 Return codes for PDUU... 637 Chapter 20. Dump suppression... 639 Using DAE to suppress dumps... 639 Performing dump suppression... 639 Planning for DAE dump suppression... 642 Accessing the DAE data set... 644 Stopping, starting, and changing DAE... 647 Changing DAE processing in a Sysplex...647 Using a SLIP command to suppress dumps... 647 Using an ABEND macro to suppress dumps... 648 Using installation exit routines to suppress dumps... 648 Determining why a dump was suppressed...649 Chapter 21. Messages...651 Producing messages...651 Receiving messages... 651 Console...652 Receiving symptom dumps...652 Planning message processing for diagnosis... 653 Controlling message location... 653 Chapter 22. Hardware Instrumentation Services ... 657 Appendix A. Accessibility...659 Accessibility features... 659 Consult assistive technologies...659 Keyboard navigation of the user interface... 659 Dotted decimal syntax diagrams...659 Notices...663 Terms and conditions for product documentation... 664 IBM Online Privacy Statement... 665 xi

12 Policy for unsupported hardware...665 Minimum supported hardware...666 Trademarks... 666 Index... 667 xii

13 List of Figures 1. Default name pattern for automatically allocated dump data set...10 2. Example: verifying dump status... 11 3. Example of dump status... 12 4. Example: Output from DISPLAY,DUMP ERRDATA command...22 5. Example: JCL to print, copy, and clear an SVC dump data set...23 6. Example: Format of IPCS VERBX SUMDUMP command...33 7. Example: IPCS VERBX SUMDUMP command...34 8. Example: Examining storage...34 9. IPCS Default Values menu... 37 10. IPCS primary option menu...38 11. IPCS MVS analysis of dump contents menu... 38 12. STATUS WORKSHEET subcommand sample output — dump title... 39 13. Sample output from the STATUS SYSTEM subcommand... 40 14. IPCS Subcommand Entry menu... 40 15. Search argument abstract in the STATUS FAILDATA report... 40 16. System mode information in the STATUS FAILDATA report...41 17. Time of error information in the STATUS FAILDATA report...42 18. Example: the SUMMARY TCBERROR report...43 19. Example: output from the IPCS subcommand SYSTRACE... 46 20. Sample of the STATUS REGISTERS report... 46 21. Sample of the STATUS REGISTERS report run in z/Architecture mode...47 22. SPFUSER name pattern for automatically allocated dump data set... 51 23. Example: JCL to Print, Copy, and Clear the Dump Data Set...52 24. Format of AMDSADMP Macro Instruction... 68 25. Example: Accepting All Defaults...72 26. Example: Generating an unformatted, tape resident dump program... 73 27. Example: Generating a dump program with output to DASD... 73 28. Example: Generating a dump program with output to DASD... 73 29. Sample Console output from the stand-alone Dump Program... 75 30. Example of valid specifications ... 78 31. Using AMDSADDD to allocate and initialize a basic dump data set...83 32. Using AMDSADDD to allocate and initialize a multi-volume, large format dump data set... 84 33. Using AMDSADDD to Allocate and Initialize an Extended Dump Data Set... 85 34. Using AMDSADDD to Clear an Existing Dump Data Set... 85 35. Using AMDSADDD to Reallocate the Dump Data Set...86 36. Example: Using JCL to allocate and initialize a dump data set... 86 37. Example: Using JCL to allocate and initialize an extended format dump data set ... 86 38. Example: One-stage generation... 87 39. Example: One-stage generation of stand-alone dump to a DASD...88 xiii

14 40. Example: One-stage generation of stand-alone dump to tape... 89 41. One-stage generation JCL for a DASD (beginning with z/OS V1R12) ...90 42. Example: One-stage generation JCL (any release) for a DASD (any release)... 91 43. Example: One-stage JCL (beginning with z/OS V1R12) for tape...91 44. Example: One-stage JCL (any release) for tape...92 45. Example: Stage-two JCL to assemble the AMDSADMP macro...92 46. Example: Assembling multiple versions of AMDSADMP Macro... 93 47. Example: Stage-two JCL to assemble the AMDSADMP macro...94 48. Example: Stage-two JCL to assemble the AMDSADMP macro...95 49. Example: Stage-Two JCL to assemble the AMDSADMP macro with overrides...96 50. Example: Using a load parm to perform a stand-alone dump...99 51. Example: Terminating a stand-alone dump...103 52. Example: Copying stand-alone dump output from tape to DASD... 104 53. Example: Copying stand-alone dump output from DASD to DASD... 105 54. Example: Copying a stand-alone dump from multiple DASD data sets...105 55. Example: Copying stand-alone dump output from DASD and tape... 105 56. Example: Printing an unformatted stand-alone dump... 106 57. Example: VERBEXIT SYMPTOMS output...109 58. Example: STATUS WORKSHEET output... 110 59. Example: STATUS CPU REGISTERS output...111 60. Example: WHERE subcommand output...111 61. Example: IOSCHECK ACTVUCBS Subcommand output... 112 62. Example: ANALYZE subcommand output... 112 63. Example: RSMDATA output...112 64. Example: ASMCHECK output...113 65. Example: SUMMARY FORMAT output (determining ready work)...114 66. Example: SUMMARY FORMAT output (determining TCB in normal wait)... 115 67. Example: SYSTRACE output (recognizing an enabled loop)...116 68. Example: Using IEBPTPCH to print a dump...127 69. Example: Recognizing a pattern...148 70. Example: Viewing a linkage stack entry...149 71. Example: system trace in an SVC dump...156 72. Example: Finding the format for an SVC entry...156 73. Example: Three trace entries from the PTRACE macro...204 74. Example: TRACE STATUS output...206 75. Example: DISPLAY TRACE output... 206 76. Example of master trace data in a dump formatted by IPCS... 208 77. IBM-Supplied GTFPARM parmlib member... 212 78. IBM-Supplied GTF Cataloged Procedure... 212 79. GTF storage requirements...219 80. Example: altering one data set...220 81. Example: Altering More Than One Data Set...221 82. Example: Starting GTF with a Cataloged Procedure...222 xiv

15 83. Example: Starting GTF with internal tracking... 222 84. Example: Start GTF, trace output to an existing data set on tape... 223 85. Example: Starting GTF with trace options stored in SYS1.PARMLIB... 223 86. Example: Starting GTF without trace options in a member...224 87. Example: Starting GTF to trace VTAM remote network activity... 224 in DISPLAY A,LIST output...225 88. Example: recognizing GTF identifier 89. Example: Starting instances of GTF... 226 90. Example: DISPLAY A,LIST command output... 226 91. Example: Specifying prompting trace options SYSP and USRP...238 92. Example: Specifying prompting trace options... 238 93. Example: Consolidating GTF output from multiple data sets...240 94. Example: Consolidating GTF output from multiple systems... 240 95. Example: Merging GTF output from multiple systems...241 96. Example: IPCS subcommand entry panel for GTFTRACE... 246 97. Example: GTF record for SSCH events... 246 98. Example: GTF records for IO interruption events... 247 99. Example: More GTF records for IO interruption events...247 100. Unformatted control record...299 101. Unformatted Lost Event Record... 300 102. Unformatted User trace record Format...301 103. Header for Unformatted System trace record Format...302 104. Example of tracked usage reported by the catalog for using GDGLIMIT (and not also using GDGLIMTE)...345 105. Examples of JES3 control statement GTZ records... 345 106. Example of MVS allocation tracking...347 107. Examples of SDSF tracking...347 108. Example of tracked usage by TSO/E... 348 109. Example of an event tracked by VSM...348 110. Example: Cataloged Procedure for an External Writer...362 111. Hierarchy of SYSAPPC Component Trace Options...373 112. CTRACE COMP(SYSAPPC) SHORT subcommand output...378 113. CTRACE COMP(SYSAPPC) SUMMARY subcommand output...379 114. CTRACE COMP(SYSAPPC) FULL subcommand output... 381 115. SYSAXR variables trace record header... 387 116. Example: SYSBCPII component trace records formatted with CTRACE COMP(SYSBCPII) SHORT subcommand... 390 117. Example: SYSBCPII component trace records formatted with CTRACE COMP(SYSBCPII) FULL subcommand... 391 118. Example: formatted IPCS output produced from CTRACE COMP(SYSBHI) SHORT subcommand... 394 119. Example: formatted IPCS output produced from CTRACE COMP(SYSBHI) FULL subcommand...395 120. Example: formatted IPCS output produced from CTRACE COMP(SYSCEA) FULL subcommand...398 121. CTRACE COMP(SYSDLF) FULL subcommand output...399 122. Example: DSOM component trace records formatted with CTRACE COMP(SYSDSOM) FULL OPTIONS((SKIPID,SHORTFORM))...401 xv

16 123. Example: DSOM component trace records formatted with CTRACE COMP(SYSDSOM) FULL ... 401 124. Example: DSOM component trace records formatted with CTRACE COMP(SYSDSOM) FULL OPTIONS((SKIPID)) DSN('dsom.trace.dsn')...402 125. Example: SDUMP component trace records formatted with CTRACE COMP(SYSDUMP) FULL ... 405 126. Example: SYSGRS component trace records formatted with CTRACE COMP(SYSGRS) SHORT...410 127. Example: SYSGRS component trace records formatted with the CTRACE COMP(SYSGRS) TALLY... 411 128. Example: SYSHZS component trace records formatted with the CTRACE COMP(SYSHZS) FULL... 414 129. Example: SYSIEFAL component trace records formatted with CTRACE COMP(SYSIEFAL) SHORT subcommand... 419 130. Example: SYSIEFAL component trace records formatted with CTRACE COMP(SYSIEFAL) FULL subcommand... 420 131. Example: Cataloged procedure for SYSJES... 427 132. Example: Turning on tracing in a CTIJESxx member...429 133. Example: Return to default in a CTIJESxx member... 429 134. Example: merged output from the four SYSJES sublevel traces with the TALLY parameter... 433 135. Example: merged output from both SYSjes2 sublevel traces with FULL parameter...435 136. Example: merged output from both SYSjes2 sublevel traces with SHORT parameter... 435 137. Example: system logger component trace records formatted with CTRACE COMP(SYSLOGR) subcommand... 443 138. SY1 Trace Flow: Part 1...450 139. SY1 Trace Flow: Part 2...450 140. SY2 Trace Flow: Part 1...451 141. SY2 Trace Flow: Part 2...451 142. Control block trace output...452 143. SYSOMVS component trace formatted with CTRACE COMP(SYSOMVS) SHORT...452 144. SCCOUNT Function Displaying SYSCALL Frequency... 452 145. SCCOUNT Function Displaying Function Code Frequency... 453 146. CTRACE COMP(SYSOMVS) FULL OPTIONS((KERNINFO))...453 147. Example: OPS component trace records formatted with CTRACE COMP(SYSOPS) SHORT subcommand... 457 148. Example: OPS component trace records formatted with CTRACE COMP(SYSOPS) FULL subcommand... 458 149. Example: CTnRRSxx member requests context services events ... 462 150. Example: TRACE command requests context services events ... 462 151. Example: Using the CTWRSM05 parmlib member... 466 152. Example: VLF component trace records formatted with CTRACE COMP(SYSVLF) FULL subcommand... 482 153. Example: equesting a SYSWLM component trace... 485 154. Example: SYSWLM component trace records formatted with CTRACE COMP(SYSWLM) SHORT subcommand... 485 155. Example: SYSWLM component trace records formatted with CTRACE COMP(SYSWLM) FULL subcommand... 486 156. Example: CTnXESxx member requesting a SYSXCF trace...489 157. Example: TRACE command for SYSXCF trace... 490 158. Example: SYSXCF component trace records formatted with CTRACE COMP(SYSXCF) FULL subcommand... 491 xvi

17 159. SYSXES SUB Trace Structure...492 160. Example: CTnXESxx member requesting a SYSXES trace...495 161. Example: TRACE command for SYSXES trace... 495 162. Example: formatted SYSXES component trace records...496 163. Example: DISPLAY TRACE,TT command response... 500 164. Example: IPCS CTRACE COMP(SYSTTRC) SHORT response...500 165. Example: IPCS CTRACE COMP(SYSTTRC) LONG response...501 166. Example of formatted GFS trace output... 505 167. Logrec Error Recording Overview...509 168. Example: Changing the space allocation... 511 169. Example: Reinitializing the logrec data set...512 170. Example: Sample JCL of using IXCMIAPU...513 171. Example: Printing a detail edit report... 518 172. Example: Printing an event history report... 519 173. Example: Printing a detail summary report... 519 174. Example: Using SUBSYS parameters...523 175. Example: Listing an object module... 539 176. Example: Listing several object modules...539 177. Example: Listing several load modules or program objects...540 178. Example: Listing several load modules or program objects...541 179. Example: Listing IDR information for several load modules... 542 180. Example: Listing a system nucleus and the link pack area... 543 181. Example: z/OS UNIX System Services program object... 543 182. Example: z/OS UNIX System Services object module...544 183. Example: z/OS UNIX System Services control statement...544 184. Example: Differences in output...544 185. Example: Module summary for a load module processed by the linkage editor...545 186. Example: Module summary for a program object processed by the binder...545 187. Example: Output for LISTOBJ with an object module...548 188. Example: LISTOBJ output with XSD Record... 549 189. Example: LISTOBJ output with GOFF Records...550 190. Example: Segment map table for LISTLOAD OUTPUT=XREF of multiple-text class module... 576 191. Example: LISTIDR output for a load module processed by linkage editor or binder... 584 192. Example: LISTIDR output for a program object processed by binder... 585 193. Sample LISTLPA output...587 194. Example: Inspecting and modifying a single CSECT load module...591 195. Example: Modifying a CSECT in a load module...592 196. Example: Inspecting and modifying two CSECTs... 593 197. Example: Inspecting and Modifying a CSECT in z/OS UNIX System Services... 594 198. Example: Using SPZAP to modify a CSECT... 595 199. Sample Assembly Listing Showing Multiple Control Sections... 596 200. Example: Inspecting and modifying a data record...597 201. Example: Using SPZAP to modify a data record... 598 xvii

18 202. SSI bytes in a load module directory entry...599 203. Flag bytes in the System Status Index ...600 field 204. Sample assembler code for dynamic invocation of SPZAP... 605 205. Example: Using the BASE control statement...608 206. Example: Entering SPZAP control statements through console... 610 207. Example: Using the DUMP control statement with a class name... 611 208. Sample formatted hexadecimal dump...616 209. Sample translated dump... 617 210. Sample formatted hexadecimal dump for PDSE program object module...618 211. Sample translated dump for PDSE data library... 619 212. Sample report from a successful SPZAP with PARM=PRECHECK... 620 213. Sample report from SPZAP when errors are found with PARM=PRECHECK... 620 214. Example: AMATERSE JCL... 622 215. Example: AMATERSE JCL from a problem prgram... 624 216. Simple FTP connection...632 217. FTP connection using a proxy server... 632 218. FTP with a proxy user ID... 633 219. FTP using the FTPCMDS DD statement...633 220. FTPCMDS data set example... 633 221. FTP specifying port 2121 on TARGET_SYS... 634 222. FTP forcing PASSIVE mode... 634 223. FTP using a userid.NETRC data set...635 224. FTP connection with the DEBUG DD statement... 635 225. Using SYSUT2 statement for allocating an unload data set...636 226. Using a multiple record control statement... 636 227. Using the NO_FTP option...637 228. FTP specifying multiple statements in an inline FTPCMDS DD...637 229. Example: An ADYSETxx Member for a System in a Sysplex... 643 230. Example: An ADYSETxx Member with GLOBAL... 643 231. Example: DAE Data Set for Single System... 644 232. Example: DAE Data Set Shared by Sysplex Systems...644 233. Example: Symptom Dump Output... 653 234. Change LPAR Security panel for active LPAR ...657 235. Activation profile security panel for new LPAR ... 658 xviii

19 List of Tables 1. Selecting a dump...1 2. Selecting a trace... 1 3. Selecting a service aid...2 4. Description of dumps... 3 5. Description of traces... 4 6. Description of service aids... 4 7. Sample operator DUMP command members in SYS1.SAMPLIB... 18 8. Customizing SVC dump contents through the SDATA parameter...24 9. Affects on the CSA storage captured in an SVC dump... 27 10. Customizing SVC dump contents through summary dumps... 29 11. Customizing SVC dump contents through operator commands...31 12. Fields in SQA bugger... 48 13. Customizing transaction dump contents through the SDATA Parameter...53 14. Customizing transaction dump contents through operator commands...56 15. DDNAMES and defaults used by AMDSAOSG... 87 16. AMDSAOSG return codes...89 17. Directing the output of assembly...93 18. Work area pointed to by the PSAWTCOD field ... 116 19. Problem data saved by the SVC FLIH for task and SRB code...117 20. Problem data saved for a program check for task and SRB code... 118 21. Problem data saved by the I/O FLIH for task and SRB code...119 22. Problem data saved by the external FLIH for task and SRB code...119 23. Types of ABEND dumps...122 24. Summary: DD statements to specify for ABEND dumps...123 specific 25. Summary: dump contents by parameter... 128 26. Default contents of summary dumps in ABEND dumps...131 27. Customizing SYSABEND dump contents...133 28. Customizing SYSMDUMP dump contents...135 29. Customizing SYSUDUMP dump contents... 136 30. Customizing dumps using through the SNAP or SNAPX macro...144 31. Dumps that have TRT in their default options...155 32. References for system trace entry format description... 156 33. RCVY trace events that require reentry...178 34. Summary of dumps that contain master trace data... 206 35. How to locate master trace table from CVT...209 36. Combining GTF options...230 37. GTF trace options and corresponding prompting keywords...231 38. CCW defaults for selected TRACE options... 233 39. Event identifiers and the types of events they represent...236 xix

20 40. Summary of trace record identifiers ...243 identifiers for USR trace records... 295 41. Event for USR trace records...298 42. Format identifiers 43. DSP trace record offset, size, and description... 303 44. Values for DSP minimal trace record...304 45. EXT comprehensive trace record offset, size, and description... 304 46. CCW error codes... 308 47. Basic SVC comprehensive trace record... 316 48. REQUEST="STATUS" output variable names and descriptions...324 49. REQUEST="STATUS" ABEND reason codes and descriptions...328 50. REQUEST="TRACKDATA" output variable names and descriptions...330 51. REQUEST="TRACKDATA" ABEND reason codes and descriptions...335 52. REQUEST="EXCLUDE" output variable names and descriptions... 335 53. REQUEST="EXCLUDE" ABEND reason codes and descriptions... 338 54. REQUEST="DEBUG" output variable names and descriptions...339 55. REQUEST="DEBUG" ABEND reason codes and descriptions...342 56. Summary of BCP component traces that use the component trace service... 349 57. Determining if a component has a parmlib member... 351 58. Component trace options... 353 59. Location of trace buffers for components...357 60. How to request SVC dumps for component traces...359 61. Subcommands that format component trace records...370 62. Requesting SYSAPPC component trace for APPC/MVS...371 63. CTnAPPxx parameters... 372 64. Parameters allowed on TRACE CT...372 65. Parameters allowed on REPLY...372 66. Summary of the title prefixes and APPC/MVS subcomponents... 379 67. FMH-5 trace entries in the SYSAPPC component trace...381 68. Summary of SYSLOGR component trace request... 437 69. Example: Using EREP parameters...523 70. Program object and load module attributes... 546 71. PMR number variables for PDUU...630 72. Return codes for z/OS Problem Documentation Upload Utility...637 73. Summary of required symptoms... 640 74. Summary of optional symptoms...640 75. VRADAE and VRANODAE keys on dump suppression when SUPPRESS and SUPPRESSALL keywords are specified in ADYSETxx...641 76. Examples of when DAE parameters may change... 645 77. Summary of installation exit routines for dump suppresion... 648 78. Suppressing symptom dumps ... 655 xx

21 About this information ™ ® This information covers the tools and service aids that IBM provides for use in diagnosing MVS problems. Chapter 1, “Selecting tools and service aids,” on page 1 contains a guide on how to select the appropriate tool or service aid for your purposes. It also provides an overview of all the tools and service aids available, Each subsequent chapter covers one of the tools or service aids. While topics vary, the following topics are typically covered for each tool or service aid: • Customizing and planning information • Starting and stopping the tool or service aid • Receiving, formatting, and reading the output from the tool or service aid. At the beginning of each chapter, there is a short editorial style comment that is intended to characterize the tool or service aid that is covered in the chapter. Who should use this information This information is for anyone who diagnoses software problems that occur on the operating system. This person is usually a system programmer for the installation. This information is also for application programmers who are testing their programs. This information assumes that the reader: • Understands basic system concepts and the use of system services • Codes in Assembler language, and reads Assembler and linkage editor output • Codes JCL statements for batch jobs and cataloged procedures • Understands the commonly used diagnostic tasks and aids, such as message logs, dumps, and the interactive problem control system (IPCS) • Understands how to search the problem reporting databases • Understands the techniques for reporting problems to IBM z/OS information This information explains how z/OS references information in other documents and on the web. When possible, this information uses cross document links that go directly to the topic in reference using shortened versions of the document title. For complete titles and order numbers of the documents for all products that are part of z/OS, see z/OS Information Roadmap . ® To find the complete z/OS library, go to IBM Knowledge Center (www.ibm.com/support/ knowledgecenter/SSLTBW/welcome) . © Copyright IBM Corp. 1988, 2017 xxi

22 xxii z/OS: MVS Diagnosis: Tools and Service Aids

23 How to send your comments to IBM We invite you to submit comments about the z/OS product documentation. Your valuable feedback helps to ensure accurate and high-quality information. Important: If your comment regards a technical question or problem, see instead “If you have a technical problem” on page xxiii . Submit your feedback by using the appropriate method for your type of comment or question: Feedback on z/OS function If your comment or question is about z/OS itself, submit a request through the IBM RFE Community (www.ibm.com/developerworks/rfe/) . Feedback on IBM Knowledge Center function If your comment or question is about the IBM Knowledge Center functionality, for example search capabilities or how to arrange the browser view, send a detailed email to IBM Knowledge Center Support at [email protected] . Feedback on the z/OS product documentation and content If your comment is about the information that is provided in the z/OS product documentation library, send a detailed email to [email protected] . We welcome any feedback that you have, including comments on the clarity, accuracy, or completeness of the information. To help us better process your submission, include the following information: • Your name, company/university/institution name, and email address • The following deliverable title and order number: z/OS MVS Diagnosis: Tools and Service Aids, GA32-0905-30 • The section title of the specific information to which your comment relates • The text of your comment. When you send comments to IBM, you grant IBM a nonexclusive right to use or distribute the comments in any way appropriate without incurring any obligation to you. IBM or any other organizations use the personal information that you supply to contact you only about the issues that you submit. If you have a technical problem If you have a technical problem or question, do not use the feedback methods that are provided for sending documentation comments. Instead, take one or more of the following actions: • Go to the IBM Support Portal (support.ibm.com) . • Contact your IBM service representative. • Call IBM technical support. © Copyright IBM Corp. 1988, 2017 xxiii

24 Summary of changes This information includes terminology, maintenance, and editorial changes. Technical changes or additions to the text and illustrations for the current edition are indicated by a vertical line to the left of the change. Summary of changes for z/OS MVS Diagnosis: Tools and Service Aids for Version 2 Release 3 The following changes are made for z/OS Version 2 Release 3 (V2R3). New and changed • For APAR OA54807, in Chapter 8, “System trace,” on page 153 , information about ssid 0151 has been . added to “SSRV trace entries” on page 187 • For APAR OA54086, the IBM z/OS Problem Documentation Upload Utility (PDUU) is updated to allow AMAPDUPL to accept a CASE number in place of a PMR number. See “JCL statements for PDUU” on page 628 . • Updates for APAR OA50653: z/OS zHyperLinks Support in the following sections: identifiers” on page 156 and “SYNS and SYNE trace – System trace: “Summary of system trace entry entries” on page 200 . – Generalized trace facility (GTF) trace: - “GTF trace options” on page 226 - “Prompting keywords” on page 231 - “Reading GTF output” on page 241 - “Trace record identifiers” on page 243 - “SYNS and SYNE trace records” on page 284 - “SYNCH I/O trace records” on page 285 . • Updates to “Stopping GTF” on page 225 • Updates to generic tracking in the following sections: – “MVS Allocation tracking ” on page 346 . . – “SDSF tracking” on page 347 field has been added to the EOS, IO, IOCS, and PCI records in “EOS, INTG, IO, IOCS, and • The IOSQTim PCI trace records” on page 254 . • A PRECHECK option was added to the PARM parameter for SPZAP to check the SYSIN input for errors before any updates are made to the target dataset. For more information, see “Running SPZAP” on page 600 • Chapter 11, “The generic tracker facility,” on page 321 was updated to include TSO/E tracking information. For more information, see “TSO/E tracking” on page 347 . • The syntax and examples have been updated in “Using the AMDSADDD utility” on page 79 . • The CP column of the system trace table was changed from 2 characters to 4 characters. For more information, see Chapter 8, “System trace,” on page 153 . xxiv z/OS: MVS Diagnosis: Tools and Service Aids

25 Summary of changes for z/OS MVS Diagnosis: Tools and Service Aids for Version 2 Release 2 (V2R2) as updated September 2016 The following changes are made for z/OS V2R2 as updated September 2016. General content changes for z/OS MVS Diagnosis: Tools and Service Aids The following content is new, changed, or no longer included in V2R2 as updated September 2016. New The following content is new. • MGMTCLAS was added to the JCL statements for the Problem Documentation Upload Utility (PDUU). For more information, see “JCL statements for PDUU” on page 628 . • A new PDUU example was added. For more information, see “Example 12: Using a proxy server with multiple FTPCMDS DD statements” on page 637 . • The REAL parameter was added to the AMDSADMP macro. For more information, see “Syntax of the . AMDSADMP macro” on page 68 Changed The following content is changed. • All of the system trace entries in Chapter 8, “System trace,” on page 153 were updated with the latest format. • The event identifiers for USR trace records were updated. For more information, see “Event Identifiers (EIDs) for USR trace records” on page 295 . • The information about naming a logrec log stream was updated. For more information, see “Defining a . logrec log stream” on page 512 • The information about the available DASD space needed for SADMP was updated. For more information, . see “If I do dump to DASD, how much space do I need?” on page 60 Summary of changes for z/OS MVS Diagnosis: Tools and Service Aids for Version 2 Release 2 (V2R2) as updated December 2015 The following changes are made for z/OS V2R2 as updated December 2015. General content changes for z/OS MVS Diagnosis: Tools and Service Aids The following content is new, changed, or no longer included in V2R2 as updated December 2015. New The following content is new. • SYSDUMP component trace was added to the SDUMP component. For more information, see “SYSDUMP component trace” on page 402 . • CTIDMPxx parmlib member was added. For more information, see “Planning for component tracing” on page 350 . Summary of changes xxv

26 Summary of changes for z/OS MVS Diagnosis: Tools and Service Aids for Version 2 Release 2 The following changes are made for z/OS Version 2 Release 2 (V2R2). New • New section about JES3 control statement tracking in Chapter 11, “The generic tracker facility,” on page . 321 . For more information, see “JES3 control statement tracking” on page 345 • New topic about changing the logrec recording medium. For more information, see “Changing the logrec recording medium” on page 514 . • New subsections for the GTZLQRY REXX callable function, data persistence, and simplified generic tracking services added to the generic tracker facility section. For more information, see Chapter 11, . “The generic tracker facility,” on page 321 Changed • Information about recording logrec error records was updated for new functionality. For more information, see Chapter 15, “Recording logrec error records,” on page 509 . • An update to the RMODE was added to the AMBLIST output for LISTLOAD OUTPUT=XREF. For field more information, see “LISTLOAD OUTPUT=XREF output” on page 571 . • The SYSXES component trace information has been updated about the SYSXES trace buffer size. For more information, see “Prepare for specific component traces on systems in a sysplex” on page 366 and “CTnXESxx parmlib member” on page 493 , and “Requesting a SYSXES trace” on page 493 . Summary of changes for z/OS Version 2 Release 1 (V2R1) as updated February 2015 The following changes are made for z/OS Version 2 Release 1 (V2R1) as updated February 2015. In this revision, all technical changes for z/OS V2R1 are indicated by a vertical line to the left of the change. New • The HCAS (HCSAByASID), HCNO (HCSANoOwner), and HCSY (HCSASysOwner) options were added to the SDATA parameter. For details, see “Customized contents using the SDATA parameter” on page 24 . Changed • The CSA option on the SDATA parameter was updated for high virtual storage. For details, see “Customized contents using the SDATA parameter” on page 24 . Summary of changes for z/OS Version 2 Release 1 (V2R1) as updated March 2014 The following changes are made for z/OS Version 2 Release 1 (V2R1) as updated March 2014. In this revision, all technical changes for z/OS V2R1 are indicated by a vertical line to the left of the change. New • Various new and changed topics document new support for internal flash memory exploitation. The coupling facility can now migrate objects out to storage-class memory (SCM) when the number of objects exceeds a calculated threshold, then it can fetch the objects back into main CF storage when requested. xxvi z/OS: MVS Diagnosis: Tools and Service Aids

27 • Various new and changed topics document support for the new XCF Note Pad Service function. The XCF Note Pad Service is a new application programming interface that allows programs to manipulate notes in an XCF note pad. A note pad is an abstraction layered on top of the existing coupling facility list structure interfaces. You can use the new IXCNOTE macro to manipulate data in a coupling facility list structure, provided the note pad abstraction meets the needs of the application. z/OS Version 2 Release 1 summary of changes See the Version 2 Release 1 (V2R1) versions of the following publications for all enhancements related to z/OS V2R1: • z/OS Migration • z/OS Planning for Installation • z/OS Summary of Message and Interface Changes • z/OS Introduction and Release Guide Summary of changes xxvii

28 xxviii z/OS: MVS Diagnosis: Tools and Service Aids

29 Selecting tools and service aids Chapter 1. Selecting tools and service aids This topic introduces the tools and service aids that MVS provides for diagnosis. For the purposes of this tools include the other facilities provided for includes dumps and traces, while document, service aids diagnosis. For example: • SVC dump and system trace are tools • Logrec data set and AMBLIST are service aids. There are major two topics: - This topic lists problem types and • “How do I know which tool or service aid to select?” on page 1 matches them with the appropriate service aid or the appropriate tool. Use this topic to select the tool or service aid you need for a particular problem. - This topic describes each tools and service • “What tools and service aids are available?” on page 2 aids, including when to use it for diagnosis. Use this topic when you need an overview of tools and the appropriate time to use a particular tool or service aid. service aids available or to find How do I know which tool or service aid to select? This topic contains tables that provide criterion for selecting a tool or service aid, depending on the problem or need. The tables show the problem or need, the corresponding tool or service aid, and the topic or document that covers it in complete detail. (Most of the detailed information on tools and service find a tool or service aid. aids is in this document.) Use these tables to quickly specific problem. Table 1 on page 1 provides guidance on how to select the type of dump to use for a Table 1: Selecting a dump Type of dump to use What is the problem or need? Testing of an authorized program or a problem program while it is Transaction dump (see Chapter 3, “Transaction dump,” on page 49 running, especially for 64-bit applications ) SNAP dump (see Chapter 6, “SNAP dump,” on page Testing of a problem program while it is running ) 141 Abnormal end of an authorized program or a problem program ABEND dump (see Chapter 5, “ABEND dump,” on page 121 ) System problem when the system continues processing SVC dump (see Chapter 2, “SVC dump,” on page 7 ) Stand-alone dump (see Chapter 4, “Stand-alone System problem when the system stops processing or is stopped by dump,” on page 59 ) the operator because of slowdown or looping Table 2 on page 1 specific problem. provides guidance on how to select the type of trace to use for a Table 2: Selecting a trace What is the problem or need? Type of trace to use System problem: diagnosis requires checking of component events Component trace (see Chapter 12, “Component trace,” on page 349 ) Generalized trace facility (GTF) trace (see Chapter System problem: diagnosis requires detailed checking of one or two 10, “The Generalized Trace Facility (GTF),” on page system events 211 ) © Copyright IBM Corp. 1988, 2017 1

30 Selecting tools and service aids Table 2: Selecting a trace (continued) What is the problem or need? Type of trace to use System or authorized program problem: diagnosis requires the Master trace (see Chapter 9, “Master trace,” on ) messages related to a dump page 205 System problem: diagnosis requires checking many system events System trace (see Chapter 8, “System trace,” on page 153 ) System or problem program: diagnosis requires information about GETMAIN, FREEMAIN, STORAGE (GFS) trace (see Chapter 14, “GETMAIN, FREEMAIN, STORAGE allocation of virtual storage. (GFS) trace,” on page 503 ) Table 3 on page 2 problem. provides guidance on how to select the service aid to use for a specific Table 3: Selecting a service aid What is the problem or need? Type of service aid to use System or hardware problem: need a starting point for diagnosis or Logrec data set (see Chapter 15, “Recording logrec ) error records,” on page 509 when diagnosis requires an overview of system and hardware events in chronological order. AMBLIST (see Chapter 16, “AMBLIST: Map load Information about the content of load modules and program objects modules and program objects,” on page 533 ) or problem with modules on system. fixing Diagnosis requires dynamic change to a program, such as SPZAP (see Chapter 17, “SPZAP: Modify data in programs and VTOCs,” on page 589 program errors, inserting a SLIP trap match, or altering a program to ) start component trace. AMATERSE (see Chapter 18, “AMATERSE: Pack and Need to pack the diagnostic materials for transmission to another unpack a data set,” on page 621 site, and create similar data sets at the receiving site. ) Need to eliminate duplicate or unneeded dumps. DAE (see Chapter 20, “Dump suppression,” on page 639 ) ) SLIP (see z/OS MVS System Commands Diagnosis requires a trap to catch problem data while a program is running. Diagnosis requires formatted output of problem data, such as a IPCS (see z/OS MVS IPCS User's Guide ) dump or trace. What tools and service aids are available? This topic provides an overview of the tools and service aids in more detail. The tables that follow contain a brief description of each tool or service aid, some reasons why you would use it, and a reference to the topic or document that covers the tool or service aid in detail. (Most of the detailed information on tools and service aids is in this document.) The tools and service aids are covered in three tables; the dumps, traces, or service aids are listed in order by frequency of use. Table 4 on page 3 lists each type of dump and gives an overview of how they can be used. 2 z/OS: MVS Diagnosis: Tools and Service Aids

31 Selecting tools and service aids Table 4: Description of dumps Type of dump Description Use an ABEND dump when ending an authorized program or a problem program because of an ABEND Dump uncorrectable error. These dumps show: • The virtual storage for the program requesting the dump. • System data associated with the program. The system can produce three types of ABEND dumps, SYSABEND, SYSMDUMP, and SYSUDUMP. Each one dumps different areas. Select the dump that gives the areas needed for diagnosing your problem. The IBM supplied defaults for each dump are: • SYSABEND dumps - The largest of the ABEND dumps, containing a summary dump for the failing program plus many other areas useful for analyzing processing in the failing program. • SYSMDUMP dumps - Contains a summary dump for the failing program, plus some system data for the failing task. SYSMDUMP dumps are the only ABEND dumps that you can format with IPCS. • SYSUDUMP dumps - The smallest of the ABEND dumps, containing data and areas only about the failing program. Reference: See Chapter 5, “ABEND dump,” on page 121 for detailed information. Similar to SNAP dumps, an application can issue an IEATDUMP macro to dump virtual storage Transaction Dump areas of interest if the application is running. However, the result is an unformatted dump that (IEATDUMP) must be analyzed using IPCS. See Chapter 3, “Transaction dump,” on page 49 for details. SNAP Dump Use a SNAP dump when testing a problem program. A SNAP dump shows one or more areas of virtual storage that a program, while running, requests the system to dump. A series of SNAP dumps can show an area at different stages in order to picture a program's processing, dumping fields repeatedly to let the programmer check intermediate steps in calculations. one or more SNAP dumps are preformatted, you cannot use IPCS to format them. Note that a SNAP dump is written while a program runs, rather than during abnormal end. See Chapter 6, “SNAP dump,” on page 141 Reference: for detailed information. Use a stand-alone dump when: Stand-Alone Dump • The system stops processing. • The system enters a wait state with or without a wait state code. • The system enters an instruction loop. • The system is processing slowly. These dumps show central storage and some paged-out virtual storage occupied by the system or stand-alone dump program that failed. Stand-alone dumps can be analyzed using IPCS. Reference: See Chapter 4, “Stand-alone dump,” on page 59 for detailed information. SVC dumps can be used in two different ways: SVC Dumps • Most commonly, a system component requests an SVC dump when an unexpected system error occurs, but the system can continue processing. • An authorized program or the operator can also request an SVC dump when they need diagnostic data to solve a problem. SVC dumps contain a summary dump, control blocks and other system code, but the exact areas dumped depend on whether the dump was requested by a macro, command, or SLIP trap. SVC dumps can be analyzed using IPCS. See Chapter 2, “SVC dump,” on page 7 Reference: for detailed information. Table 5 on page 4 lists each type of trace and gives an overview of how they can be used. Selecting tools and service aids 3

32 Selecting tools and service aids Table 5: Description of traces Trace Description Use a component trace when you need trace data to report an MVS component problem to the Component Trace IBM Support Center. Component tracing shows processing within an MVS component. Typically, you might use component tracing while recreating a problem. The installation, with advice from the IBM Support Center, controls which events are traced for a component. See Chapter 12, “Component trace,” on page 349 Reference: for detailed information. Use GFS trace to collect information about requests for virtual storage through the GETMAIN, GFS Trace FREEMAIN, and STORAGE macro. for See Chapter 14, “GETMAIN, FREEMAIN, STORAGE (GFS) trace,” on page 503 Reference: detailed information. GTF Trace Use a GTF trace to show system processing through events occurring in the system over time. The installation controls which events are traced. GTF tracing uses more resources and processor time than a system trace. Use GTF when you are familiar enough with the problem to pinpoint the one or two events required to diagnose your system problem. GTF can be run to an external data set as well as a buffer. Reference: See Chapter 10, “The Generalized Trace Facility (GTF),” on page 211 for detailed information. Master Trace Use the master trace to show the messages most recently issued. Master trace is useful because it provides a log of these messages in a dump. These can be more pertinent to your problem than the messages accompanying the dump itself. Reference: See Chapter 9, “Master trace,” on page 205 for detailed information. Use system trace to see system processing through events occurring in the system over time. System Trace System tracing is activated at initialization and, typically, runs continuously. It records many system events, with minimal detail about each. The events traced are predetermined, except for branch tracing. This trace uses fewer resources and is faster than a GTF trace. Reference: See Chapter 8, “System trace,” on page 153 for detailed information. Table 6 on page 4 describes the service aids and how they can be used. Table 6: Description of service aids Description Service Aid AMATERSE Use the AMATERSE service aid to create a compact image of diagnostic data sets. The compact efficient transmission of image helps to use less space while retaining materials and prepare for materials from one site to another, such as to send the materials to IBM support. AMBLIST Use AMBLIST when you need information about the content of load modules and program objects or you have a problem related to the modules on your system. AMBLIST is a program that provides lots of data about modules in the system, such as a listing of the load modules, map of the CSECTs in a load module or program object, list of modifications in a CSECT, map of modules in the LPA (link pack area), and a map of the contents of the DAT-on nucleus. See Chapter 16, “AMBLIST: Map load modules and program objects,” on page 533 Reference: for detailed information. 4 z/OS: MVS Diagnosis: Tools and Service Aids

33 Selecting tools and service aids Table 6: Description of service aids (continued) Service Aid Description Common Storage Use common storage tracking to collect data about requests to obtain or free storage in CSA, Tracking ECSA, SQA, and ESQA. This is useful to identify jobs or address spaces using an excessive amount of common storage or ending without freeing storage. ™ Use RMF or the IPCS VERBEXIT VSMDATA subcommand to display common storage tracking data. References: z/OS MVS Initialization and Tuning Guide • See for detailed information on requesting common storage tracking. z/OS MVS Diagnosis: Reference • See the VSM chapter of for information on the IPCS VERBEXIT VSMDATA subcommand. Use dump analysis and elimination (DAE) to eliminate duplicate or unneeded dumps. This can DAE help save system resources and improve system performance. See Chapter 20, “Dump suppression,” on page 639 Reference: for detailed information. IPCS Use IPCS to format and analyze dumps, traces, and other data. IPCS produces reports that can help in diagnosing a problem. Some dumps, such as SNAP and SYSABEND and SYSUDUMP ABEND dumps, are preformatted, and are not formatted using IPCS. See z/OS MVS IPCS User's Guide Reference: for detailed information. Use the logrec data set as a starting point for problem determination. The system records Logrec Data Set hardware errors, selected software errors, and selected system conditions in the logrec data set. Logrec information gives you an idea of where to look for a problem, supplies symptom data about the failure, and shows the order in which the errors occurred. See Chapter 15, “Recording logrec error records,” on page 509 Reference: for detailed information. SLIP Traps Use serviceability level indication processing (SLIP) to set a trap to catch problem data. SLIP can intercept program event recording (PER) or error events. When an event that matches a trap occurs, SLIP performs the problem determination action that you specify: • Requesting or suppressing a dump. • Writing a trace or a logrec data set record. • Giving control to a recovery routine. • Putting the system in a wait state. • Issuing system commands See the SLIP command in z/OS MVS System Commands Reference: for detailed information. SPZAP Use the SPZAP service aid to dynamically update and maintain programs and data sets. For problem determination, you can use SPZAP to: • Fix program errors by replacing a few instructions in a load module or member of a partitioned data set (PDS). • Insert an incorrect instruction in a program to force an ABEND or make a SLIP trap work. • Alter instructions in a load module to start component trace. • Replace data directly on a direct access device to reconstruct a volume table of contents (VTOC) or data records that were damaged by an input/output (I/O) error or program error. See Chapter 17, “SPZAP: Modify data in programs and VTOCs,” on page 589 Reference: for detailed information. Selecting tools and service aids 5

34 Selecting tools and service aids 6 z/OS: MVS Diagnosis: Tools and Service Aids

35 SVC dump Chapter 2. SVC dump An SVC dump provides a representation of the virtual storage for the system when an error occurs. Typically, a system component requests the dump from a recovery routine when an unexpected error occurs. However, an authorized program or the operator can also request an SVC dump when diagnostic dump data is needed to solve a problem. An SVC dump comes in the following types, depending on how it was requested. Note that the type of dump requested determines its contents. • Asynchronous SVC dump (scheduled SVC dump): The system issues an instruction or the caller uses a combination of parameters on the SVC dump macro invocation. SVC dump captures all of the dump data into a set of data spaces then writes the dump data from the data spaces into a dump data set. The system is available for another SVC dump upon completion of the capture phase of the dump. In an asynchronous SVC dump, the summary dump and can be considered more useful for diagnosis. first data is captured • Synchronous SVC dump: The requester's SVC dump macro invocation issues an instruction to obtain the dump under the current task. The system returns control to the requester once the dump data has been captured into a set of data spaces. SVC dump processing then writes the dump data from the data spaces into a dump data set. The system is available for another SVC dump upon completion of the capture phase of the dump. In a synchronous SVC dump, the summary dump data is captured last. Each SVC dump also contains a summary dump, if requested. Because dumps requested from disabled, locked, or SRB-mode routines cannot be handled by SVC dump immediately, system activity overwrites much useful diagnostic data. The summary dump supplies copies of selected data areas taken at the time of the request. Specifying a summary dump also provides a means of dumping many predefined data areas simply by specifying one option. Summary dump data is dumped using ASID(X'aaaa') SUMDUMP records and ASID(X'aaaa') DSPNAME(dddddddd) SUMDUMP records. The IPCS user has the option of causing storage dumped in these records also to be mapped as ASID(X'aaaa') or ASID(X'aaaa') DSPNAME(dddddddd) storage. Message BLS18160D is displayed during dump initialization when TSO options permit. If the TSO prompting and the IPCS options confirmation confirmation prompting and IPCS don't permit, the additional mapping is performed. Selective display of ASID(X'aaaa') SUMDUMP or ASID(X'aaaa') DSPNAME(dddddddd) SUMDUMP storage might be requested by referring to those address spaces. This section includes information system programmers need to know about SVC dump and SVC dump processing: • “Using automatically allocated dump data sets” on page 8 • “Using pre-allocated dump data sets” on page 12 • “Choosing SVC dump data sets” on page 13 • “Obtaining an SVC dump” on page 16 • “Printing, viewing, copying, and clearing a pre-allocated or SYS1.DUMPxx data set” on page 22 • “Contents of SVC dumps” on page 23 • “Analyzing summary SVC dumps” on page 33 • “Analyzing an SVC dump” on page 36 See z/OS MVS Programming: Authorized Assembler Services Guide for information any programmer needs to know about programming the SDUMP or SDUMPX macros to obtain an SVC dump: • Deciding when to request an SVC dump • Understanding the types of SVC dumps that MVS produces © Copyright IBM Corp. 1988, 2017 7

36 SVC dump • Designing an application program to handle a specific type of SVC dump • Identifying the data set to contain the dump Defining the contents of the dump • • Suppressing duplicate SVC dumps using dump analysis and elimination (DAE) Planning data set management for SVC dumps SVC dump processing stores data in dump data sets that the system allocates automatically, as needed, or that you pre-allocate manually. IBM recommends the use of automatically allocated dump data sets whenever possible. Only the space required for the dump being written is allocated. The dump is written using a system-determined block size, so write time is reduced. SMS extended attributes, such as compression and striping, can be assigned to further reduce the amount of space required and the time to write. IBM recommends using extended format sequential data sets as dump data sets for SVC Dumps. For the . reasons why, see “Choosing SVC dump data sets” on page 13 Use pre-allocated dump data sets only as a back up, in case the system is not able to automatically allocate a data set. Otherwise, the dump can become truncated, making error diagnosis difficult. Using automatically allocated dump data sets SVC dump processing supports automatic allocation of dump data sets at the time the system writes the dump to DASD. Automatically allocated dumps will be written using the system-determined block size. The dump data sets can be allocated as SMS-managed or non-SMS-managed, depending on the VOLSER defined on the DUMPDS ADD command. When the system captures a dump, it allocates a or SMS classes data set of the correct size from the resources you specify. See “Choosing SVC dump data sets” on page 13 for DFSMS support of extended format sequential data sets. Using Extended Format Sequential data sets, the maximum size of the dump can exceed the size allowed for non-SMS managed data sets. If automatic allocation fails, pre-allocated dump data sets are used. If no pre-allocated SYS1.DUMPnn data sets are available, message IEA793A is issued, and the dump remains in virtual storage. SVC Dump periodically retries both automatic allocation and writing to a pre-allocated dump dataset until successful or until the captured dump is deleted either by operator intervention or by the expiration of the CHNGDUMP MSGTIME parameter governing message IEA793A. If you set the MSGTIME value to 0, the system will not issue the message, and it deletes the captured dump immediately. Naming automatically allocated dump data sets The installation has control of the name of the data sets created by the automatic allocation function, and you can select a name-pattern to allow for dump data set organization according to your needs. The name is determined through an installation-supplied pattern on the DUMPDS command. A set of symbols is available so that you can include the following kinds of information in the names of your automatically allocated dump data sets: • System name • Sysplex name • Job name • Local and GMT time and date • Sequence number You can specify a name-pattern to generate any name acceptable under normal MVS data set name standards. The only requirement is that you include the sequence number symbol to guarantee each automatically allocated dump data set has a unique name. 8 z/OS: MVS Diagnosis: Tools and Service Aids

37 SVC dump Using automatic allocation of SVC dump data sets You can specify the command instructions to enable or disable automatic allocation either in the COMMNDxx parmlib member, to take effect at IPL, or from the operator console at any time after the IPL, to dynamically modify automatic allocation settings. The DUMPDS command provides the following flexibility: • Activate automatic allocation of dump data sets • Add or delete allocation resources • Direct automatic allocation to SMS or non-SMS managed storage • Deactivate automatic allocation of dump data sets • Reactivate automatic allocation of dump data sets • Change the dump data set naming convention Set up automatic allocation with the following steps: • Set up allocation authority • Establish a name pattern for the data sets resources for storing the data sets Define • • Activate automatic allocation After automatic allocation of these SVC dump data sets is active, allocation to a DASD volume is done starting with the first resource allocated via the DUMPDS ADD command. When allocation to that volume is no longer successful, the next resource is then used. SVC Dump data sets can be SMS-managed or non-SMS-managed. If the DUMPDS ADD command defined pass these classes to the ACS routines to try to allocate the SVC first SMS classes, then the allocation will dump data set as SMS-managed. If this allocation is not successful for any reason, or if no SMS classes then the data set allocation will use the DASD volumes that were defined are defined, on the DUMPDS ADD command, and the SVC Dump data set will be allocated as non-SMS-managed. SVC Dump data sets allocated as non-SMS-managed must be single volume; they can have multiple extents but they cannot span multiple volumes. Non-SMS-managed DASD does not support striping. SVC Dump data sets allocated as SMS-managed can be multi-volume only if they are allocated as striped data defined sets. Striping is an attribute that must be in the SMS classes. Striping and compression, another SMS attribute, can be used to allocate datasets that are larger than those allowed for a pre-allocated or non-SMS managed dataset. Note: You must update automatic class selection (ACS) routines to route the intended data set into SMS- management so that it is assigned a storage class. Setting up allocation authority To allocate dump data sets automatically, the DUMPSRV address space must have authority to allocate new data sets. Do the following: 1. Associate the DUMPSRV address space with a user ID. ® STARTED general resource class or the RACF Started Procedures Table, ICHRIN03, to Use the RACF associate DUMPSRV with a user id. 2. Authorize DUMPSRV's user ID to create new dump data sets using the naming convention in the following topic. qualifier group data sets. You can assign of SYS1, the data sets are considered With the high-level CREATE group authority to the DUMPSRV user ID within that group. See z/OS Security Server RACF System Programmer's Guide for information about the RACF STARTED z/OS Security Server RACF Security general resource class, and the RACF Started Procedures Table. See for information on using the RACF STARTED general resource class, and on Administrator's Guide controlling creation of new data sets. SVC dump 9

38 SVC dump Establishing a name pattern Establishing the name pattern for the dump data sets is accomplished by the DUMPDS NAME= command. Names must conform to standard data set naming conventions and are limited to 44 characters, including z/OS DFSMS Using Data qualifiers. periods used as delimiters between For a complete description, see . To allow meaningful names for the dump data sets, several symbols are provided that are resolved Sets when the dump data is captured in virtual storage. For a complete list of the symbols you can use, see the z/OS MVS System Commands explanation of DUMPDS NAME= in . When determining the pattern for the dump data set names, consider any automation tools you may have at your installation that work on dump data sets. Also, the automatic allocation function requires you to include the &SEQ. sequence number symbol in your data set name pattern to guarantee unique data set names. If you do not use the sequence number, the system rejects the name pattern with message IEE855I and the previous name pattern remains in effect. By default, the system uses one of three name patterns. The system typically uses the normal pattern SYS1.DUMP.D&DATE..T&TIME..&SYSNAME..S&SEQ; . The system automatically uses S&SYSNAME convention when the system name begins with numeric and is less than 8 characters long. For example: SYS1.DUMP.D&YYMMDD..T&HHMMSS..S&SYSNAME..S&SEQ. or • when the system name • SYS1.DUMP.D&YYMMDD..T&HHMMSS..S&SYSNAME(2&colon.8)..S&SEQ begins with numeric and is 8 characters long. Figure 1 on page 10 describes the default name pattern. SYS1 . DUMP . D &DATE. . T &TIME. . &SYSNAME. . S &SEQ. ─┬── │ │ ──┬─── │ │ ──┬─── ─┬── ───┬───── │ │ ──┬── │ │ │ │ │ │ │ │ ┌┘ │ │ │ │ │ │ │ │ ┌─┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌──┘ │ │ │ │ │ │ │ │ │ │ │ │┌───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ ┌────┘ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ ┌─────┘ │ │ │ │ │ │ │ │ │ │ ││ │ │┌──────┘ │ │ │ │ │ │ │ │ ││ │ ││ ┌───────┘ │ │ │ │ │ │ ┌────────┘ │ ││ │ ││ │ │ │ │ │ │ │ │ │ ││ │ ││ │ │ ┌─────────┘ │ │ │ │ │ │ │ ││ │ ││ │ │ ┌────────────┘ │ │ │ │ │ │ ││ │ ││ │ │ │ │┌─────────────┘ │ │ │ │ ││ │ ││ │ │ │ ││ ┌──────────────┘ │ │ │ ││ │ ││ │ │ │ ││ │ ↓ ↓ ↓ ↓↓ ↓ ↓↓ ↓ ↓ ↓ ↓↓ ↓ SYS1.DUMP.D930428.T110113.SYSTEM1.S00000 Figure 1: Default name pattern for automatically allocated dump data set While the default data sets begin with a high-level of SYS1, this convention is no longer a Note: qualifier requirement for data sets named by your installation. Notice that the symbols are resolved into date, time, and sequence numerics, so they are preceded by an alphabetic character to conform to MVS data set name requirements. Also, the symbol starts with an ampersand (&) and ends with a period (.), resulting in a name pattern that has double periods when a symbol qualifier. One period ends the symbol, and the second serves as the delimiter between finishes a of the generated data set name. qualifiers Defining resources for dump data sets If allocation is active, SVC dump data sets can be automatically allocated as soon as resources are to store them. If you have not changed the name pattern, then the system default is used. See defined . You can define dump data set resources using the DUMPDS “Establishing a name pattern” on page 10 ADD,VOL=volser (for DASD volumes) and DUMPDS ADD,SMS=class (for SMS classes) commands. You can remove resources using the DUMPDS DEL,VOL=volser and DUMPDS DEL,SMS=class commands. Automatic allocation is directed to SMS classes in preference to DASD volumes. When automatic allocation is inactive, dumps are written to pre-allocated SYS1.DUMPxx data sets. definitions, however. So, if Deactivating automatic allocation does not result in the loss of resource automatic allocation is reactivated, all the previous resources remain available for receiving automatically allocated dump data sets. Similarly, removing the last allocation resource will not cause automatic 10 z/OS: MVS Diagnosis: Tools and Service Aids

39 SVC dump allocation to be inactive. Removing the last allocation resource effectively ‘turns off’ the function, though, resources were full. In both cases the system responds with message IEA799I just as if all the defined and dumps are written to pre-allocated SYS1.DUMPxx data sets if they exist. Otherwise the dump remains captured until: • You create a place for it • The established time limit, as indicated by the CHNGDUMP MSGTIME parameter, expires • The operator deletes the dump. Activating automatic allocation By default, automatic allocation is inactive after IPLing the system. However, you can add to your COMMNDxx parmlib member the DUMPDS NAME= command, any DUMPDS ADD commands, and the DUMPDS ALLOC=ACTIVE command to activate automatic allocation during IPL. If you have turned off automatic allocation using ALLOC=INACTIVE, reactivate it by entering the DUMPDS ALLOC=ACTIVE operator command. Verifying dump status To verify dump status issue the DISPLAY DUMP,STATUS command. For example, after IPLing SYSTEM1 specifying DUMP=NO as a system parameter, and without requesting any dumps or specifying any DUMPDS or CHNGDUMP commands, the output shown in Figure 2 on page 11 would be expected as a result of the DISPLAY DUMP,STATUS command: IEE852I 10.56.03 SYS1.DUMP STATUS SYS1.DUMP DATA SETS AVAILABLE=000 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00000500M AUTOMATIC ALLOCATION IS: INACTIVE NO SMS CLASSES DEFINED NO DASD VOLUMES DEFINED NAME=SYS1.DUMP.D&DATE..T&TIME..&SYSNAME..S&SEQ. EXAMPLE=SYS1.DUMP.D930324.T105603.SYSTEM1.S00000 Figure 2: Example: verifying dump status Now assume that the following steps are performed to establish the automatic allocation function: 1. Set up your installation data set name pattern using the DUMPDS command: DUMPDS NAME=&SYSNAME..&JOBNAME..Y&YR4.M&MON..D&DAY.T&HR.&MIN..S&SEQ. Note: This step is only required if you are not using the default name pattern as shown in Figure 1 on . page 10 2. Add dump data set resources that can be used by the automatic allocation function: DUMPDS ADD,VOL=(SCRTH1,HSM111) DUMPDS ADD,SMS=(DUMPDA) 3. Activate automatic dump data set allocation using the DUMPDS command: DUMPDS ALLOC=ACTIVE Note: These steps can be performed after IPL using the DUMPDS command from an operator console, or early in IPL by putting the commands in the COMMNDxx parmlib member and pointing to the member from the IEASYSxx parmlib member using CMD=xx. If you use COMMNDxx, you may want to specify DUMP=NO in the IEASYSxx parmlib member to prevent dumps taken during IPL from being written to SYS1.DUMPxx data sets. SVC dump 11

40 SVC dump After issuing the DUMPDS commands shown in steps “1” on page 11 through “3” on page 11 , requesting dump status would be as shown Figure 3 on page 12 . SYSTEM1 IEE852I 12.34.18 SYS1.DUMP STATUS 886 SYS1.DUMP DATA SETS AVAILABLE=000 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00000500M AUTOMATIC ALLOCATION IS: ACTIVE AVAILABLE SMS CLASSES: DUMPDA AVAILABLE DASD VOLUMES: SCRTH1,HSM111 NAME=&SYSNAME..&JOBNAME..Y&YR4.M&MON..D&DAY.T&HR.&MIN..S&SEQ. EXAMPLE=SYSTEM1.#MASTER#.Y1994M01.D26T1634.S00000 Figure 3: Example of dump status Managing automatically allocated dump data sets Automatic allocation of dump data sets is managed through the DUMPDS command. Placing appropriate commands into the COMMNDxx parmlib member allows the function to be established at IPL. The DISPLAY DUMP command can display information about the last 100 data sets that were automatically allocated during the current IPL. Typical dump inventory management should be done using the Sysplex Dump Directory. The System Dump Directory provides access to all of the cataloged and added dump data sets created across system IPLs. Details about using the User and Sysplex Dump Directory can be found in z/OS MVS IPCS User's Guide . The installation must manage the space allocated to dump data sets by limiting the volumes (non-SMS) or the classes (SMS) available for automatic allocation of dump data sets. z/OS MVS System Commands contains the syntax of the DUMPDS ADD, DEL, and ALLOC=ACTIVE commands. . z/OS DFSMSdfp Storage Administration For more information about SMS, see Using pre-allocated dump data sets Pre-allocated dump data sets should be used as a backup method to automatic allocation. Like the automatically allocated dump data sets, pre-allocated dump data sets will hold SVC dump information for later review and analysis, but have size and performance limitations that automatically allocated dump data sets do not have. This section describes how to set up pre-allocated data sets for SVC dump, including: • “Allocating SYS1.DUMPxx data sets with secondary extents” on page 12 • “Specifying SYS1.DUMPxx data sets” on page 15 • “Controlling SYS1.DUMPxx data sets” on page 15 Allocating SYS1.DUMPxx data sets with secondary extents Allocate SYS1.DUMPxx data sets using the following requirements: is decimal 00 through 99. • Name the data set SYS1.DUMPxx, where xx • Select a device with a track size of 4160 bytes. The system writes the dump in blocked records of 4160 bytes. file (EOF) record as the first record. (If you use ISPF 3.2 to allocate • Initialize with an end-of first track.) SYS1.DUMPxx data sets, the EOF record will be automatically written on the • Allocate the data set before requesting a dump. Allocation requirements are: – UNIT: A permanently resident volume on a direct access device. – DISP: Catalog the data set (CATLG). Do not specify SHR. – VOLUME: Place the data set on only one volume. Allocating the dump data set on the same volume as the page data set could cause contention problems during dumping, as pages for the dumped address space are read from the page data set and written to the dump data set. 12 z/OS: MVS Diagnosis: Tools and Service Aids

41 SVC dump – SPACE: An installation must consider the size of the page data set that will contain the dump data. by the MAXSPACE The data set must be large enough to hold the amount of data as defined parameter on the CHNGDUMP command, VIO pages, and pageable private area pages. when large SVC dump processing improves service by allowing secondary extents to be specified dump data sets are too large for the amount of DASD previously allocated. An installation can protect itself against truncated dumps by specifying secondary extents and by leaving sufficient space on volumes to allow for the expansion of the dump data sets. For the SPACE keyword, you can specify CONTIG to make reading and writing the data set faster. Request enough space in the primary extent to hold the smallest SVC dump expected. Request enough space in the secondary extent so that the primary plus the secondary extents can hold the largest SVC dump. The maximum size of a data set is 65,535 tracks. For a 3390 this is 4369 cylinders, and will hold about 2.8 gigabytes of data. The actual size of the dump depends on the dump options in effect when the system writes the dump. Estimate the largest dump size as follows: Bytes of SDATA options + bytes in largest region size = Result1 Result1 * number of address spaces in dump = Result2 PLPA * 20% = Result3 Bytes of requested data space storage = Result4 Result2 + Result3 + Result4 = Bytes in SVC dump Where: - Result1, Result2, Result3, Result 4 : Intermediate results SDATA options : Described in “Contents of SVC dumps” on page 23 - PLPA : Pageable link pack area - For the size of the smallest dump, use the default options for the SDUMPX macro. The difference between the largest dump and the smallest dump will be the size of the secondary extent. For example, to calculate the largest amount of storage required for a 3390 DASD, assume that, from the preceding calculations, the records needed for the SVC dump amount to 43200 kilobytes. There are 11 records per track and 15 tracks per cylinder. To determine the number of cylinders needed to allocate a data set of this size, do the following: • For 43200 kilobytes of storage, you will need space for 10800 SVC dump records (43200 / 4 kilobytes per record). • With 11 records per track, you will require 982 (10800 / 11 records) tracks. • Therefore, the data set would require 66 cylinders (982 / 15 tracks per cylinder) for allocation. If you are not receiving the dump data you require, increase the size of the dump data set. You Note: will receive system message IEA911E. The system writes only one dump in each SYS1.DUMPxx data set. Before the data set can be used for another dump, clear it using the DUMPDS command with the CLEAR keyword. z/OS MVS Programming: Authorized Assembler Services Reference LLA-SDU for information about the See z/OS MVS System Commands for information about default dump options of the SDUMPX macro. See using the DUMPDS command. Choosing SVC dump data sets IBM recommends using extended format sequential data sets as dump data sets for SVC Dumps. Extended format sequential data sets: • Have a greater capacity than sequential data sets • Support striping SVC dump 13

42 SVC dump • Support compression Greater capacity : Some dump data sets are quite large compared with other data sets generated by a system. An extended format sequential data set can hold the largest SVC dumps, as much as 128 gigabytes. stripes Support for striping , of a data set across multiple volumes and uses : Striping spreads sections, or independent paths, if available, to those volumes. The multiple volumes and independent paths accelerate sequential reading and writing of the data set, reducing the time during which dump I/O competes with production I/O. It is recommended that the number of stripes match the number of volumes you use. This combination will yield the best performance because MVS data management allows random access to any record as though it appeared on a single volume. This is particularly useful during an IPCS analysis of a dump. The savings when loading the data set are real but smaller, the result of reducing the number of times end of volume processing comes into play. In a striped data set, when the last volume receives a stripe, the next stripes are placed on the first volume. volume, the second volume, the third, and so on to the last volume, then back to the first benefit If you use more than six dozen stripes, the performance of each additional stripe is much less than of adding the earlier stripes. Keep in mind that this is talking about the original benefit the performance data set definition. You can not add stripes to an existing striped data set. You must plan ahead. The faster processing speeds up moving dump data from relatively expensive data space storage to less expensive DASD. Support for compression : Compression allows dump data sets to use less DASD space. Before using compression, consider the following: efficient • Compression and decompression trade off processing cycles for more use of DASD. If hardware higher. compression is not available, the number of processing cycles is significantly : In z/OS V1R7 and later releases, sequential data sets that use Using DSNTYPE=LARGE DSNTYPE=LARGE are allowable for SVC dumps when the systems that are involved in processing a DSNTYPE=LARGE data set are migrated to V1R7 prior to their use. If analysis using an earlier release is required, use z/OS V1R7 to transcribe the dump into a data set supported by the earlier release. Placing dump data sets in cylinder-managed space : In z/OS V1R11 and later releases, extended format sequential data sets can be placed in either track-managed space or cylinder-managed space. SVC dump fully supports placement of dump data sets in cylinder-managed space. Finding automatically allocated dump data sets The AUTODSN= parameter of the DISPLAY DUMP,TITLE operator command enables you to list up to 100 of the most recent dump data sets that were automatically allocated during this IPL. No information is preserved about data sets that were automatically allocated before the last 100. As an example, if you wanted to see the titles of the last 5 automatically allocated dump data sets, you would issue: DISPLAY DUMP,TITLE,AUTODSN=5 z/OS MVS For complete information on the use of the DISPLAY DUMP command, see DISPLAY DUMP in System Commands . Communication from the system The system communicates about automatic allocation of dump data sets using two messages: • IEA611I is issued when a complete or partial dump is taken to an automatically allocated dump dataset. IEA611I is an informational message, it will not be issued highlighted. • IEA799I is issued once per captured dump when automatic allocation fails; it will not be re-issued as a result of automatic allocation failing for subsequent attempts to allocate the same dump data set unless the reason text is different. 14 z/OS: MVS Diagnosis: Tools and Service Aids

43 SVC dump Specifying SYS1.DUMPxx data sets When planning SYS1.DUMPxx data sets, remember that the data sets frequently contain sensitive data confidential information, logon passwords, encryption keys, etc.). Protect these data (user or installation sets with RACF to limit access to them. The installation can specify SYS1.DUMPxx data sets in two ways: • IBM recommends that you use the DUMPDS operator command through the COMMNDxx parmlib member. Use the DUMPDS ADD command within the COMMNDxx parmlib member to ensure that all interaction with the dump data set occurs through the DUMPDS command. For example, to specifically add data set SYS1.DUMP05, enter: COM='DUMPDS ADD,DSN=05' • During system initialization, in the DUMP parameter in the IEASYSxx parmlib member. Specify DUMP=NO in the IEASYSxx parmlib member. Otherwise, all available data sets will be allocated before the COMMNDxx parmlib member is processed. The data sets are on direct access only. The maximum number of SYS1.DUMPxx data sets an installation can have is 100. The direct access data set must be on a permanently resident volume; that is, the data set must be allocated and cataloged. These dump data sets cannot be shared by more than one system. All dump data sets should not be on the same pack. A pack should contain enough storage to allow the dump data sets to allocate secondary extent space, if needed. For more information, see the following references: • See z/OS MVS Initialization and Tuning Reference for information about the IEACMDxx and IEASYSxx parmlib member. • See z/OS MVS System Commands for information about using the DUMPDS command. Controlling SYS1.DUMPxx data sets After system initialization, use the following to change and control these data sets: • Copy the dump from the SYS1.DUMPxx data set to another data set; then clear the SYS1.DUMPxx data set, so that it can be sued for another dump. You can use IPCS to format and view or print the copied dump, as described in the following topic. • Use the DUMPDS operator command to: – Add more SYS1.DUMPxx data sets on direct access for SVC dumps. – Delete SYS1.DUMPxx data sets for SVC dumps. – Clear a SYS1.DUMPxx data set containing a dump by writing an EOF mark as the first record. An EOF mark as the first record makes the data set available for another dump. A reIPL is not necessary when adding, deleting, or clearing a data set with the DUMPDS operator command. • Use the REPLY command to system message IEA793A to cancel a dump. • Use a post dump exit routine to copy the dump to another data set. IEAVTSEL is an SVC dump post dump exit name list that lists the module names of installation exit routines to be given control when dump processing ends. For more information, see the following references: z/OS MVS Installation Exits • See for more information about the IEAVTSEL post dump exit name list. z/OS MVS IPCS Commands for the IPCS COPYDUMP subcommand. • See z/OS MVS System Commands for the DUMPDS and REPLY operator commands. • See SVC dump 15

44 SVC dump Obtaining an SVC dump Obtain an SVC dump by: Using a SDUMP or SDUMPX macro in an authorized program. Entering the DUMP or SLIP operator command Setting a SLIP in the IEASLPxx parmlib member. When z/OS takes an SVC dump, it copies data into the DUMPSRV owned data spaces and high virtual storage. The collection of data can introduce an unusually heavy burden on storage resources. The virtual storage load remains until the dump is written out to a target data set on DASD. The data set can be: specified on the DCB parameter of the SDUMP or SDUMPX macro. SVC dump data set that is Pre-allocated SYS1.DUMPxx data set, or automatically allocated dump data set. Use the DUMPDS operator command to manage the pre-allocated and automatically allocated data sets. When an SVC dump occurs, if normal auxiliary storage use rises above 30%, the system might experience severe performance problems. The system might also experience an 03C wait state, which indicates that the system ran out of available paging slots. You can use the MAXSPACE and AUXMGMT options on the CHNGDUMP SET, SDUMP command to manage the burden of taking SVC dumps on a system. Using the sufficient options might not be to eliminate the problems that are associated with the restricted auxiliary (paging) storage. • The MAXSPACE value restricts the virtual storage available to the DUMPSRV address space. When you use MAXSPACE, the installation must tune for the worst case usage of real and auxiliary storage. The following rules apply: If the installation does not have a history that can be drawn upon, see “Allocating SYS1.DUMPxx data sets with secondary extents” on page 12 for help in determining a maximum data set size. Use a multiple of the data set size to determine a MAXSPACE value. The installation must predict the size configure. of the largest dump that it can The paging resources for the affected systems must also be increased to accommodate the additional load that is represented by the MAXSPACE value. The minimum value for defining the additional auxiliary storage capacity must be three times the MAXSPACE value. Adhering to the MAXSPACE guideline can maintain utilization within 30%. • When you specify the AUXMGMT=ON parameter, the installation disregards first failure data capture (FFDC) to maintain system availability. The following rules apply: – No new dumps are allowed when auxiliary storage usage reaches 50%. New dumps can be initiated after the auxiliary storage usage drops below 35%. – Current SDUMP data capture stops when auxiliary storage usage exceeds 68%, and generates a partial dump. in For more information about setting the MAXSPACE or AUXMGMT value, see the CHNGDUMP command z/OS MVS System Commands Requesting dumps from multiple systems In a sysplex, you probably need dumps from more than one system to collect all of the problem data. These dumps must be requested at the same time. To request multiple dumps, use the following procedures on any of the systems that might be part of the problem: • Enter a DUMP command with a REMOTE parameter. • Issue a SDUMPX macro with a REMOTE parameter. • Create a SLIP trap in an IEASLPxx parmlib member in the shared SYS1.PARMLIB or in the parmlib on each system. 16 z/OS: MVS Diagnosis: Tools and Service Aids

45 SVC dump – Sometimes you cannot predict which system has the problem. Use a ROUTE operator command to Each trap must include a REMOTE activate the traps on all systems with similar configurations. parameter to dump all the other systems that might be involved. and ? To help you set the requests, the commands and macro can contain the wildcard characters * . Use wildcard characters when an installation has names that form patterns to the systems in the sysplex and to the jobs for associated work. and ? to specify job names. Use TRANS? For example, use wildcard characters * for the job names TRANS* TRANS1, TRANS2, and TRANS3 and for TRANS1, TRANS12, and TRANS123. Issuing a macro for SVC dump To request an SVC dump iIn an authorized program, use an SDUMP or SDUMPX macro. The system writes the dump in a SYS1.DUMPxx data set or, if specified in the macro, in a user-supplied data set. For example, to dump the default contents listed in “Contents of SVC dumps” on page 23 to a SYS1.DUMPxx data set, enter the following command: SDUMPX If the dump is written to a user-supplied SVC dump data set, the program provides a data control block (DCB) for the data set, opens the DCB before issuing the SDUMP or SDUMPX macro, and closes the DCB after the dump is written. For a synchronous dump, the close should occur when the system returns control to the requester. For a scheduled dump, the close should occur when the ECB is posted or when the SRB is scheduled. As another example, to write a synchronous dump to a data set whose DCB address is in register 3, you would specify the following command: SDUMPX DCB=(3) See z/OS MVS Programming: Authorized Assembler Services Guide for information about requesting a scheduled SVC dump and a synchronous SVC dump. Operator activities From a console with master authority, the operator can enter either of the following commands: • DUMP operator command. The following DUMP operator command will write an SVC dump: DUMP COMM=(MYDUMP1 5-9-88) – To a SYS1.DUMPxx data set – With a dump title of “MYDUMP1 5-9-88” – With the default contents listed in “Contents of SVC dumps” on page 23 – For a job named MYJOB1 The system will respond with the message: * 23 IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND Ask the operator to reply: REPLY 23,JOBNAME=MYJOB1 REPLY 23,U to IEE094D, the system dumps the current address Note that if the operator replies space, which is the master scheduler address space. The operator must use an ASID, JOBNAME, or TSONAME parameter in the reply to obtain other dumps. Use the DUMPDS command to produce a scheduled SVC dump. SVC dump 17

46 SVC dump • SLIP operator command with an ACTION option of STDUMP, SVCD, SYNCSVCD, or TRDUMP. For example, the following SLIP operator command will write an SVC dump: – To a SYS1.DUMPxx data set – When a program check interruption occurs in a job named MYJOB1 – With the default contents shown in “Contents of SVC dumps” on page 23 SLIP SET,ACTION=SVCD,ERRTYP=PROG,JOBNAME=MYJOB1,END The SLIP command produces a scheduled SVC dump. Operator command in an IEASLPxx parmlib member The installation can also place SLIP operator commands in IEASLPxx parmlib members to produce an SVC dump. When a command is needed, the operator dynamically sets the IEASLPxx member containing the needed SLIP command. The installation can place SLIP commands that request different types of SLIP traps in different IEASLPxx members. z/OS See z/OS MVS System Commands for details about the DUMP and SLIP operator commands. See for information aoutt the IEASLPxx member. MVS Initialization and Tuning Reference Operator command in an IEADMCxx parmlib member IEADMCxx enables you to supply DUMP command parameters through a parmlib member. IEADMCxx enables the operator to specify the collection of dump data by issuing a DUMP command, indicating the name of the parmlib member and any symbolic substitution variables. Since z/OS Release 2, a number of sample DUMP command parmlib members are delivered in to, for example, system names, address space names, and so on, are SYS1.SAMPLIB. Modifications specific potentially required to deal with each installation's requirements. In some cases, substitution variables are supplied to provide an example of how an installation could use them. The length of the sample substitution variable name might not for the values that are Note: suffice actually used at a particular site. For example, &job in IEADMCAS can only accommodate job names that are 4 characters or less. To accommodate up to eight characters, change the variable to something like &thisjob. copy into a data set in your parmlib Therefore, to take advantage of these members, save a modified concatenation. Table 7 on page 18 summarizes the sample dump commands that z/OS supplies in SYS1.SAMPLIB. Table 7: Sample operator DUMP command members in SYS1.SAMPLIB Suspected Member Name Areas Dumped Symbolics Used Remote Option Used Problem Area APPC transaction environment, including RRS IEADMCAR APPC Allocation Autoswitch and XCF, with affected &job IEADMCAS Shared Tape Y job IEADMCCA Catalog Catalog address space and associated areas Console CONSOLE address space and its data spaces IEADMCCN CP/SM Y IEADMCCP CICSplex SM environment on all systems in the sysplex. This includes the CAS, CMAS and EYU address spaces. ® DB2 distributed DB2/RRS environment Y IEADMCD2 transactions 18 z/OS: MVS Diagnosis: Tools and Service Aids

47 SVC dump Table 7: Sample operator DUMP command members in SYS1.SAMPLIB (continued) Member Name Remote Areas Dumped Suspected Symbolics Used Option Used Problem Area JES2 Y IEADMCJ2 JES2/XCF environment on current and &SYSTM system specified ® System Logger, RLS and CICS Logger/CICS IEADMCLC IEADMCLG Logger/GRS System Logger and GRS on all systems in the Y sysplex Logger, XCF, ALLOC, CATALOG, GRS, DFHSM, General Logger IEADMCLS Y &STRNAME Problem &STRNAME2 structure, on all specified and SMS along with systems in the sysplex. IEADMCLX Logger/XCF Y System Logger and XCF on all systems in the sysplex OMVS Y IEADMCOE OMVS RRS and the System Logger on all systems in IEADMCRL Y RRS the sysplex RRS and its data spaces RRS IEADMCRR ™ IMS Shared Queues environment (IMS IMS IEADMCSQ Y Control region, CL/I SAS Region, DBRC Region, and all of the CQS address spaces connected to the shared queues IEADMCTA TCP/IP TCP/IP, along with the specified application &tcp &appl TCP/IP TCP/IP, along with the Comm Server address IEADMCTC &tcp space IEADMCTI &tcp TCP/IP TCP/IP and its data space TCP/IP and OMVS IEADMCTO &tcp TCP/IP ® VTAM &tcp &net Comm Server IEADMCVC and TCP/IP, with the TCPIP and VTAM data spaces VTAM Generic Resources environment, with IEADMCVG Y VTAM GR its CF structure Comm Server &tcp &net IEADMCVT VTAM and TCP/IP (address spaces only) VTAM and the VIT data space &net IEADMCVV VTAM WLM WLM on all systems in the sysplex Y IEADMCWL Web server IEADMCWS HTTP web server with OMVS HTTP web server and TCP/IP Web server IEADMCWT IEADMCXI IRLM XCF and IRLM IRLM XCF and IRLM on all systems in the sysplex Y IEADMCX1 CEA CEA IEADMCZM Note: 1. When specifying parmlib members containing symbolic parameters, you must specify the symbolic and substitution value using the SYMDEF keyword. 2. The dump command indicated by each row with a “Y” in the “Remote Option Used” column results in a multi-system dump. SVC dump 19

48 SVC dump Making a dump data set available on the DCB parameter of the SDUMP or An SVC dump is taken to an SVC dump data set, either specified SDUMPX macro, available as SYS1.DUMPxx, or automatically allocated. SVC dump processing issues message IEA793A when the dump has been captured but there are no available dump data sets. When a SYS1.DUMPxx data set is not available, the operator has the option either of deleting the captured dump by replying D or making another dump data set available to SVC dump processing. To make another dump data set available, the operator uses the DUMPDS command. For example, you can use a DUMPDS command to make a dump data set available to SVC dump. • System message: * 16 IEA793A NO SVC DUMP DATA SETS AVAILABLE FOR DUMPID=dumpid FOR JOB (*MASTER*). * 16 IEA793A USE THE DUMPDS COMMAND OR REPLY D TO DELETE THE CAPTURED DUMP • Operator reply: DUMPDS ADD,DSN=02 See z/OS MVS System z/OS MVS System Commands for information about the DUMPDS command. See for information about message IEA793A. Messages, Vol 6 (GOS-IEA) Determining current SVC dump options and status An operator can determine the current dump options and the SYS1.DUMPxx data sets that contain SVC dumps. Dump mode and options Use a DISPLAY DUMP operator command to get the dump mode and options in effect for SVC dumps and SYSABEND, SYSMDUMP, and SYSUDUMP dumps. The system displays the mode and options in message IEE857I. For example, to determine the mode and options, enter: DISPLAY DUMP,OPTIONS If the options listed are not the ones desired, have the operator use a CHNGDUMP operator command to change them. See z/OS z/OS MVS System Commands for the DISPLAY for more information about dump modes. See for more information about IEE857I. MVS System Messages, Vol 7 (IEB-IEE) Status of SYS1.DUMPxx data sets Use a DISPLAY DUMP operator command to get the status of all SYS1.DUMPxx data sets on direct defined access. The system displays the status in message IEE852I or IEE856I. The message indicates the full and available data sets. For example, to determine the status of SYS1.DUMPxx data sets, enter: DISPLAY DUMP,STATUS z/OS MVS System Commands for information aout the CHNGDUMP and DISPLAY commands. For a See MVS System Messages . description of these messages, see Finding SVC dumps An operator can search the current SYS1.DUMPxx data sets for the SVC dump for a particular problem. To find a dump select the dump, use the title and time or use the dump symptoms. The operator can also that has been captured in virtual storage but has not been written to a data set. 20 z/OS: MVS Diagnosis: Tools and Service Aids

49 SVC dump Title and time of SVC dump(s) Use one of the following to get the titles and times for SVC dumps: • A DISPLAY DUMP operator command. The system displays the titles and times in message IEE853I. find You can use the DISPLAY command to title and time information. – To see the titles and times for the dumps in SYS1.DUMP08 and SYS1.DUMP23, without displaying any automatically allocated dump data sets, enter: DISPLAY DUMP,TITLE,DSN=(08,23) – To display the titles of the most recently automatically allocated dump data set and all pre-allocated dump data sets, enter: DISPLAY DUMP,TITLE or: DISPLAY DUMP,TITLE,DSN=ALL – To display the titles of the last 5 most recently allocated dump data sets, enter: DISPLAY DUMP,TITLE,AUTODSN=5 – To see the dump titles for all captured dumps, enter: DISPLAY DUMP,TITLE,DUMPID=ALL • An IPCS SYSDSCAN command entered at a terminal by a TSO/E user. IPCS displays the titles and times at the terminal. For example, to use IPCS to find the dump titles and times for the dumps in SYS1.DUMP08 and SYS1.DUMP23, enter the following IPCS command: SYSDSCAN 08 SYSDSCAN 23 z/OS MVS IPCS Commands See for information about SYSDSCAN. If a data set listed in either command is empty or undefined, the system issues a message to tell why the title is not available. Symptoms from SVC dumps Use a DISPLAY DUMP operator command to get the symptoms from SVC dumps in SYS1.DUMPxx data sets on direct access or from SVC dumps that have been captured in virtual storage. The system displays the following symptoms in message IEE854I: • Dump title or a message telling why the title is not available • Error id consisting of a sequence number, the processor id, the ASID for the failing task, and the time stamp • System abend code • User abend code • Reason code • Module name • Failing CSECT name • Program status word (PSW) at the time of the error • Interrupt length code in the system diagnostic work area (SDWA) • Interrupt code in the SDWA • Translation exception address in the SDWA SVC dump 21

50 SVC dump • Address of the failing program in the SDWA • Address of the recovery routine in the SDWA • Registers at the time of the error saved in the SDWA For example, you can issue DISPLAY DUMP to view various types of symptoms: • To see symptoms from the dump in the SYS1.DUMP03 data set without displaying any automatically allocated data sets, enter: DISPLAY DUMP,ERRDATA,DSN=03 • To see symptoms from the most recently automatically allocated dump data set and all pre-allocated dump data sets, enter: DISPLAY DUMP,ERRDATA or: DISPLAY DUMP,ERRDATA,DSN=ALL • To see symptoms from the last 5 most recently allocated dump data sets, enter: DISPLAY DUMP,ERRDATA,AUTODSN=5 • To see symptoms from the captured dump identified by DUMPID=005, enter: DISPLAY DUMP,ERRDATA,DUMPID=005 Using the DISPLAY DUMP,ERRDATA command (see Figure 4 on page 22 ), you can retrieve basic information about the dump without having to format the dump or read through the system log. Message IEE854I displays the error data information, including the PSW at the time of the error, the system abend code and reason code, and the module and CSECT involved. d d,errdata IEE854I 13.01.25 SYS1.DUMP ERRDATA 745 SYS1.DUMP DATA SETS AVAILABLE=001 AND FULL=001 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00000500M DUMP00 TITLE=ABDUMP ERROR,COMPON=ABDUMP,COMPID=5752-SCDMP, ISSUER=IEAVTABD DUMP TAKEN TIME=13.01.02 DATE=09/27/1996 ERRORID=SEQ00010 CPU0000 ASID0010 TIME=13.00.55 SYSTEM ABEND CODE=0C1 REASON CODE=00000001 MODULE=IGC0101C CSECT=IEAVTABD PSW AT TIME OF ERROR=070C0000 823FE0F6 ILC=2 INT=01 TRANSLATION EXCEPTION ADDR=008E1094 ABENDING PROGRAM ADDR=******** RECOVERY ROUTINE=ADRECOV GPR 0-3 00000000 7F6EBAE4 023FFFF6 023F2BFF GPR 4-7 008FD088 023FEFF7 823FDFF8 7F6EC090 GPR 8-11 00000048 7F6EC938 7F6EBA68 7F6EBA68 GPR12-15 7F6EB538 7F6EB538 00000000 00000000 NO DUMP DATA AVAILABLE FOR THE FOLLOWING EMPTY SYS1.DUMP DATA SETS: 01 Figure 4: Example: Output from DISPLAY,DUMP ERRDATA command z/OS MVS System Commands for information about the DISPLAY operator command. See Printing, viewing, copying, and clearing a pre-allocated or SYS1.DUMPxx data set SVC dumps are unformatted when created. Use IPCS to format a dump and then view it at a terminal or print it. After the dump has been copied to a permanent data set, use a DUMPDS operator command to clear the data set so that the system can use the data set for another dump. Then use IPCS to view the copy. 22 z/OS: MVS Diagnosis: Tools and Service Aids

51 SVC dump You can copy a dump that was written to tape so that you can view the dump through IPCS more efficiently. does the For a pre-allocated data set or a SYS1.DUMPxx data set, the JCL shown in Figure 5 on page 23 following: this data set. • Uses the SVC dump in the SYS1.DUMP00 data set. The IPCSDUMP DD statement identifies identified in the DUMPOUT DD • Copies the dump from the SYS1.DUMP00 data set to the data set statement. To use this example, change the DUMPOUT DD statement to give the DSNAME for the desired location. • Clears the SYS1.DUMP00 data set so that it can be used for a new dump. • Deletes the IPCS dump directory in the DELETE(DDIR) statement. This statement uses the USERID of identification. the batch job in the directory • Allocates the dump directory through the BLSCDDIR statement. The default is volume VSAM01. The example shows VSAM11. Override the default volume with the desired volume. • Formats the dump using the IPCS subcommands in LIST 0. To use this example, replace the LIST 0 for CLISTs. command with the desired IPCS subcommands or a CLIST. See z/OS MVS IPCS User's Guide //IPCSJOB JOB //IPCS EXEC PGM=IKJEFT01,DYNAMNBR=75,REGION=1500K //SYSPROC DD DSN=SYS1.SBLSCLI0,DISP=SHR //IPCSDUMP DD DSN=SYS1.DUMP00,DISP=SHR //DUMPOUT DD DSN=GDG.DATA.SET(+1),DISP=SHR //SYSUDUMP DD SYSOUT=* //IPCSTOC DD SYSOUT=* //IPCSPRNT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * DELETE(DDIR) PURGE CLUSTER BLSCDDIR VOLUME(VSAM11) IPCS NOPARM SETDEF DD(IPCSDUMP) LIST NOCONFIRM LIST 0 COPYDUMP INFILE(IPCSDUMP) OUTFILE(DUMPOUT) CLEAR NOPRINT NOCONFIRM END /* Figure 5: Example: JCL to print, copy, and clear an SVC dump data set Contents of SVC dumps Unlike ABEND dumps, SVC dumps do not have a parmlib member that establishes the dump options list at system initialization. The IBM-supplied IEACMD00 parmlib member contains a CHNGDUMP operator command that adds the local system queue area (LSQA) and trace data (TRT) to every SVC dump requested by an SDUMP or SDUMPX macro or a DUMP operator command, but not for SVC dumps requested by SLIP operator commands. The contents of areas in an SVC dump depend on the dump type: • Scheduled SVC dump: The current task control block (TCB) and request block (RB) in the dump are for the dump task, rather than for the failing task. For additional address spaces in the dump, the TCB and RB are for the dump task. • Synchronous SVC dump: The current TCB and RB in the dump are for the failing task. z/OS MVS IPCS Commands for examples of IPCS output formatted from SVC dumps. See Customizing SVC dump contents You can customize the contents of an SVC dump to meet the needs of your installation. For example, you might want to add areas to be dumped, reduce the dump size, or dump Hiperspaces. In most cases, you SVC dump 23

52 SVC dump will customize the contents of an SVC dump or summary dump through the SDATA parameter of the SDUMP or SDUMPX macro or through operator commands. : To obtain a smaller dump that does not have all the usual defaults, code a Reducing dump size NODEFAULTS option in the SDATA parameter of the SDUMP or SDUMPX macro. With the NODEFAULTS option, the dump contains: • Certain default system areas needed by IPCS for dump analysis • Areas requested on the SDUMP or SDUMPX macro ™ : SVC dumps do not include Hiperspaces. To include Hiperspace data in an SVC dump, you Hiperspaces have to write a program to copy data from the Hiperspace into address space storage that is being dumped. : If the dump, as requested, will not contain all the needed areas, see one of the following Adding areas for ways to add the areas: • “Customized contents using the SDATA parameter” on page 24 • “Contents of summary dumps in SVC dumps” on page 28 • “Customizing contents through operator commands” on page 31 Customized contents using the SDATA parameter The IBM-supplied default contents and the contents available through customization are detailed in Table 8 on page 24 . The tables show dump contents alphabetically by the parameters that specify the areas in the dumps. Before requesting a dump, decide what areas will be used to diagnose potential errors. Find the areas in the tables. The symbols in columns under the dump indicate how the area can be obtained in that dump. The symbols are: C Available on the command that requests the dump D IBM-supplied default contents M Available on the macro that requests the dump P Available in the parmlib member that controls the dump options X Available on the CHNGDUMP operator command that changes the options for the dump type blank No symbol indicates that the area cannot be obtained. Note: System operator commands and assembler macros use the parameters in the table to specify dump contents. The order of the symbols in the following table is not important. Table 8: Customizing SVC dump contents through the SDATA parameter. SVC Dump for: Dump Contents SDATA Parameter Option SDUMPX DUMP SLIP SLIP SLIP DUMP Command SVCDUMPRGN Macro or Command Command Command Command ACTION= DUMP ACTION= without =YES ACTION= STDUMP TRDUMP SDATA Command SVCD or SYNCSVCD with SDATA Parameter Parameter The DAT-on and DAT-off nucleuses M C X C C C ALLNUC X Prefixed save area (PSA) for all ALLPSA D M X D X D C C C processors 24 z/OS: MVS Diagnosis: Tools and Service Aids

53 SVC dump Table 8: Customizing SVC dump contents through the SDATA parameter. (continued) Dump Contents SVC Dump for: SDATA Parameter Option SLIP SDUMPX DUMP Command DUMP SLIP SLIP Macro or SVCDUMPRGN Command Command Command Command without =YES DUMP ACTION= ACTION= ACTION= SDATA Command TRDUMP SVCD or STDUMP Parameter with SDATA SYNCSVCD Parameter C C C COUPLE M C X Data on cross-system coupling on specified COUPLE cannot be Note: an SDUMP macro. It can, however, be on an SDUMPX macro. specified M C X D D C C C CSA Common service area (CSA) (that is, subpools 227, 228, 231, 241) and virtual storage for 64-bit addressable memory objects created using one of the following services: IARV64 • REQUEST=GETCOMMON,DUMP=LIKE CSA IARCP64 • COMMON=YES,DUMP=LIKECSA IARST64 • COMMON=YES,TYPE=PAGEABLE Note: When CSA is without specified any high CSA parameters, all the CSA storage, including high virtual CSA, is included in the SVC dump. DEFAULTS Default areas M X Global resource serialization control M C X C C GRSQ X C blocks for the task being dumped: • Global queue control blocks • Local queue control blocks High CSA area by ASID M C X C C HCAS C (HCSAByASID) High CSA area for which the owner has M C X C C C HCNO (HCSANoOwner) ended High CSA area that belongs to the C HCSY M C X C C SYSTEM (HCSASysOwner) D IO Input/output supervisor (IOS) control blocks for the task being dumped: • EXCPD • UCB LPA Active link pack area (LPA): module X D C C C M C X names and contents Local system queue area (LSQA) LSQA C C D C D X D M C X allocated for the address space (that is, subpools 203 - 205, 213 - 215, 223 - 225, 229, 230, 233 - 235, 249, 253 - 255), and virtual storage for 64-bit addressable memory objects created using one of the following services: IARV64 • REQUEST=GETSTOR,DUMP=LIKELS QA IARCP64 • COMMON=NO,DUMP=LIKELSQA • IARST64 COMMON=NO No ALLPSA M X X C C C NOALL No ALLPSA M X X C D C D C NOALLPSA SVC dump 25

54 SVC dump Table 8: Customizing SVC dump contents through the SDATA parameter. (continued) Dump Contents SVC Dump for: SDATA Parameter Option SDUMPX DUMP DUMP Command SLIP SLIP SLIP Command Macro or Command Command Command SVCDUMPRGN ACTION= ACTION= =YES without ACTION= DUMP SDATA TRDUMP STDUMP SVCD or Command Parameter SYNCSVCD with SDATA Parameter M NODEFAULTS • Minimum default areas needed for IPCS dump analysis • Areas requested on the SDUMP or SDUMPX macro C NOPSA No PSA M C X No SQA D C D C X NOSQA C M C X C D C D C No SUM NOSUM X NUC Read/write portion of the control C C D C X M C X program nucleus (that is, only the non- page -protected areas of the DAT-on nucleus), including: • CVT • LSQA • PSA • SQA Prefixed save areas (PSA) for the D X C D M C X PSA D C C processor at the time of the error or the processor at the time of the dump D C X M C X C C C RGN Allocated pages in the private area of each address space being dumped, including subpools 0 - 127, 129 - 132, 203 - 205, 213 - 215, 223 - 225, 229, 230, 236, 237, 244, 249, 251 - 255, and virtual storage for 64-bit addressable memory objects created using one of the following services: IARV64 • REQUEST=GETSTOR,DUMP=LIKERG N • IARV64 REQUEST=GETSTOR,SVCDUMPRGN= YES • IARCP64 COMMON=NO,DUMP=LIKERGN IARST64 COMMON=NO • . Also, allocated eligible storage above the 2–gigabyte address. SERVERS Areas added by IEASDUMP. SERVERS M C X exits System queue area (SQA) allocated SQA C C D C D X D M C X (that is, subpools 226, 239, 245, 247, 248) and virtual storage for 64-bit addressable memory objects created using one of the following services: • IARV64 REQUEST=GETCOMMON,DUMP=LIKE SQA IARCP64 • COMMON=YES,DUMP=LIKESQA IARST64 • COMMON=YES,TYPE=FIXED IARST64 • COMMON=YES,TYPE=DREF C Summary dump (See “Contents of C D M C X D X D C SUM summary dumps in SVC dumps” on .) page 28 26 z/OS: MVS Diagnosis: Tools and Service Aids

55 SVC dump Table 8: Customizing SVC dump contents through the SDATA parameter. (continued) SVC Dump for: SDATA Parameter Dump Contents Option SDUMPX SLIP DUMP SLIP SLIP DUMP Command SVCDUMPRGN Command Command Macro or Command Command ACTION= =YES without DUMP ACTION= ACTION= STDUMP TRDUMP SDATA Command SVCD or Parameter SYNCSVCD with SDATA Parameter C D X C Scheduler work area (SWA) (that is, C SWA M C X subpools 236 and 237) System trace, generalized trace facility D M C X D X D C D C D C TRT (GTF) trace, and master trace, as available D Instruction address trace, if available D D D D Default system data Nucleus map and system control Default system D blocks, including: data • ASCB for each address space being dumped • ASVT • Authoriza- tion table for each address space prefix, • CVT, CVT and secondary CVT (SCVT) • Entry tables for each address space • GDA • JSAB of each address space being dumped • Linkage stack • Linkage table for each address space • PCCA and the PCCA vector table • TOT • TRVT • UCB Default system DFP problem data, if DFP Release 3.1.0 D D D D D or a later release is installed data Storage for the task being dumped and Default system D D D program data for all of its subtasks data Storage: 4 kilobytes before and 4 D Default system data kilobytes after the address in the PSW at the time of the error D SUBTASKS: Storage for the task being D Default system dumped and program data for all of its data subtasks The following table describes how HCSAByASID, HCSANoOwner, and HCSASysOwner affect the CSA storage that is captured in an SVC dump: Table 9: Affects on the CSA storage captured in an SVC dump SDATA option or options CSA storage that is included in the dump Specified All above the bar and below the bar CSA storage CSA SVC dump 27

56 SVC dump Table 9: Affects on the CSA storage captured in an SVC dump (continued) CSA storage that is included in the dump Specified SDATA option or options CSA, HCSAByASID, HCSANoOwner, All below the bar CSA storage, high virtual CSA storage that is owned by the ASIDs that are HCSASysOwner included in the dump, high virtual CSA storage for which the owner has ended, and high virtual CSA storage that belongs to the SYSTEM. The dump does not include high virtual CSA storage that is owned by the ASIDs that are excluded from the dump. All high virtual CSA storage that is owned by the HCSAByASID, HCSANoOwner, HCSASysOwner ASIDs that are included in the dump, high virtual CSA storage for which the owner has ended, and high virtual CSA storage that belongs to the SYSTEM No below the bar CSA storage is included in the dump. options) (Neither CSA nor any of the HCSA None of the CSA storage is included in the dump. xxxx Contents of summary dumps in SVC dumps Request a summary dump for two reasons: areas with one parameter. 1. The SUM or SUMDUMP parameters request many useful, predefined 2. The system does not write dumps immediately for requests from disabled, locked, or SRB-mode programs. Therefore, system activity destroys much needed diagnostic data. When SUM or SUMDUMP specified, the system saves copies of selected data areas at the time of the request, then includes is the areas in the SVC dump when it is written. Use SDUMP or SDUMPX macro parameters to request different types of summary dumps, as follows: : This summary dump saves data that is subject to rapid and frequent change Disabled summary dump • before returning control to the scheduled dump requester. Because the system is disabled for this dump, the dump includes only data that is paged in or in DREF storage. Specify BRANCH=YES and SUSPEND=NO on an SDUMP or SDUMPX macro to obtain a disabled summary dump. • Suspend summary dump : This summary dump also saves data that is subject to rapid and frequent change before returning control to the scheduled dump requester. This dump, however, can save pageable data. To obtain a suspend summary dump, do the following: – For an SDUMP or SDUMPX macro, specify BRANCH=YES and SUSPEND=YES – For an SDUMPX macro, specify BRANCH=NO for a scheduled dump with SUMLSTL parameter Enabled summary dump : This summary dump does not contain volatile system information. The • system writes this summary dump before returning control to the dump requester; the summary information is saved for each address space being dumped. To obtain an enabled summary dump, do the following: – For an SDUMP or SDUMPX macro, specify BRANCH=NO. – For a SLIP operator command, do not specify an SDATA parameter or specify SUM in an SDATA parameter. – For a DUMP operator command, do not specify an SDATA parameter or specify SUM in an SDATA parameter. Note that this dump does not contain data that the system creates when it detects a problem; for example, this dump would not contain a system diagnostic work area (SDWA). In Table 10 on page 29 , an S indicates that the area is included in the summary dump for the dump type. 28 z/OS: MVS Diagnosis: Tools and Service Aids

57 SVC dump Table 10: Customizing SVC dump contents through summary dumps Suspend Disabled Enabled Summary dump contents S identifier Address space for the address space of the dump (ASID) record task for the failing task, including: Control blocks • For task-mode dump requesters: S – Address space control block (ASCB) – Request blocks (RB) – System diagnostic work areas (SDWA) pointed to by the recovery termination management 2 work areas (RTM2WA) associated with the task control block (TCB) – TCB – Extended status block (XSB) • For service request block (SRB)-mode dump requesters: S – ASCB – Suspended SRB save area (SSRB) – SDWA used for dump – XSB Control blocks for the recovery termination manager (RTM): S • associated with all TCBs in the dumped address space RTM2WA RTM2WA associated with the TCB for the dump requester • S and, if the dump requester held a cross Cross memory status record S S memory local (CML) lock, the address of the ASCB for the address space whose local lock is held S Dump header , mapped by AMDDATA S S in the z/OS Internet z/OS MVS Data Areas For the AMDDATA mapping, see library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/ . zosInternetLibrary) S Functional recovery routine (FRR) stack for the current processor Interrupt handler save area (IHSA) S for the home address space or, if a CML S is held, for the address space whose local lock is held for each active processor S S Logical communication area (LCCA) In dumps requested by AR-mode callers, the LCCA includes the AR mode control blocks configuration communication area (PCCA) for each active Physical S S processor Program call link stack elements (PCLINK) stack elements: S • Pointed to by PSASEL • Pointed to by the XSB associated with the IHSA in the dump S S • Pointed to by the SSRB and XSB for the SRB-mode dump requester • Associated with the suspended unit of work S S SVC dump 29

58 SVC dump Table 10: Customizing SVC dump contents through summary dumps (continued) Disabled Summary dump contents Suspend Enabled S S save area (PSA) for each active processor Prefixed Save areas S of register contents SDWA associated with the failure of a system routine S S S S : The storage ranges and ASIDs requested in parameters on the Storage SDUMP or SDUMPX macro : 4 kilobytes before and 4 kilobytes after: Storage S • The address in the program status word (PSW) • All valid unique addresses in the registers saved in the IHSA shown in the dump • All valid unique addresses in the registers saved in the SDWA shown in the dump • Instruction counter values of the external old PSW, program check old PSW, I/O old PSW, and restart old PSW saved in the PSAs of each active processor Storage : 4 kilobytes before and 4 kilobytes after: S • All valid unique addresses in the registers saved in the SDWA shown in the dump • All valid unique addresses in the registers in the dump requester's register save area • All valid unique addresses in the PSWs in all SDWAs shown in the dump Storage : 4 kilobytes before and 4 kilobytes after: S • All valid unique addresses in the PSWs in the RTM2WAs shown in the dump • All valid unique addresses in the registers in the RTM2WAs shown in the dump Storage specified S S : When a PSWREGS parameter is on the SDUMP or S SDUMPX macro, 4 kilobytes before and 4 kilobytes after: • The address in the PSW, if supplied in the PSWREGS parameter • The address in the general purpose registers, if supplied in the PSWREGS parameter The storage dumped is from the primary and secondary address spaces of the program issuing the SDUMP or SDUMPX macro. The control registers, if supplied in the PSWREGS parameter, are used to determine the primary and second address spaces. If access registers are also provided and the PSW indicates AR ASC mode, the access registers will also be used to locate the data. : Supervisor control blocks S S S • Current linkage stack • Primary address space number (PASN) access list • Work unit access list : Global, CPU, and local work/save area vector S Vector Facility control blocks tables (WSAVTG, WSAVTC, and WSAVTL) and work/save areas pointed to by addresses in the tables XSB associated with the IHSA in the dump S S 30 z/OS: MVS Diagnosis: Tools and Service Aids

59 SVC dump For information about control blocks listed in the above table, see z/OS MVS Data Areas in the z/OS Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) . Customizing contents through operator commands The dump options list for SVC dumps can be customized through a DUMP operator command by all the ways shown in Table 11 on page 31 . The contents of SVC dumps requested by SLIP operator commands are controlled only by the SLIP Note: operator command. They are not affected by the IEACMD00 parmlib member or the CHNGDUMP command. Nucleus areas in dumps : Dump options control the parts of the nucleus that appear in a dump. A diagnostician seldom needs to analyze all the nucleus. An installation can eliminate nucleus areas from dumps. If the IBM-supplied defaults are used: • SVC dump for a SLIP operator command with ACTION=SVCD contains the read/write DAT-on nucleus • SVC dump for an SDUMP or SDUMPX macro contains the nucleus map and certain control blocks If no nucleus changes have been made, an installation should obtain one copy of the DAT-off nucleus to use with all dumps. To obtain this nucleus, enter a DUMP operator command with SDATA=ALLNUC and no other SDATA options. The nucleus does not change from one IPL to another, so one dump can be used again and again. DAT, dynamic address translation, is the hardware feature that enables virtual storage. In the DAT-on part of the nucleus, the addresses are in virtual storage; in the DAT-off part of the nucleus, the addresses are in central storage. Table 11: Customizing SVC dump contents through operator commands Effect Example Customization To minimize the amount of default data Use SDATA=NODEFAULTS on SDUMP Change occurs: At dump request in the dump, code in the program: or SDUMPX macro What changes: Excludes the following SDATA default options currently in SDUMPX SDATA=NODEFAULTS effect: • ALLPSA • SQA • SUMDUMP • IO • From all CHNGDUMP operator commands entered through the IEACMD00 parmlib member or through the console Exclusion is only for the dump being requested. Note that certain default system areas are not excluded; these areas are required for IPCS dump analysis. The CHNGDUMP operator command can override the NODEFAULTS option. SVC dump 31

60 SVC dump Table 11: Customizing SVC dump contents through operator commands (continued) Customization Effect Example To add the link pack area (LPA) to all Change occurs : At system initialization Replacing CHNGDUMP operator command in IEACMD00 parmlib SVC dumps for SDUMP or SDUMPX : This command What changes macros and DUMP operator commands, member establishes the IBM-supplied dump while keeping the local system queue options for SVC dumps for SDUMP or area (LSQA) and trace data, add the SDUMPX macros and DUMP operator following command to IEACMD00: commands; see “Contents of SVC for the list. dumps” on page 23 CHNGDUMP SET,SDUMP=(LPA) Change occurs : Immediately when Entering CHNGDUMP operator To add the LPA to all SVC dumps for parameter on a SDUMP or SDUMPX macros and DUMP command with SDUMP command is processed operator commands until changed by console with master authority : What changes another CHNGDUMP SDUMP, enter: CHNGDUMP For the ADD mode: CHNGDUMP SET,SDUMP=(LPA) options are added to the current SVC dump options list and to any options specified in the macro or operator command that requested the dump. To add the CHNGDUMP SDUMPX The options are added to all SVC dumps options list to all SVC dumps: for SDUMP or SDUMPX macros and DUMP operator commands until CHNGDUMP SET,SDUMP,ADD another CHNGDUMP SDUMPX operator command is entered. CHNGDUMP For the OVER mode: options are added to the current SVC To override all SVC dumps with the dump options list. The system ignores CHNGDUMP SDUMPX options list: in the macro or specified any options operator command that requested the CHNGDUMP SET,SDUMP,OVER dump. The options override all SVC dumps for SDUMP or SDUMPX macros and DUMP operator commands until a CHNGDUMP SDUMP,ADD operator command is entered. CHNGDUMP For the DEL option: options are deleted from the SVC dump options list. To remove LPA from the SDUMPX options list: When more than one CHNGDUMP operator command with SDUMPX is CHNGDUMP DEL,SDUMP=(LPA) entered, the effect is cumulative. To add ALLNUC to this SVC dump, : At dump request Change occurs Using an operator command . parameter enter: What changes : The DUMP operator Parameters on the DUMP operator command parameter options are added DUMP COMM=(MYDUMP1 5-9-88) to the dump options list, but only for command specify the contents for the dump being requested. the dump being requested. The system issues a message: * 23 IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND Enter in reply: REPLY 23,JOBNAME=MYJOB1, SDATA=(ALLNUC),END 32 z/OS: MVS Diagnosis: Tools and Service Aids

61 SVC dump Tailoring SVC dumps Sometimes servers retain client-related data in address spaces and dataspaces other than the client's, which means this data will not be in the dump. For this reason, server code can modify the contents of an SVC dump to provide additional problem determination data by creating a tailored SVC dump exit. This feature allows a requestor to specify a dump request without identifying related server address, dataspaces, and storage areas, which could be unknown and dynamic in nature. The server code provider can create these SVC dump exits without modifying module IEAVTSXT. The CSVDYNEX macro the exit load module and associates it with the IEASDUMP.SERVER resource. identifies The exit is allowed to scan the current dump request and determines if data should be added to the dump. The data is added to the dump by identifying it in the appropriate SDMSE_OUTPUT area. For z/OS MVS Programming: Authorized in additional details, see IEASDUMP.SERVER dynamic exit processing Assembler Services Guide . The tailored SVC dump exits are not called in any particular order. To ensure that the current requests are presented to an exit, the dump request is updated between exit invocations. If an exit adds data to the dump, every exit is re-invoked until no additional changes are made. Because of the additional processing required, tailored SVC dump exits do not receive control by default for SDUMPX macro requests. To cause the exit processing to take place, you must specify SDATA=SERVERS in the SDUMPX macro. SDATA=SERVERS is in force for all operator Dump and SLIP SVC dump requests. Analyzing summary SVC dumps The SUMDUMP or SUM option on the SDUMP or SDUMPX macro causes SVC dump to capture a summary dump. Two types of information are captured in summary dumps. First, index data for storage is captured. This index data can be formatted using the IPCS VERBX SUMDUMP command. The second type of information captured is the storage itself. Storage captured by summary dump processing can be viewed using IPCS by specifying the SUMDUMP option (for example, IPCS LIST 00003000 SUMDUMP). IBM strongly recommends that you view the SUMDUMP output prior to investigating the usual portions of the dump. The SUMDUMP option provides different output to SDUMPX branch entries and SVC entries to SDUMP. For example, data included for branch entries to SDUMPX include PSA, LCCA, and PCCA control blocks, and data recorded for SVC entries to SDUMPX include RTM2WA control blocks. Each summary dump index record, when formatted using the IPCS VERBX SUMDUMP command, is displayed as “---- tttt---- range-start range-end range-asid range-attributes”. The range-attributes include a value of specified range may not be in the INCOMP, which means that some or all of the areas represented by the dump. Figure 6 on page 33 is an example format using the IPCS VERBX SUMDUMP command. The summary dump is formatted by the IPCS VERBEXIT SUMDUMP subcommand and has an index which describes what the summary contains. Summary dumps are not created for dumps taken with the DUMP command. Only dumps created by the SDUMP or SDUMPX macro contain summary dumps. STORAGE TYPE RANGE START RANGE END ASID ATTRIBUTES REGISTER AREA-- 0135F000 01363FFF 001E (COMMON) REGISTER AREA-- 00000001_7F5AD000 00000001_7F5B0FFF 001E Figure 6: Example: Format of IPCS VERBX SUMDUMP command Note: During SVC dump processing, the system sets some tasks in the requested address space non- dispatchable; non-dispatchable tasks in the dump may have been dispatchable at the time of the problem. is a partial example of a summary dump using the IPCS VERBX SUMDUMP Figure 7 on page 34 command. SVC dump 33

62 SVC dump STORAGE TYPE RANGE START RANGE END ASID ATTRIBUTES 023BCD70 023BCD7F 001E (COMMON) SUMLSTA RANGE -- 017E8000 017E8FFF 0001 (COMMON) SUMLSTA RANGE -- 01F9B000 01F9CFFF 0001 (COMMON) SUMLSTA RANGE -- 02166000 02167FFF 0001 (COMMON) PSA ------------ 00000000 00001FFF 001E (COMMON) PCCA ----------- 00F43008 00F4324F 001E (COMMON) LCCA ----------- 00F82000 00F82A47 001E (COMMON) LCCX ----------- 021C7000 021C771F 001E (COMMON) INT HANDLER DUCT 02232FC0 02232FFF 001E (COMMON) I.H. LINKAGE STK 02262000 0226202F 001E (COMMON) REGISTER AREA -- 0000E000 00010FFF 001E REGISTER AREA -- 00FC4000 00FC6FFF 001E (COMMON) REGISTER AREA -- 00000001_7F5AD000 00000001_7F5B0FFF 001E REGISTER AREA -- 7FFFE000 7FFFEFFF 001E Figure 7: Example: IPCS VERBX SUMDUMP command To examine the storage shown in Figure 7 on page 34 , invoke the IPCS LIST command, as shown in Figure 8 on page 34 . IPCS LIST 00FC4000. SUMDUMP LEN(256) DISPLAY ****************************** TOP OF DATA *********************************** LIST 00FC4000 ASID(X'001E') SUMDUMP LENGTH(X'0100') AREA ASID(X'001E') SUMDUMP ADDRESS(FC4000.) KEY(00) 00FC4000. 7F6BFFD0 7F6BFFD0 02259010 00000000 |",.}",.}...| 00FC4010. 0225D000 02259010 00000004 00000001 |..}...| 00FC4020. 00000000 00FC3E10 00000000 00000000 |...| 00FC4030. 00000000 00000000 00000000 00800000 |...| 00FC4040. 06102000 00000000 00000000 00000000 |...| 00FC4050 LENGTH(X'10')==>All bytes contain X'00' 00FC4060. 00000000 02247CB8 00000000 00000000 |[email protected]| 00FC4070. 02258040 0000164E 00008000 00000000 |... ...+...| 00FC4080 LENGTH(X'80')==>All bytes contain X'00' ****************************** END OF DATA *********************************** Figure 8: Example: Examining storage For more information about the record ID values, see the SMDLR and SMDXR control blocks in z/OS MVS Data Areas in the z/OS Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/ zosInternetLibrary) . SUMDUMP output for SVC-Entry SDUMPX For an SVC entry, the storage captured in a summary dump can contain information that is not available in specified in the remainder of the SVC dump if options such as region, LSQA, nucleus, and LPA were not the dump parameters. For each address space dumped, a summary dump index record is written with the ASID, plus the jobname and stepname for the last task created in the address space. The SUMDUMP output contains RTM2 work areas for tasks in address spaces that are dumped. Many of the in the RTM2WA provide fields valuable debugging information. The summary dump data is dumped in the following sequence: 1. The ASID record is dumped for the address space. 2. The SUMLIST/SUMLSTA/SUMLSTL/SUMLIST64 ranges and the PSWREGS, parameter list and data ID, data are dumped next. These contain information that is helpful in debugging the problem, and should be examined carefully. 3. All RTM2 work areas pointed to by all TCBs in this address space are dumped. 34 z/OS: MVS Diagnosis: Tools and Service Aids

63 SVC dump 4. An address range table is built containing the following ranges, pointed to by the RTM2WA: • 4K before and after the PSW at the time of error (RTM2NXT1) • 4K before and after each register at the time of error (RTM2EREG). Duplicate storage is eliminated from this address range table to reduce the amount of storage dumped. SUMDUMP output for branch-entry SDUMPX For branch entry to SDUMP, there are two types of summary dumps: • Disabled summary dump - which performs the summary dump with the system disabled for interruptions. This means that all data to be dumped must be paged in at the time of the summary dump. first • Suspend summary dump - which is taken in two parts. The part is similar to the disabled summary dump and dumps some of the global system control blocks. The second part runs with the system enabled for interruptions. This allows data to be dumped that is currently paged out, but was going to by the recovery routine that requested SVC dump processing. be modified The SUMDUMP output for a branch entry to SVC dump might not match the data that is at the same address in the remainder of the dump. The reason for this is that SUMDUMP is taken at the entry to SVC dump while the processor is disabled for interruptions. The system data in the remainder of the dump is often changed because other system activity occurs before the dump is complete. The SUMDUMP output follows a header that contains the ASID of the address space from which the data was obtained. The following conditions can occur that prevent SDUMPX from taking a disabled or suspend summary dump. • The system is not able to obtain the necessary locks to serialize the real storage buffer (RSB). • The system is in the process of modifying the storage queues and cannot satisfy the request for a RSB. • No frames are available for a RSB. • SVC dump encounters an error while holding serialization for the RSB. • A critical frame shortage causes the system to steal the pages of the RSB. • The SVC dump timer disabled interruption exit determines that SVC dump has failed and frees the RSB. Analyzing disabled summary dumps For , records are dumped in the following order: disabled summary dumps 1. If a suspend summary dump was requested but could not be taken, the system attempts to obtain a disabled summary dump. If this occurs, an error record is written to that effect. If the system is unable to obtain a suspend summary dump and a disabled summary dump, then no summary data is available for the dump. 2. The XMEM ASID record is written that gives the ASID that is home, primary, secondary, and CML (if the CML lock is held). 3. The SUMLIST/SUMLSTA/SUMLSTL/SUMLIST64 address ranges and the PSWREGS data are dumped. 4. The PSA, PCCA, LCCA, and LCCX for each processor are dumped. 5. The current PCLINK stack (pointed to by PSASEL) is dumped (if it exists). 6. If this is a SLIP request for a dump (ACTION=SVCD), then the SLIP reg/PSW area (pointed to by the SUMDUMP parameter list SDURGPSA) is dumped. The following address ranges are added to the address range table: • 4K before and after the PSW address at the time of the SLIP trap. • 4K before and after each address in the registers at the time of the SLIP trap. Duplicate storage is eliminated from this address range table to reduce the amount of data written to the dump data set. SVC dump 35

64 SVC dump Note that if the primary and secondary ASIDs are different, the above address ranges are added to the table for both ASIDs. 7. The IHSA is dumped along with its associated XSB and PCLINK stack. The PSW and register addresses from the IHSA are added to the range table. This causes 4K of storage to be dumped around each address. 8. The caller's SDWA is dumped, if one exists. The PSW and register addresses from the SDWA are added to the range table. This causes 4K of storage to be dumped around each address. 9. The addresses in the address range table are dumped. 10. The super FRR stacks are dumped. 11. The global, local, and CPU work save area (WSA) vector tables are dumped. The save areas pointed to by each of these WSA vector tables are also dumped. 12. 4K of storage on either side of the address portion of the I/O old PSW, the program check old PSW, the external old PSW, and the restart old PSW saved in the PSA for all processors, are dumped. Analyzing suspend summary dumps , records are dumped in the following order: For suspend summary dumps 1. The ASID: the PSA, PCCA, LCCA records, the IHSA, XSB, and the PCLINK stack, are all dumped with the system disabled in the same way they are dumped in steps 2, 4, and 5 for the disabled summary dump. At this point, an SRB is scheduled to the DUMPSRV address space and the current unit of work (SDUMP's caller) is suspended by using the STOP service. Data dumped at this point does not have to be paged in because the system is enabled. Cross memory functions are used to gain access to data in the caller's address space. 2. The SUMLIST/SUMLSTA/SUMLSTL/SUMLIST64 address ranges and the PSWREGS data are dumped. 3. The caller's ASCB is dumped. 4. The suspended unit of work (SVC dump's caller) is dumped. This is either a TCB or an SSRB. The related PCLINK stacks are also dumped. 5. For TCB mode callers, the caller's SDWA is dumped. The PSW and register addresses from the SDWA are added to the range table. This causes 4K of storage to be dumped around each address. All RTM2 work areas pointed to by this TCB and any associated SDWAs are all dumped. For SRB mode callers, the SDWA is dumped. The PSW and register addresses from the SDWA are added to the range table. This causes 4K of storage to be dumped around each address. Also, the caller's register save area is added to the range table and the storage dumped. Duplicate storage is eliminated from the address range table to reduce the amount of storage dumped. 6. After all the storage is saved in a virtual buffer in the DUMPSRV address space, the caller's unit of work is reset by using the RESET service. This allows SVC dump to complete and return to the caller. When SVC dump processing completes in the address space to be dumped, whatever processing was taking place in that address space when it was interrupted by SVC dump resumes. The rest of the dump is then scheduled from the DUMPSRV address space. Analyzing an SVC dump This section shows you how to use IPCS to analyze an SVC dump. You would analyze an SVC dump because of one of the following: • Dump output from the IPCS STATUS FAILDATA subcommand did not contain data for the abend being diagnosed. • The problem involved multiple abends. • The dump was taken but does not contain abend-related information. 36 z/OS: MVS Diagnosis: Tools and Service Aids

65 SVC dump This section contains the following topics, which, if followed in order, represent the procedure for analyzing an SVC dump: • “Formatting the SVC dump header” on page 37 • “Looking at the dump title” on page 38 • “Displaying the incident token, time and type of dump” on page 39 • “Locating error information” on page 40 • “Analyze TCB structure” on page 42 • “Examining the LOGREC buffer” on page 44 • “Examining the system trace” on page 45 • “Looking at the registers” on page 46 • “Other useful reports for SVC dump analysis” on page 47 • “Reading the SDUMPX 4K SQA buffer” on page 47 Specifying the source of the dump The step in analyzing the dump is to specify the source of the dump that IPCS should format. In the first ), choose option 0 (DEFAULTS) and specify the name of the SVC IPCS dialog (see Figure 9 on page 37 dump data set on the “Source” line. ------------------------- IPCS Default Values --------------------------------- COMMAND ===> 0 You may change any of the defaults listed below. If you change the Source default, IPCS will display the current default Address Space for the new source and will ignore any data entered in the Address Space field. ==> DSN('D46IPCS.SVC.CSVLLA.DUMP002') Source Address Space ==> Ignored if Source is changed. ==> NOPRINT TERMINAL Message Routing ==> FLAG(WARNING) Message Control ==> NOMACHINE REMARK REQUEST NOSTORAGE SYMBOL Display Content to update defaults. Press ENTER END command to exit without an update. Use the Figure 9: IPCS Default Values menu Press Enter to register the new default source name. Then, press PF3 to exit the panel. You can also use the SETDEF subcommand to specify the source. For the dump in the preceding example, enter: SETDEF DSNAME('D46IPCS.SVC.CSVLLA.DUMP002') first subcommand or IPCS dialog option that IPCS does not initialize the dump until you enter the performs formatting or analysis. At that time IPCS issues message BLS18160D to ask you if summary dump data can be used by IPCS. The summary dump data should always be used for an SVC dump because it is the data captured closest to the time of the failure. If you do not allow IPCS to use summary dump data, other data captured later for the same locations will be displayed, if available. Such data is less likely to be representative of the actual data at these storage locations at the time of the failure. Formatting the SVC dump header The SVC dump header contains the following information: • SDWA or SLIP data identifier, and time of the dump • Dump title, error • Requestor of dump SVC dump 37

66 SVC dump This information describes the type of SVC dump and can tell you if the dump is a CONSOLE dump or a dump caused by the SLIP command. You would analyze these dumps differently. Format data in the header of an SVC dump using the following IPCS subcommands: • LIST TITLE • STATUS FAILDATA • STATUS REGISTERS • STATUS WORKSHEET The following sections give examples of how to use these IPCS subcommands (or IPCS dialog options, where applicable) to obtain the desired information. Looking at the dump title and module name. You can the identifier The dump title tells you the component name, component find dump title using the following IPCS subcommands: • LIST TITLE • STATUS WORKSHEET You can also obtain the STATUS WORKSHEET report through option 2.3 of the IPCS dialog. First, choose option 2 (ANALYSIS) from the primary option menu, as shown in Figure 10 on page 38 . -------------------- z/OS 01.02.00 IPCS PRIMARY OPTION MENU ---------------- OPTION ===> 2 ******************** DEFAULTS - Specify default dump and options * USERID - IPCSU1 0 1 BROWSE - Browse dump data set * DATE - 84/06/08 2 ANALYSIS - Analyze dump contents * JULIAN - 84.160 3 SUBMIT - Submit problem analysis job to batch * TIME - 16:43 4 COMMAND - Enter subcommand, CLIST or REXX exec * PREFIX - IPCSU1 5 UTILITY - Perform utility functions * TERMINAL - 3278 DUMPS - Manage dump inventory * PF KEYS - 24 6 T TUTORIAL - Learn how to use the IPCS dialog ******************** X EXIT - Terminate using log and list defaults END command to end the IPCS dialog. Enter Figure 10: IPCS primary option menu Then, choose option 3 (WORKSHEET) from the analysis of dump contents menu, as shown in Figure 11 on . page 38 -------------------- IPCS MVS ANALYSIS OF DUMP CONTENTS --------------------- OPTION ===> 3 To display information, specify the corresponding option number. 1 SYMPTOMS - Symptoms ***************** 2 STATUS - System environment summary * USERID - IPCSU1 WORKSHEET - System environment worksheet * DATE - 84/06/08 3 4 SUMMARY - Address spaces and tasks * JULIAN - 84.160 5 CONTENTION - Resource contention * TIME - 16:44 COMPONENT - MVS component data * PREFIX - IPCSU1 6 TRACE - Trace formatting * TERMINAL- 3278 7 STRDATA - Coupling Facility structure data * PF KEYS - 24 8 ****************** Enter END command to terminate MVS dump analysis. Figure 11: IPCS MVS analysis of dump contents menu . The dump title is IPCS displays a new panel with information similar to that in Figure 12 on page 39 labelled at the top of the STATUS WORKSHEET report. The dump title is “Compon=Program Manager Library-Lookaside, Compid=SC1CJ, Issuer=CSVLLBLD.” See z/OS MVS Diagnosis: Reference for an explanation of dump titles. 38 z/OS: MVS Diagnosis: Tools and Service Aids

67 SVC dump IPCS OUTPUT STREAM ------------------------------------------ LINE 0 COL COMMAND ===> SCROLL === ****************************** TOP OF DATA **************************** MVS Diagnostic Worksheet Dump Title: COMPON=PROGRAM MANAGER LIBRARY-LOOKASIDE,COMPID=SC1CJ, ISSUER=CSVLLBLD CPU Model 2064 Version FF Serial no. 131512 Address 01 Date: 02/15/2001 Time: 20:33:34.680912 Local Original dump dataset: SYS1.DUMP06 Information at time of entry to SVCDUMP: HASID 001B PASID 001B SASID 001B PSW 070C1000 8001AE5A CML ASCB address 00000000 Trace Table Control Header address 7FFE3000 Dump ID: 001 Error ID: Seq 00019 CPU 0041 ASID X'001E' Time 20:33:33.5 Figure 12: STATUS WORKSHEET subcommand sample output — dump title , the dump ID is 001, error ID is STATUS WORKSHEET also displays the error ID. In Figure 12 on page 39 sequence number 00051, ASID=X'001B', and processor 0000. Use this dump ID to match messages in SYSLOG and LOGREC records to the dump. Displaying the incident token, time and type of dump The IPCS subcommand STATUS SYSTEM identifies the following types if information. The IPCS dialog does not have a menu option for STATUS SYSTEM. Instead you must enter the subcommand. • The time of the dump • The program requesting the dump • An incident token that associates one or more SVC dumps requested for a problem on a single system or on several systems in a sysplex is an example of a STATUS SYSTEM report. For a scheduled SVC dump, the Figure 13 on page 40 following the dump: identifies Program Producing Dump: SVCDUMP Program Requesting Dump: IEAVTSDT A dump requested by a SLIP or DUMP operator command is always a scheduled SVC dump. identifies the dump: For a synchronous SVC dump, the following Program Producing Dump: SVCDUMP cccccccc Program Requesting Dump: Where cccccccc is one of the following: • The name of the program running when the system detected the problem • SVCDUMP, if the system could not determine the failing task A SYSMDUMP ABEND dump is always a synchronous SVC dump. SVC dump 39

68 SVC dump SYSTEM STATUS: Nucleus member name: IEANUC01 I/O configuration data: IODF data set name: SYS0.IODF43 IODF configuration ID: CONGIG00 EDT ID: 00 Sysplex name: SYSPL1 TIME OF DAY CLOCK: B566EA85 A0750707 02/15/2001 20:33:34.680912 local TIME OF DAY CLOCK: B567202A 89750707 02/16/2001 00:33:34.680912 GMT Program Producing Dump: SVCDUMP Program Requesting Dump: IEAVTSDT Incident token: SYSPL1 S4 06/23/1993 12:43:54.697367 GMT Figure 13: Sample output from the STATUS SYSTEM subcommand SYSTEM STATUS for an SVC dump contains an incident token. The request for the dump the specifies incident token or the system requesting the dumps provides it. The incident token consists of: • The name of the sysplex • The name of the system requesting the multiple dumps • The date in Greenwich Mean Time (GMT) • The time in GMT Locating error information instruction that failed and to format Use the IPCS subcommand STATUS FAILDATA to locate the specific all the data in an SVC dump related to the software failure. This report gives information about the CSECT identifier, and the PSW address at the time of the error. involved in the failure, the component For SLIP dumps or CONSOLE dumps, use SUMMARY FORMAT or VERBEXIT LOGDATA instead of Note: STATUS FAILDATA. Choose option 4 (COMMAND) from the IPCS primary option menu (see Figure 14 on page 40 ) and enter the following command. Use the PF keys to scroll up and down through the report. The following sections describe parts of the report. ------------------------- IPCS Subcommand Entry ------------------------------- Enter a free-form IPCS subcommand, CLIST, or REXX exec invocation below: ===> STATUS FAILDATA Figure 14: IPCS Subcommand Entry menu shows, under the heading “SEARCH Identifying the abend and reason codes: As Figure 15 on page 40 ARGUMENT ABSTRACT”, you will find the abend code and, if provided, an abend reason code. ⋮ SEARCH ARGUMENT ABSTRACT PIDS/5752SC1CJ RIDS/CSVLLCRE#L RIDS/CSVLLBLD AB/S0FF0 REGS/09560 REGS/ 06026 RIDS/CSVLLBLD#R Symptom Description ------- ----------- PIDS/5752SC1CJ Program id: 5752SC1CJ RIDS/CSVLLCRE#L Load module name: CSVLLCRE RIDS/CSVLLBLD Csect name: CSVLLBLD AB/S0FF0 System abend code: 0FF0 REGS/09560 Register/PSW difference for R09: 560 REGS/06026 Register/PSW difference for R06: 026 RIDS/CSVLLBLD#R Recovery routine csect name: CSVLLBLD ⋮ Figure 15: Search argument abstract in the STATUS FAILDATA report , the abend code is X'FF0' with no reason code. See z/OS MVS System Codes for a In Figure 15 on page 40 description of the abend code and reason code. 40 z/OS: MVS Diagnosis: Tools and Service Aids

69 SVC dump The following IPCS reports also provide the abend and reason codes: • VERBEXIT LOGDATA • STATUS WORKSHEET • VERBEXIT SYMPTOMS As Figure 16 on page 41 shows, below the “SEARCH ARGUMENT Finding the system mode: ABSTRACT“ section is information describing the system mode at the time of the error. ⋮ Home ASID: 001B Primary ASID: 001B Secondary ASID: 001B PKM: 8000 AX: 0001 EAX: 0000 RTM was entered because a task requested ABEND via SVC 13. The error occurred while: an SRB was in control. No locks were held. No super bits were set. ⋮ Figure 16: System mode information in the STATUS FAILDATA report The line that starts with “The error occurred...” tells you if the failure occurred in an SRB or TCB. In the example in Figure 16 on page 41 , the error occurred while an SRB was in control, which means you need ) to find the CSECT to look under the heading SEARCH ARGUMENT ABSTRACT (see Figure 15 on page 40 and load module names. This is the module in which the abend occurred. If an SRB service routine was in control, look under the heading SEARCH ARGUMENT ABSTRACT for the CSECT and load module names. This is the failing module. In output from a SUMMARY FORMAT subcommand, look for the RB for the abending program. The RB has field an RTPSW1 that is nonzero. In a dump requested by a SLIP operator command, use a STATUS CPU REGISTERS subcommand to see data from the time of the problem. the failing TCB by formatting the If the error had occurred while a TCB was in control, you would find . dump using the IPCS subcommand SUMMARY TCBERROR. See “Analyze TCB structure” on page 42 The STATUS FAILDATA report also helps you find the exact instruction Identifying the failing instruction: that failed. This report provides the PSW address at the time of the error and the failing instruction text. Note that the text on this screen is not always the failing instruction text. Sometimes the PSW points to the place where the dump was taken and not the place where the error occurred. In Figure 17 on page 42 , the PSW at the time of the error is X'11E6A3C' and the instruction length is 4- bytes; therefore, the failing instruction address is X'11E6A38'. The failing instruction is 927670FB. SVC dump 41

70 SVC dump ⋮ OTHER SERVICEABILITY INFORMATION Recovery Routine Label: CSVLEBLD Date Assembled: 00245 Module Level: HBB7705 Subfunction: LIBRARY-LOOKASIDE Time of Error Information PSW: 070C0000 811E6A3C Instruction length: 04 Interrupt code: 0004 9276 70FB 5030 70F8D7F7 Failing instruction text: E000 Registers 0-7 GR: 0002A017 00FBE800 00000000 00000076 00000C60 00FBE600 0002A016 00000017 AR: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 Registers 8-15 GR: 012221A8 811E69F8 00000001 30000000 00FD82C8 811CAD90 011E69D0 011E69D0 AR: 00000000 00000000 00000000 00000000 00000000 00000000 00005F60 00000000 ⋮ Figure 17: Time of error information in the STATUS FAILDATA report The failing instruction text displayed in this report is always 12 bytes, 6 bytes before and 6 bytes after the PSW address. In this example, the failing instruction, 927670FB, is an MVI of X'76' to the location specified by register 7 + X'FB'. Register 7 at the time of the error, shown under above, contained a X'00000017'. The Registers 0-7 attempted move was to storage location X'112'. The first 512 bytes of storage are hardware protected. Any software program that tries to store into that area without authorization will receive a protection exception error and a storage protection exception error. See z/Architecture Principles of Operation for information about machine language operation codes, operands, and interruption codes. find the module that abnormally terminated and the offset to the failing instruction, use the WHERE To command. WHERE can identify the module or CSECT that the failing PSW points to. Analyze TCB structure If a TCB was in control at the time of the error, use the IPCS subcommand SUMMARY TCBERROR to look at the TCB information and find the failing component. SUMMARY TCBERROR summarizes the control fields in the control blocks, use SUMMARY FORMAT.) blocks for the failing address space. (To see all the (field find the correct TCB. This report displays RBs from CMP) for each TCB to Scan the completion codes newest to oldest. is an example of SUMMARY TCBERROR output. In this example the TCB at address Figure 18 on page 43 identified 008E9A18 has a completion code of X'0C1.' The error occurred under this TCB. Once you have the failing TCB, you can follow the RB chain to the failing program. 42 z/OS: MVS Diagnosis: Tools and Service Aids

71 SVC dump ⋮ NAME... IEFSD060 ENTPT... 00DA6308 PRB: 008FFED0 WLIC... 00020006 FLCE... 00C534A0 OPSW... 070C2000 00DC766A LINK... 008FFA10 CDE: 00C534A0 NAME... IEESB605 ENTPT... 00DC7000 TCB: 008FF0D0 CMP... 00000000 PKF... 80 LMP... FF DSP... FF TSFLG... 00 STAB... 008FD210 NDSP... 00002000 JSCB... 008FF4FC BITS... 00000000 DAR... 00 RTWA... 00000000 FBYT1... 00 Task non-dispatchability flags from TCBFLGS4: Top RB is in a wait Task non-dispatchability flags from TCBFLGS5: Secondary non-dispatchability indicator Task non-dispatchability flags from TCBNDSP2: SVC Dump is executing for another task PRB: 008E9F20 WLIC... 00020001 FLCDE... 00C4CA38 OPSW... 070C1000 00DAC66E LINK... 018FF0D0 CDE: 00C4CA38 NAME... IEFIIC ENTPT... 00DA6000 TCB: 008E9A18 CMP... 940C1000 PKF... 80 LMP... FF DSP... FF TSFLG... 20 STAB... 008FD180 NDSP... 00000000 JSCB... 008FF33C BITS... 00000000 DAR... 01 RTWA... 7FFE3090 FBYT1... 08 SVRB: 008FD7A8 WLIC... 00020000 FLCDE... 00000000 OPSW... 070C1000 82569B38 LINK... 008FD638 PRB: 008E9750 WLIC... 00020033 FLCDE... 14000000 OPSW... 070C1000 80CE9AEE LINK... 008FD638 SVRB: 008FD638 WLIC... 0002000C FLCDE... 00000000 OPSW... 070C1000 825E9768 LINK... 008FD4C8 SVRB: 008FD4C8 WLIC... 00020001 FLCDE... 00000000 OPSW... 070C0000 00C47D52 LINK... 008FD358 SVRB: 008FD358 WLIC... 00020053 FLCDE... 00000000 OPSW... 075C0000 00D64EOC LINK... 008FF4D8 PRB: 008FF4D8 WLIC... 00020014 FLCDE... 008FF3D8 OPSW... 078D0000 00006EF2 LINK... 008E9A18 CDE: 008FF3D8 NAME... SMFWT ENTPT... 00006EB0 Figure 18: Example: the SUMMARY TCBERROR report In this example, the most current RB is the SVRB at address 008FD7A8. This is the SVC dump's RB. The ESTAE's RB is the PRB at 008E9750. The ESTAE issued an SVC 33. The RB for the recovery termination manager (RTM) is the SVRB at 008FD638. RTM issued an SVC C to attach the ESTAE. The X'0C1' abend occurred under the SVRB at 008FD4C8. The last interrupt was a 1 at the address indicated in the old PSW (OPSW). The next RB in the chain shows an SVC X'53' (SMFWTM) had been issued. This is the code field the X'0C1' occurred in. For a scheduled dump, the abnormally terminating TCB can generally be found by scanning for a nonzero completion code. If there is no code, scan the system trace for the abend. The trace identifies the ASID . number and TCB address for each entry. See “Examining the system trace” on page 45 find the data set name and the module name of the Use the STATUS or the STATUS REGS subcommand to SVC dump requester. SVC dump 43

72 SVC dump Examining the LOGREC buffer Use the IPCS subcommand VERBEXIT LOGDATA to view the LOGREC buffer in a dump. This report might repeat much of the information contained in the STATUS FAILDATA report, but it helps to identify occasions when multiple error events caused the software failure. The following sample output, from the VERBEXIT LOGDATA subcommand, shows how multiple errors can abend and X'058' is the second. Always check for appear in the LOGREC buffer. Abend X'0D5' is the first multiple errors in the VERBEXIT LOGDATA report that are in the same address space or a related address space and are coincident with or precede the SVC dump. TYPE: SOFTWARE RECORD REPORT: SOFTWARE EDIT REPORT DAY.YEAR (PROGRAM INTERRUPT) REPORT DATE: 320.17 SCP: VS 2 REL 3 ERROR DATE: 229.17 MODEL: 2964 HH:MM:SS.TH SERIAL: 01F167 TIME: 13:27:59.86 JOBNAME: LSCMSTR ERRORID: SEQ=01196 CPU=0042 ASID=000C TIME=13:27:59.6 SEARCH ARGUMENT ABSTRACT PIDS/####SC1C5 RIDS/NUCLEUS#L RIDS/IEAVEDS0 AB/S00D5 PRCS/00000021 REGS/0F120 RIDS/IEAVEDSR#R SYMPTOM DESCRIPTION ------- ----------- PIDS/####SC1C5 PROGRAM ID: ####SC1C5 RIDS/NUCLEUS#L LOAD MODULE NAME: NUCLEUS RIDS/IEAVEDS0 CSECT NAME: IEAVEDS0 AB/S00D5 SYSTEM ABEND CODE: 00D5 PRCS/00000021 ABEND REASON CODE: 00000021 REGS/0F120 REGISTER/PSW DIFFERENCE FOR R0F: 120 RIDS/IEAVEDSR#R RECOVERY ROUTINE CSECT NAME: IEAVEDSR OTHER SERVICEABILITY INFORMATION RECOVERY ROUTINE LABEL: IEAVEDSR DATE ASSEMBLED: 08/23/89 MODULE LEVEL: UY41669 SUBFUNCTION: DISPATCHER TIME OF ERROR INFORMATION PSW: 44040000 80000000 00000000 00FEFC56 INSTRUCTION LENGTH: 04 INTERRUPT CODE: 0021 FAILING INSTRUCTION TEXT: 1008B777 1008B225 000007FE TRANSLATION EXCEPTION IDENTIFICATION: 00000041 BREAKING EVENT ADDRESS: 00000000_00FF650E AR/GR 0-1 00000000/00000000_00000041 00000000/00000000_00F9A0C0 AR/GR 2-3 00000000/00000000_00000000 00000000/00000000_00000000 AR/GR 4-5 00000000/00000000_00000000 00000000/00000000_008DE188 AR/GR 6-7 00000000/00000000_008E8C78 00000000/00000000_00000001 AR/GR 8-9 00000000/00000000_00F97280 00000000/00000000_0103AB6A AR/GR 10-11 00000000/00000000_00FF1B08 00000000/00000000_008DE188 AR/GR 12-13 00000000/00000000_0000000C 00000000/00000000_000C0041 AR/GR 14-15 00000000/00000000_80FF6510 00000000/00000000_00FEFB36 HOME ASID: 000C PRIMARY ASID: 000C SECONDARY ASID: 000C PKM: 8000 AX: 0001 RTM WAS ENTERED BECAUSE OF A PROGRAM CHECK INTERRUPT. THE ERROR OCCURRED WHILE A LOCKED OR DISABLED ROUTINE WAS IN CONTROL. NO LOCKS WERE HELD. SUPER BITS SET: PSADISP - DISPATCHER ⋮ TYPE: SOFTWARE RECORD REPORT: SOFTWARE EDIT REPORT DAY.YEAR (SVC 13) REPORT DAT 320.17 SCP: VS 2 REL 3 ERROR DAT 229.17 MODEL: 2964 HH:MM:SS.TH SERIAL: 01F167 TIME: 13:27:59.94 JOBNAME: LSCMSTR ERRORID: SEQ=01197 CPU=0000 ASID=000C TIME=13:27:59.6 SEARCH ARGUMENT ABSTRACT 44 z/OS: MVS Diagnosis: Tools and Service Aids

73 SVC dump AB/S0058 SYMPTOM DESCRIPTION ------- ----------- AB/S0058 SYSTEM ABEND CODE: 0058 SERVICEABILITY INFORMATION NOT PROVIDED BY THE RECOVERY ROUTINE PROGRAM ID LOAD MODULE NAME CSECT NAME RECOVERY ROUTINE CSECT NAME RECOVERY ROUTINE LABEL DATE ASSEMBLED MODULE LEVEL SUBFUNCTION TIME OF ERROR INFORMATION PSW: 47048000 00000000 00000000 00FDC266 INSTRUCTION LENGTH: 02 INTERRUPT CODE: 000D FAILING INSTRUCTION TEXT: 00000000 0A0D0A06 00000000 BREAKING EVENT ADDRESS: 00000000_001B192 AR/GR 0-1 00000000/00000000_00A5D7A8 00000000/00000000_80058000 AR/GR 2-3 00000000/00000000_00000041 00000000/00000000_022DC780 AR/GR 4-5 00000000/00000000_008EDF00 00000000/00000000_008FBC7C AR/GR 6-7 00000000/00000000_00F86A00 00000000/00000000_026E01F0 AR/GR 8-9 00000000/00000000_026E0160 00000000/00000000_00000000 AR/GR 10-11 00000000/00000000_8001AC96 00000000/00000000_0001BC96 AR/GR 12-13 00000000/00000000_00000000 00000000/00000000_000188F0 AR/GR 14-15 00000000/00000000_8001B194 00000000/00000000_00000020 HOME ASID: 000C PRIMARY ASID: 000C SECONDARY ASID: 000C PKM: 8000 AX: 0001 RTM WAS ENTERED BECAUSE AN SVC WAS ISSUED IN AN IMPROPER MODE. THE ERROR OCCURRED WHILE AN ENABLED RB WAS IN CONTROL. NO LOCKS WERE HELD. NO SUPER BITS WERE SET. This sample output was created on a currently supported z/OS release and at least one high half (bits 0-31) of the 64-bit GR from GRs 0-15 is not 0. The VERBEXIT LOGDATA report might show less data under different conditions. When viewing the VERBEXIT LOGDATA report, skip the hardware records to view the software records. software record. Search for the first “ERRORID=” gives the error identifier for the software failure. The error identifier consists of the field The identifier with error identifiers from sequence number, ASID, and time of the abend. By matching this other reports, you can tell if this is the same abend you have been analyzing or if it is a different abend. for more information. See “Interpreting software records” on page 525 Examining the system trace The system trace table describes the events in the system leading up to the error. The trace table is helpful when the PSW does not point to the failing instruction, and to indicate what sequence of events preceded the abend. IPCS option 2.7.4 formats the system trace. The report is long. IBM recommends scrolling to the end of the report, then backing up to find the trace entry for the abend. Type an M on the command line and press F8 to scroll to the bottom of the report. After you find the entry for the abend, start at the PSW where the dump was taken and track the events in find where the failing instruction is in the code. the table to The system trace report marks important or significant entries with an asterisk. In Figure 19 on page 46 , in the Ident CD/D column identifies the PSW where the program took the dump. Prior to the *SVC D are three (program check) entries. PGM 001 has an asterisk next to it, indicating that the PGM SVC D RCVY PROG , identifies a recovery program that failed program check was unresolved. The next entry, SVC D a few entries later. See Chapter 8, “System trace,” on page 153 to recognize because it issued the significant entries in the system trace table. SVC dump 45

74 SVC dump PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 Unique-4 Unique-5 Unique-6 ⋮ 0001 0094 00AF7D18 DSP 070C0000 81EA7000 00000000 00000000 0000800C 0001 0094 00AF7D18 SVC 78 070C0000 81EA7048 00000002 00000278 00000000 0001 0094 00AF7D18 SVCR 78 070C0000 81EA7048 00000000 00000278 03300D88 0001 0094 00AF7D18 PGM 010 070C0000 81EA704A 00040010 03300D8C 0001 0094 00AF7D18 PGM 011 070C0000 81EA704A 00040011 03300D8C 0001 0094 00AF7D18 SVC 77 070C2000 81EA7088 81EA7000 00000000 00050000 0001 0094 00AF7D18 SVCR 77 070C2000 81EA7088 00000000 00000000 40000000 0001 0094 00AF7D18 *PGM 001 070C0000 83300FAA 00020001 03300D8C 0001 0094 00AF7D18 *RCVY PROG 940C1000 00000001 00000000 0002 0001 00000000 I/O 1A2 070E0000 00000000 0080000E 060246C0 0C000001 0002 0054 00AD7300 SRB 070C0000 810537E0 00000054 00F3C9F8 00F3CA40 0001 0054 00AF7D18 SSRV 12D 810B9CEE 00AF7D18 000C0000 00000000 0001 0094 00AF7D18 SSRV 12D 810B9D0E 00AF7D18 000B0000 00000000 0001 0094 00AF7D18 DSP 070C0000 810BF664 00000000 00000000 40000000 0001 0094 00AF7D18 *SVC D 070C0000 810BF666 00000040 00000000 40000000 0001 0054 00000000 SSRV 10F 00000000 00F83E80 00AD7300 00AC5040 Figure 19: Example: output from the IPCS subcommand SYSTRACE Looking at the registers Use the IPCS subcommand STATUS REGISTERS to display the registers for the TCBs and RBs. SUMMARY the PSW, ASID and register REGS gives the same information in a different format. This report identifies values just as the STATUS FAILDATA report, but STATUS REGISTERS also gives the control register values. CPU STATUS: PSW=070C1000 80FE5CFC (RUNNING IN PRIMARY, KEY 0, AMODE 31, DAT ON) DISABLED FOR PER ASID(X'001B') 00FE5CFC. IEANUC01.IEAVESVC+05FC IN READ ONLY NUCLEUS ASCB27 at F3FA00, JOB(LLA), for the home ASID ASXB27 at 9FDF00 for the home ASID. No block is dispatched HOME ASID: 001B PRIMARY ASID: 001B SECONDARY ASID: 001B GPR VALUES 0-3 80000000 80FF0000 009FF5A0 00FC4E88 4-7 009F8E88 009FD358 80FE5CD6 00F3FA00 8-11 00000000 80FE579C 009FD418 7FFFE2C0 12-15 7FFE0000 00006730 00FE6200 80014910 ACCESS REGISTER VALUES 0-3 7FFEA5CC 00000000 00000000 00000000 4-7 00000000 00000000 00000000 00000000 8-11 00000000 00000000 00000000 00000000 12-15 00000000 00000000 00005F60 8210532A ALET TRANSLATION AR 00 Not translatable AR 14 Not translatable AR 15 Not translatable CONTROL REGISTER VALUES 0-3 5EB1EE40 00A2007F 007CCDC0 8000001B 4-7 0001001B 00C506C0 FE000000 00A2007F 8-11 00000000 00000000 00000000 00000000 12-15 0082E07B 00A2007F DF880C71 7FFE7008 Figure 20: Sample of the STATUS REGISTERS report shows the address in the PSW is X'0FE5CFC', the ASID is The example output in Figure 20 on page 46 X'1B', and the failing instruction is located in offset X'5FC' in the CSECT IEAVESVC in the module specific failing IEANUC01 in the nucleus. You can now browse the dump at this location and look at the instruction. You could also use the information about the registers to find out more about the error if the address in the PSW does not point to the failing instruction. identifies the PSW, ASID and register values just as the STATUS FAILDATA report. However, as This report shows, STATUS REGISTERS also gives the control register values. Figure 21 on page 47 46 z/OS: MVS Diagnosis: Tools and Service Aids

75 SVC dump CPU STATUS: PSW=070C4000 00FC5C96 (Running in AR, key 0, AMODE 24, DAT ON) DISABLED FOR PER ASID(X'001E') FC5C96. STRUCTURE(Cvt)+D6 IN READ/WRITE NUCLEUS ASID(X'001E') FC5C96. IEANUC01.IEAVCVT+0116 IN READ/WRITE NUCLEUS ASID(X'001E') FC5C96. STRUCTURE(Dcb)+0152 IN READ/WRITE NUCLEUS ASID(X'001E') FC5C96. STRUCTURE(Dcb)+015A IN READ/WRITE NUCLEUS ASCB30 at F90B80, JOB(ORANGE), for the home ASID ASXB30 at 6FDE90 and TCB30D at 6E7A68 for the home ASID HOME ASID: 001E PRIMARY ASID: 001E SECONDARY ASID: 001E General purpose register values 0-1 00000000_00000020 00000000_84058000 2-3 00000000_00000000 00000001_00004000 4-5 00000000_01F9B9A8 00000000_01F9B9A8 6-7 00000000_00000000 00000000_01F9BE10 8-9 00000000_00000000 00000000_FFFFFFFC 10-11 00000000_00000000 00000000_00FDAC58 12-13 00000000_01560410 00000000_01F9BB08 14-15 00000000_8155E5A8 00000000_0000003C Access register values 0-3 00000000 00000000 00000000 00000000 4-7 00000000 00000000 00000000 00000000 8-11 00000000 00000000 00000000 00000000 12-15 00000000 00000000 00000000 00000000 Control register values Left halves of all registers contain zeros 0-3 5F29EE40 0374C007 008D0A40 00C0001E 4-7 0000001E 02A30780 FE000000 0374C007 8-11 00020000 00000000 00000000 00000000 12-15 0294EE43 0374C007 DF882A2F 7F5CD4B0 Figure 21: Sample of the STATUS REGISTERS report run in z/Architecture mode Other useful reports for SVC dump analysis To collect further SVC dump data, use any of the following commands. Information in the report IPCS subcommand Data about the abend, current ASID, and task. STATUS CPU REGISTERS DATA CONTENTION All fields in the TCBs and the current ASID. SUMMARY FORMAT TCBEXIT IEAVTFMT 21C.% The current FRR stack. The entry points in the active LPA and PLPA. LPAMAP VERBEXIT NUCMAP A map of the modules in the nucleus when the dump was taken. VERBEXIT SUMDUMP The data dumped by the SUMDUMP option on the SDUMPX macro. The master trace table. VERBEXIT MTRACE The primary and secondary symptoms if available. VERBEXIT SYMPTOMS Use the VERBEXIT SYMPTOMS subcommand last in your SVC dump analysis. Other subcommands Note: can add symptoms to the dump header record. This ensures VERBEXIT SYMPTOMS provides all symptoms available from the dump. Reading the SDUMPX 4K SQA buffer The following SVC dumps contain problem data in an SDUMPX 4K system queue area (SQA) buffer: • An SVC dump requested by a SLIP operator command • Other SVC dumps, when indicated in the explanation of the dump title. • An SVC dump requested by an SDUMP or SDUMPX macro with a BUFFER=YES parameter SVC dump 47

76 SVC dump To obtain the buffer, use the following IPCS subcommand: LIST 0 DOMAIN(SDUMPBUFFER) LENGTH(4096) describes the fields Table 12 on page 48 in the SQA buffer and should be used for diagnosis. Table 12: Fields in SQA bugger Content Length Offset 4 The characters, TYPE 0 (0) 4 (4) 4 RTM/SLIP processing environment indicator: • X'00000001': RTM1 • X'00000002': RTM2 • X'00000003': MEMTERM • X'00000004': PER 8 (8) 4 The characters, CPU 4 identifier (CPUID) 12 (C) Logical processor The characters, REGS 4 16 (10) General purpose registers 0 through 15 at the time of the event 64 20 (14) 4 84 (54) The characters, PSW 88 (58) 8 The program status word (PSW) at the time of the event 4 The characters, PASD 96 (60) 2 100 (64) (ASID) at the time of the event The primary address space identifier The characters, SASD 4 102 (66) 2 The secondary ASID at the time of the event 106 (6A) The characters, ARS 108 (6C) 4 Access registers 0 through 15 at the time of the event. 64 112 (70) 176 (B0) 4 The characters, G64H 64 High halves of general purpose registers 0 through 15 at the time of the event 180 (B4) variable One of the following, as indicated by the RTM/SLIP processing environment indicator at 244 (F4) offset 4 of the buffer: • The system diagnostic work area (SDWA), if offset 4 is 1 (RTM1) • The recovery termination manager 2 (RTM2) work area (RTM2WA), if offset 4 is 2 (RTM2) • The address space control block (ASCB), if offset 4 is 3 (MEMTERM) • The PER interrupt code and PER address, if offset 4 is 4 (PER) 4 The characters, P16 4076 (FEC) 16 The 16-byte program status word (PSW) at the time of the event. 4080 (FF0) 48 z/OS: MVS Diagnosis: Tools and Service Aids

77 Transaction dump Chapter 3. Transaction dump A transaction dump provides a representation of the virtual storage for an address space when an error occurs. Typically, an application requests the dump from a recovery routine when an unexpected error occurs. Transaction dumps are requested as follows: Synchronous transaction dump: • The requester's IEATDUMP macro invocation issues an instruction to obtain the dump under the current task. IEATDUMP returns control to the requester and is available once the dump data has been written into a dump data set. Each Transaction dump also contains a summary dump, if requested. The summary dump supplies copies of selected data areas taken at the time of the request. Specifying a summary dump also provides a means of dumping many predefined data areas simply by specifying one option. This summary dump data is not mixed with the Transaction dump because in most cases it is chronologically out of step. Instead, IBM recommends identified. each data area selected in the summary dump is separately formatted and that you request summary dump data. This section includes information system programmers need to know about Transaction dump and Transaction dump processing: • “Choices for IEATDUMP Data Sets” on page 50 • “Obtaining transaction dumps” on page 52 • “Printing, viewing, copying, and clearing a dump data set” on page 52 • “Contents of transaction dumps” on page 53 z/OS MVS Programming: Authorized Assembler Services Guide for information any programmer needs See to know about programming the IEATDUMP macro to obtain a Transaction Dump: • Deciding when to request a Transaction dump • Understanding the types of Transaction Dumps that MVS produces specific • Designing an application program to handle a type of Transaction dump • Identifying the data set to contain the dump the contents of the dump • Defining • Suppressing duplicate Transaction dumps using dump analysis and elimination (DAE) Planning data sets for transaction dumps Transaction dump processing stores data in dump data sets that you preallocate manually, or that are allocated automatically, as needed. The output dump data set has the attributes of RECFM=FB and LRECL=4160. Planning data set management for transaction dumps For transaction dumps, use extended format sequential data sets because they have the following characteristics: • Greater capacity than sequential data sets • Striping and compression support. For more information on extended format sequential data sets, see “Choosing SVC dump data sets” on . page 13 © Copyright IBM Corp. 1988, 2017 49

78 Transaction dump Sequential data sets can use large format data sets (DSNTYPE=LARGE). Extended format sequential data sets can be placed in either track-managed space or cylinder-managed space. Transaction dump fully supports placing dump data sets in cylinder-managed space. Using preallocated dump data sets identifies To specify a pre-allocated data set, specify the DDNAME parameter that a data set. The data set must contain space in one for more extents for the entire dump to be written. DDNAME does not sufficient have a 2GB size restriction for the size of the dump. If the data set does not contain sufficient space, a partial dump is returned. Setting up allocation authority To allocate dump data sets automatically, the caller's and/or DUMPSRV address space must have authority to allocate new data sets. Do the following: 1. Associate the caller's and/or DUMPSRV address space with a user ID. If you have RACF Version 2 Release 1 installed, use the STARTED general resource class to associate the caller or DUMPSRV with a user ID. For this step, the RACF started procedures table, ICHRIN03, must have a generic entry. If you have an earlier version of RACF, use the RACF started procedures table, ICHRIN03. 2. Authorize caller's or DUMPSRV user ID to create new dump data sets using the naming convention in the following topic. qualifier group data sets. You can assign With the high-level of SYS1, the data sets are considered CREATE group authority to the caller's user ID within that group. See the following references for more information: z/OS Security Server RACF System Programmer's Guide • for information about the RACF started procedures table. z/OS Security Server RACF Security Administrator's Guide for information on using the STARTED general • resource class and on controlling creation of new data sets. Choices for IEATDUMP Data Sets Transaction dump processing supports both pre-allocated and automatically allocated dump data sets. The dump is allocated from the generic resource SYSALLDA. IEATDUMP processes the dump data sets in the following ways: first capturing the dump into a • For pre-allocated data sets, IEATDUMP writes to the data set without data space. The dump can contain more than 2 GB if the data set capacity permits. • For automatically allocated data sets, IEATDUMP processes the dump data sets depending on whether the dump section number symbol &DS. is used on the end of the data set name pattern: &DS. is not used on the end of the data set name pattern, IEATDUMP captures the dump and – If stores it in a data space; the data set is then allocated with the space required to contain the captured data; and the dump is written to disk. The dump cannot exceed 2 GB. If dynamic allocation fails, message IEA820I is issued, and the dump is deleted. &DS. first capture the dump is used on the end of the data set name pattern, IEATDUMP does not – If to a data space. Instead, IEATDUMP writes the dump directly to disk. If the size limit of the date set is reached, IEATDUMP allocates another dump with a higher value for &DS. . Each data set has an extent size of 500 M that can be changed using ACS routines. These extents are written to until the disk runs out of space or no more extents can be created. At that time, a new data set in the sequence is created. Multi-data set IEATDUMPs utilize up to 999 data sets. The maximum size depends on the amount of space on the volumes where these data sets get allocated. Before IPCS can process the data, you must combine all the data sets into one data set using IPCS COPYDUMP. 50 z/OS: MVS Diagnosis: Tools and Service Aids

79 Transaction dump Naming automatically allocated dump data sets The application has control of the name of the data sets created by the automatic allocation function, and you can select a name-pattern to allow for dump data set organization according to your needs. The name is determined through an installation-supplied pattern on the DSN(AD) keyword in the IEATDUMP macro. Names must conform to standard MVS data set naming conventions and are limited to 44 characters, A set of symbols is available so that you can qualifiers. including periods used as delimiters between include the following kinds of information in the names of your automatically allocated dump data sets: • System name • Sysplex name • Job name • Local and GMT time and date • Dump section number For a complete list of the symbols you can use, see the explanation of DUMPDS NAME= in z/OS MVS . System Commands Note: &SEQ. symbol is not supported for IEATDUMPs. 1. The &DS. symbol for splitting the dump between several data sets. When the 2. You can use the symbol &DS. is added to the end of the DSN name pattern, the transaction dump data can be placed into as many as 999 automatically-allocated 500M-extent data sets. Note that you must combine all the data sets into one data set using IPCS COPYDUMP before IPCS can process the data. When determining the pattern for the dump data set names, consider any automation tools you may have at your installation that work on dump data sets. Figure 22 on page 51 describes a SPFUSER name pattern. Note that the symbols are resolved into date and time, so they are preceded by an alphabetic character to conform to MVS data set name requirements. Also, the symbol starts with an ampersand (&) and ends with a period (.), resulting in a a One period ends the symbol, qualifier. finishes name pattern that has double periods when a symbol and the second serves as the delimiter between qualifiers of the generated data set name. APPL . TDUMP . D &DATE. . T &TIME. . &SYSNAME. . &JOBNAME. ──┬── │ ─┬── ──┬─── │ │ ──┬─── │ ───┬───── │ ────┬──── │ │ │ │ │ │ │ ┌─┘ │ │ │ │ │ │ │ │ ┌───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌─────┘ │ │ │ │ │ │ │ │ │ │ │┌───────┘ │ │ │ │ │ │ │ │ │ │ │ │ ││ ┌────────┘ │ │ │ │ │ │ │ │ │ │ │ ││ │ ┌───────────┘ │ │ │ │ │ │ │ │ ││ │ │┌─────────────┘ │ │ │ │ │ │ │ ││ │ ││ ┌───────────────┘ │ │ │ │ │ │ │ │ ││ │ ││ ┌─────────────────┘ │ │ │ │ │ │ │ │ ││ │ ││ │ │ ┌───────────────────┘ │ │ │ │ │ ││ │ ││ │ │ │ ┌───────────────────────┘ │ │ │ │ ││ │ ││ │ │ │ │ ┌──────────────────────────┘ │ │ │ ││ │ ││ │ │ │ │ │ │ │ │ │ ││ │ ││ │ │ │ │ ↓ ↓ ↓ ↓↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓ APPL.TDUMP.D970526.T110113.SYSTEM1.SPFUSER Figure 22: SPFUSER name pattern for automatically allocated dump data set Automatically allocated dump data sets are not added to the system's sysplex dump directory, as it is for SVC dumps. Communication from the system The system communicates about automatic allocation of dump data sets using three messages: • IEA827I is issued when a complete or partial dump multi-data set dump is taken. IEA827I is an informational message, it will not be issued highlighted. Transaction dump 51

80 Transaction dump • IEA822I is issued when a complete or partial dump is taken. IEA822I is an informational message, it is not issued highlighted. • IEA820I is issued once per Transaction dump when the dump cannot be taken or allocation fails. IEA820I is an informational message, it will not be issued highlighted. Obtaining transaction dumps Obtain a Transaction dump by issuing a IEATDUMP macro in an authorized or unauthorized program. In a sysplex, authorized applications might need dumps from more than one address space to collect all of the problem data. These dumps need to be requested at the same time. To request these multiple dumps, issue a IEATDUMP macro with a REMOTE parameter specifying the other address spaces involved in the problem. To help you set up these requests, the parameter can contain wildcards. If the installation gives names that form patterns to the systems in the sysplex and to jobs for associated work, you can use wildcards, * and ?, to specify the names. For example, use the name TRANS? for the jobnames TRANS1, TRANS2, and TRANS3 and the name TRANS* for TRANS1, TRANS12, and TRANS123. If a Transaction dump uses the REMOTE parameter to dump one or more address spaces on a pre- Note: release 4 system, the result will be a single SVC dump containing the requested data, instead of one or with the DSN parameter. Issue the DISPLAY more Transaction dumps written to data set names specified DUMP,STATUS command to determine the name of this SVC dump. Printing, viewing, copying, and clearing a dump data set Transaction Dumps are unformatted when created. Use IPCS to format a dump and then view it at a terminal or print it. For example, for a pre-allocated data set or a dump data set, the JCL shown in Figure 23 on page 52 does the following: identifies this • Uses the Transaction dump in the APPL.TDUMP00 data set. The IPCSTDMP DD statement data set. • Deletes the IPCS dump directory in the DELETE(DDIR) statement. This statement uses the USERID of identification. the batch job in the directory • Allocates the dump directory through the BLSCDDIR statement. The default is volume VSAM01. The example shows VSAM11. Override the default volume with the desired volume. • Formats the dump using the IPCS subcommands in LIST 0. To use this example, replace the LIST 0 z/OS MVS IPCS User's Guide for CLISTs. command with the desired IPCS subcommands or a CLIST. See //IPCSJOB JOB //IPCS EXEC PGM=IKJEFT01,DYNAMNBR=75,REGION=1500K //SYSPROC DD DSN=SYS1.SBLSCLI0,DISP=SHR //IPCSTDMP DD DSN=APPL.TDUMP00,DISP=SHR //SYSUDUMP DD SYSOUT=* //IPCSTOC DD SYSOUT=* //IPCSPRNT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * DELETE(DDIR) PURGE CLUSTER BLSCDDIR VOLUME(VSAM11) IPCS NOPARM SETDEF DD(IPCSTDMP) LIST NOCONFIRM LIST 0 END /* Figure 23: Example: JCL to Print, Copy, and Clear the Dump Data Set 52 z/OS: MVS Diagnosis: Tools and Service Aids

81 Transaction dump Contents of transaction dumps Transaction Dumps share parmlib member IEADMR00 to establish the dump options list at system specifies dump options NUC, SQA, LSQA, initialization. The IBM-supplied IEADMR00 parmlib member SWA, TRT, RGN, and SUM. for examples of IPCS output formatted from Transaction Dumps. z/OS MVS IPCS Commands See Customizing transaction dump contents You can customize the contents of a Transaction dump to meet the needs of your installation. For example, you might want to add areas to be dumped, reduce the dump size, or dump Hiperspaces. In most cases, you will customize the contents of a Transaction dump through the SDATA parameter of the IEATDUMP macro. Hiperspaces: Transaction Dumps do not include Hiperspaces. To include Hiperspace data in a Transaction Dump, you have to write a program to copy data from the Hiperspace into address space storage that is being dumped. Adding areas: If the dump, as requested, will not contain all the needed areas, see one of the following for ways to add the areas: • “Customized contents using the SDATA parameter” on page 53 • “Contents of summary dumps in transaction dumps” on page 55 Customized contents using the SDATA parameter The IBM-supplied default contents and the contents available through customization are detailed in Table 13 on page 53 . The tables show dump contents alphabetically by the parameters that specify the areas in the dumps. Before requesting a dump, decide what areas will be used to diagnose potential errors. Find the areas in the tables. The symbols in columns under the dump indicate how the area can be obtained in that dump; the order of the symbols is not important. D IBM-supplied default contents M Available on the macro that requests the dump P Available in the parmlib member that controls the dump options X Available on the CHNGDUMP operator command that changes the options for the dump type blank No symbol indicates that the area cannot be obtained. Note: System operator commands and assembler macros use the parameters in the table to specify dump contents. Table 13: Customizing transaction dump contents through the SDATA Parameter SDATA Parameter Dump Contents Transaction dump for IEATDUMP Macro Option The DAT-on and DAT-off nucleuses M P X ALLNUC Transaction dump 53

82 Transaction dump Table 13: Customizing transaction dump contents through the SDATA Parameter (continued) Transaction dump for SDATA Parameter Dump Contents IEATDUMP Macro Option Common service area (CSA) (that is, subpools 227, 228, 231, 241) CSA M P X and virtual storage for 64-bit addressable memory objects created using one of the following services: • IARV64 REQUEST=GETCOMMON,DUMP=LIKECSA • IARCP64 COMMON=YES,DUMP=LIKECSA • IARST64 COMMON=YES,TYPE=PAGEABLE Default areas LSQA, NUC, PSA, RGN, SQA, SUM, SWA, TRT M DEFS X ALL CSA, GRSQ, LPA, NUC, RGN, SQA, SUM, SWA, TRT M P X GRSQ Global resource serialization control blocks for the task being dumped: • Global queue control blocks • Local queue control blocks D IO Input/output supervisor (IOS) control blocks for the task being dumped: • EXCPD • UCB LPA Active link pack area (LPA): module names and contents M P X LSQA Local system queue area (LSQA) allocated for the address space (that D M P X is, subpools 203 - 205, 213 - 215, 223 - 225, 229, 230, 233 - 235, 249, 253 - 255), and virtual storage for 64-bit addressable memory objects created using one of the following services: IARV64 REQUEST=GETSTOR,DUMP=LIKELSQA • IARCP64 COMMON=NO,DUMP=LIKELSQA • IARST64 COMMON=NO • NUC Read/write portion of the control program nucleus (that is, only the M P X non-page-protected areas of the DAT-on nucleus), including: • CVT • LSQA • PSA • SQA Prefixed save areas (PSA) for the processor at the time of the error or D M P PSA the processor at the time of the dump Allocated pages in the private area of each address space being RGN M P X dumped, including subpools 0 - 127, 129 - 132, 203 - 205, 213 - 215, 223 - 225, 229, 230, 236, 237, 244, 249, 251 - 255, and virtual storage for 64-bit addressable memory objects created using one of the following services: • IARV64 REQUEST=GETSTOR,DUMP=LIKERGN • IARV64 REQUEST=GETSTOR,SVCDUMPRGN=YES • IARCP64 COMMON=NO,DUMP=LIKERGN IARST64 COMMON=NO • . Also, allocated eligible storage above the 2–gigabyte address. 54 z/OS: MVS Diagnosis: Tools and Service Aids

83 Transaction dump Table 13: Customizing transaction dump contents through the SDATA Parameter (continued) Transaction dump for SDATA Parameter Dump Contents IEATDUMP Macro Option System queue area (SQA) allocated (that is, subpools 226, 239, 245, SQA D M P X 247, 248) and virtual storage for 64-bit addressable memory objects created using one of the following services: • IARV64 REQUEST=GETCOMMON,DUMP=LIKESQA • IARCP64 COMMON=YES,DUMP=LIKESQA IARST64 COMMON=YES,TYPE=FIXED • IARST64 COMMON=YES,TYPE=DREF • SUM Summary dump (See “Contents of summary dumps in transaction D M P X .) dumps” on page 55 M P X SWA Scheduler work area (SWA) (that is, subpools 236 and 237) System trace, generalized trace facility (GTF) trace, and master trace, D M P X TRT as available Default system data Instruction address trace, if available D D Nucleus map and system control blocks, including: Default system data • ASCB for each address space being dumped • ASVT • Authorization table for each address space and secondary CVT (SCVT) • CVT, CVT prefix, • Entry tables for each address space • GDA • JSAB of each address space being dumped • Linkage stack • Linkage table for each address space • PCCA and the PCCA vector table • TOT • TRVT • UCB D Default system data DFP problem data, if DFP Release 3.1.0 or a later release is installed D Default system data Storage for the task being dumped and program data for all of its subtasks Default system data Storage: 4 kilobytes before and 4 kilobytes after the address in the D PSW at the time of the error Contents of summary dumps in transaction dumps When you request a summary dump, the SUM parameter requests many useful, areas with predefined one parameter. Summary dump does not contain volatile system information. The system writes the summary dump before it returns control to the dump requester; the summary information is saved for each address space that is being dumped. The Summary Dump contains: 1. ASID record for the address space of the dump task 2. Control blocks for the recovery termination manager (RTM): RTM2WA associated with all TCBs in the dumped address space Transaction dump 55

84 Transaction dump 3. Dump header, which is mapped by AMDDATA. in the z/OS Internet library (www.ibm.com/ For the AMDDATA mapping, see z/OS MVS Data Areas . servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) 4. 4 kb before and 4 kb after: All valid unique addresses in the PSWs in the RTM2WAs shown in the dump All valid unique addresses in the registers in the RTM2WAs shown in the dump 5. Supervisor control blocks: • Current linkage stack • Primary address space number (PASN) access list • Work unit access list in , see For information about control blocks that are listed in Table 13 on page 53 z/OS MVS Data Areas . the z/OS Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) Customizing contents through operator commands The dump options list for Transaction Dumps can be customized through a CHNGDUMP operator command by all the ways shown in Table 14 on page 56 . Nucleus areas in dumps: Dump options control the parts of the nucleus that appear in a dump. A diagnostician seldom needs to analyze all the nucleus. An installation can eliminate nucleus areas from dumps. If the IBM-supplied defaults are used, Transaction dump for an IEATDUMP macro contains the nucleus map and certain control blocks. Most problems can be debugged without dumping the nucleus. If a problem arises that requires the nucleus be dumped, use the CHNGDUMP operator command to add the NUC SDATA option to all IEATDUMPs. This also applies to other options. DAT, dynamic address translation, is the hardware feature that enables virtual storage. In the DAT-on part of the nucleus, the addresses are in virtual storage; in the DAT-off part of the nucleus, the addresses are in central storage. Table 14: Customizing transaction dump contents through operator commands Customization Effect Example parmlib member Change occurs : At system initialization Updating IEADMR00 To add the link pack area (LPA) to all Transaction dumps for IEATDUMP What changes : This parmlib member macros and SDATA, while keeping the establishes the dump options for local system queue area (LSQA) and Transaction dumps for IEATDUMP trace data, change the line in macros and SDATA. See “Contents of IEADMR00: for the transaction dumps” on page 53 list. SDATA=(LSQA,TRT,LPA) : At system initialization To add the link pack area (LPA) to all Adding the CHNGDUMP operator Change occurs parmlib command in IEACMD00 Transaction dumps for IEATDUMP : This command What changes member macros and SYSMDUMP, while keeping establishes the dump options for the local system queue area (LSQA) and Transaction dumps for IEATDUMP trace data, add the following command macros and SYSMDUMPS. See to IEACMD00: “Contents of transaction dumps” on page 53 for the list. CHNGDUMP SET,SYSMDUMP=(LPA) 56 z/OS: MVS Diagnosis: Tools and Service Aids

85 Transaction dump Table 14: Customizing transaction dump contents through operator commands (continued) Example Customization Effect Entering CHNGDUMP operator Change occurs : Immediately when To add the LPA to all Transaction command is processed command with SYSMDUMP parameter dumps for the IEATDUMP macro and SYSMDUMP, until changed by another on a console with master authority : What changes CHNGDUMP SYSMDUMP, enter: CHNGDUMP For the ADD mode: • CHNGDUMP SET,SYSMDUMP=(LPA) options are added to the current Transaction dump options list and to • To add the CHNGDUMP IEATDUMP in the macro or specified any options options list to all Transaction dumps: operator command that requested the dump. The options are added to CHNGDUMP SET,SYSMDUMP,ADD all Transaction dumps for IEATDUMP macros and SYSMDUMP, until another • To override all Transaction dumps CHNGDUMP SYSMDUMP operator with the CHNGDUMP IEATDUMP command is entered. options list: CHNGDUMP • For the OVER mode: options are added to the current CHNGDUMP SET,SYSMDUMP,OVER Transaction dump options list. The system ignores any options specified • To remove LPA from the IEATDUMP in the macro or operator command options list: that requested the dump. The options override all Transaction dumps for CHNGDUMP the IEATDUMP macro and DEL,SYSMDUMP=(LPA) SYSMDUMP, until a CHNGDUMP SYSMDUMP,ADD operator command is entered. • For the DEL option: CHNGDUMP options are deleted from the Transaction dump options list. When more than one CHNGDUMP operator command with IEATDUMP is entered, the effect is cumulative. Transaction dump 57

86 Transaction dump 58 z/OS: MVS Diagnosis: Tools and Service Aids

87 Stand-Alone dump Chapter 4. Stand-alone dump The stand-alone dump program (SADMP) produces a stand-alone dump of storage that is occupied by one of the following: • A system that failed. • A stand-alone dump program that failed. —, or the operator loaded another Either the stand-alone dump program dumped itself — a self-dump stand-alone dump program to dump the failed stand-alone dump program. The stand-alone dump program and the stand-alone dump together form what is known as the stand- alone dump service aid. The term stand-alone means that the dump is performed separately from normal system operations and does not require the system to be in a condition for normal operation. The stand-alone dump program produces a high-speed, unformatted dump of all of central storage, plus it can include user tailorable parts of paged-out virtual storage. The user generated stand-alone dump program must reside on a storage device that can be used to IPL from. Produce a stand-alone dump when the failure symptom is a wait state with a wait state code, a wait state with no processing, an instruction loop, or slow processing. You create the stand-alone dump program that dumps the storage. Use the AMDSADMP macro to produce the following: , with output directed to a tape volume or to a DASD • A stand-alone dump program that resides on DASD dump data set tape • A stand-alone dump program that resides on , with output directed to a tape volume or to a DASD dump data set. A stand-alone dump supplies information that is needed to determine why the system or the stand-alone dump program failed. You can create different versions of the stand-alone dump program to dump different types and amounts of storage. To create the different versions, code several AMDSADMP macros by varying the values of keywords on the macros. Before you begin, also consider reading the following topics: • For a set of best practices for optimizing stand-alone dump (SADMP) data capture, optimizing problem analysis time, and ensuring that the stand-alone dump is successful at capturing the necessary information for use by IBM Support, see the topic about Best practices for large stand-alone dump in z/OS Problem Management . • To enable your operators and the system to respond appropriately to disabled wait states, consider in z/OS MVS activating the AutoIPL function, see the topic about Using the automatic IPL function . Planning: Operations This information covers the following topics, which describe how to use stand-alone dump: • “Planning for stand-alone dump” on page 60 • “Creating the stand-alone dump program” on page 63 • “Generating the stand-alone dump program” on page 86 • “Running the stand-alone dump program” on page 96 • “Capturing a stand-alone dump quickly” on page 102 • “Copying, viewing, and printing stand-alone dump output” on page 103 • “Message output” on page 107 • “Analyzing stand-alone dump output” on page 108 © Copyright IBM Corp. 1988, 2017 59

88 Stand-Alone dump Planning for stand-alone dump There are several decisions you need make when planning for a stand-alone dump. You implement most of these decisions when you create the stand-alone dump program, either when you code the AMDSADMP macro, when you assemble the macro, or when you use the SADMP option on the IPCS Dialog. Some typical questions follow. Should I take a stand-alone dump to DASD or to tape? When choosing an output device for stand-alone dump, consider the need for operator intervention, the amount of operator intervention involved, and the amount of time the system will be unavailable. You can reduce the level of operator intervention during stand-alone dump processing by dumping to DASD. With an automation package set up to IPL the stand-alone dump program from DASD, stand-alone dump can be run from a remote site. When you dump to tape, an operator is required to handle other aspects of dumping, such as mounting or changing tapes, unless the tape is in an IBM Virtual Tape Server (VTS). The system is unavailable when a stand-alone dump is taken. The amount of time the system is for more unavailable depends upon the size of the dump. See “Dumping to a DASD data set” on page 78 information. If I do dump to DASD, how much space do I need? The maximum size of a single-volume DASD dump data set depends on the type of data set. • Conventional sequential (DSNTYPE=BASIC) data sets can span 65,535 tracks per volume, and can hold approximately 3 GB per volume. • Extended format (DSNTYPE=EXTREQ) data sets are supported by z/OS V1R6 and later releases. Extended format sequential data can hold 4,294,967,295 blocks per volume. The maximum size for extended format sequential is approximately 98,304 GB per volume. You cannot use striping or compression options for extended format sequential data sets. You must use the guaranteed free space option to require DFSMS to reserve space at the time that the data set is created. • Large format data sets are supported by z/OS V1R7 and later releases. Large format (DSNTYPE=LARGE) data sets can span 16,777,215 tracks per volume. The maximum size for large format data sets is 768 GB per volume. define a multi-volume If you require more space than you want to allocate on a single volume, you can DASD dump data set that can span up to 32 volumes of the same device type. Note: Beginning in z/OS V1R12, SADMP supports placement of dump data sets in cylinder-managed space. In releases prior to z/OS V1R12, stand-alone data sets must remain in track-managed space. Use the AMDSADDD REXX utility or the SADMP dump data set utility on the IPCS dialog to allocate and initialize a single volume DASD dump data set or a multi-volume DASD dump data set. This prepares the data set for use by the system where initialization is performed and for other systems that have access to the same data set using the same device numbers. For more information, see: • “Using the AMDSADDD utility” on page 79 • SADMP option on the IPCS Dialog in z/OS MVS IPCS User's Guide first volume is specified. The When using a multi-volume DASD dump data set, the device number of the other volumes are located by stand-alone dump using the information that is placed in the data set when it is initialized. All volumes are written concurrently by stand-alone dump. The data set is rejected if stand-alone dump is unable to access all volumes of the data set or if invalid control information is read from the data set during initialization. If you do not allocate enough space in your dump data set, the stand-alone dump program prompts the operator to continue dumping to another DASD dump data set or tape volume. You can continue dumping to any stand-alone dump supported device, however, after a tape device is selected, it must be used to complete the dump even though multiple volumes might be required. 60 z/OS: MVS Diagnosis: Tools and Service Aids

89 Stand-Alone dump IBM recommends that you allocate multiple dump data sets to perform a complete stand-alone dump. Can I dump to multiple dump data sets? Stand-alone dump does allow you to dump to multiple dump data sets. By coding the DDSPROMPT=YES keyword on the AMDSADMP macro, you can generate a stand-alone dump program that allows run-time dump data set prompting. When the Stand-alone dump program is initiated, message AMD001A is issued to prompt the operator for specified and run-time dump data set prompting is active, message an output device. If a DASD device is AMD002A is issued to prompt the operator for a dump data set name. Providing the dump data set is validly allocated and initialized on the output device, the stand-alone dump program uses the dump data set name specified. If message AMD099I is issued indicating that the dump data set is full, the operator can continue dumping to any stand-alone dump supported DASD dump data set or tape device by replying to message AMD001A (and possibly AMD002A) again. After the dump completes, message AMD104I is issued to indicate the entire set of devices and/or dump data sets that were used during the taking of the dump. By coding DDSPROMPT=NO on the AMDSADMP macro, the stand-alone dump program is generated without run-time dump data set prompting. In this case, replying to message AMD001A with a DASD device causes the stand-alone dump program to assume that the output dump data set is named SYS1.SADMP. Note: 1. Use the AMDSADDD REXX or the IPCS SADMP dump data set utilities to allocate and initialize the stand-alone dump data sets. specified. 2. The stand-alone dump program must locate the dump data set on the device that is Therefore, it is imperative that the necessary data set management steps be taken so that the stand- alone dump data sets are not placed into a migrated state or moved to a different volume. The dump data sets must also be exempt from any space management processing that releases unused space. 3. You can continue a dump to any stand-alone dump supported device, however, after a tape device is selected, it must be used to complete the dump even though multiple tape volumes might be required. See the following topics for more information: • For more information on dump data set processing, see the description of the DDSPROMPT keyword in the “Syntax of the AMDSADMP macro” on page 68 . • For more information on how to use multiple dump data sets with IPCS, see “Copying from multiple . dump data sets” on page 105 • For more information on performing tasks associated with creating, clearing, and reallocating SADMP data sets on DASD, see the SADMP option on the IPCS Dialog in z/OS MVS IPCS User's Guide . What can I name my DASD dump data sets? A stand-alone dump dump data set can be any valid MVS data set name, however, stand-alone dump has two requirements that are checked at both generation time and run-time: • The data set name must be 44 characters or less • The data set name must contain the text 'SADMP' as either part of, or as an entire data set qualifier In addition, because the generation process does not perform any allocation on the output device or specified on the OUTPUT= dump data set name, it is imperative that you ensure that the data set name keyword matches exactly the dump data set name allocated by the AMDSADDD REXX or IPCS SADMP data set utilities. The following are some additional rules to follow when specifying a dump data set name: specified should be fully qualified (without quotation marks) • The data set name specified as capital letters • The alphabetic characters in the dump data set name should be Stand-alone dump 61

90 Stand-Alone dump How much of the system should I dump? The situation dictates the amount of information you need to diagnose the failure. You can use the DUMP keyword to control the amount of storage you want dumped. See “Using the DUMP or ADDSUMM keyword for more information. to request additional storage or address spaces” on page 74 When should I specify the dump tailoring options? The most flexible way to specify the dump options for a stand-alone dump is to specify, on the DUMP keyword of the AMDSADMP macro, those areas of storage you normally always want dumped and additionally allow the operator who requests the dump to specify additional options by coding the PROMPT keyword on the AMDSADMP macro. In most cases, to simplify the dumping process, it is best to define specific dump options on the AMDSADMP macro and not use the PROMPT any installation keyword. See “Using the DUMP or ADDSUMM keyword to request additional storage or address spaces” on page 74 for more information. What type of security does the stand-alone dump program require? After the stand-alone dump program is properly created on a DASD residence volume, it resides in the SYS1.PAGEDUMP.Vvolser data set. To ensure that the stand-alone dump program is available and processes successfully, do not delete the data set or move it to another volume or pack. To protect the stand-alone dump program in SYS1.PAGEDUMP.Vvolser, use a password or a security product, such as RACF. If the data set is not protected, unauthorized users can read the dump data in SYS1.PAGEDUMP.Vvolser. Also consider protecting the stand-alone dump output dump data sets from unauthorized reading. z/OS Security Server RACF Security Administrator's Guide See for more information about protecting a data set. Should I use IEBGENER or the COPYDUMP subcommand to copy a dump to a data set? The recommended method is IPCS COPYDUMP. IPCS COPYDUMP can run without a dump directory being employed. Use the DEFER option when initiating the IPCS session to tell IPCS to defer accessing a dump directory until one is required. IPCS COPYDUMP has the ability to merge the records from a multi-volume SADMP and recapture the prioritized order used by SADMP to get the most important data into the dump data sets first. If SADMP is allowed to complete normally, IEBGENER and similar transcription programs can produce a logically complete dump data set that IPCS can process. However, IPCS performance, particularly IPCS dump initialization, degrades as more volumes are added to the SADMP data set. What is dumped when I run the stand-alone dump program? The default dump contains all areas of central storage and some areas of virtual storage that are not backed by central storage. The output of the stand-alone dump program includes: prefixed save areas (PSA) • The • The nucleus and extended nucleus • The system queue area (SQA) and the extended SQA • The common service area (CSA) and the extended CSA • Subpools 203-205, 213-215, 229, 230, 236, 237, 247, 248, and 249 for all address spaces • The local system queue area (LSQA) and the extended LSQA for eligible address spaces • The dump title provided by the operator; otherwise, the dump is untitled • The processor STORE STATUS information for each processor • Central storage from address 0 to the top of main storage (some blocks might be missing because of offline storage elements) • Virtual storage areas selected by the DUMP keyword, or selected by the operator at runtime. 62 z/OS: MVS Diagnosis: Tools and Service Aids

91 Stand-Alone dump • A message log, normally consisting of all console messages issued by the dump program, including suppressed messages. (To format and print the stand-alone dump message log, use the VERBEXIT SADMPMSG subcommand or the SADMPMSG option of the IPCS dialog.) • High virtual for the TRACE address space. • High virtual for the DUMPSRV address space. • High virtual for the GRS address space. • Dump records summarizing the zeroed pages in the dump • The full generalized trace facility (GTF) address space • Subpool 127 in the GRS address space • Data spaces whose names begin with ISG for the GRS address space • All of DUMPSRV's data spaces • The full cross-system coupling facility (XCF) address space • All of XCF's dataspaces • XES-related dataspaces for address spaces with an XES connection Note that this list does not imply an order of the stand-alone dump process. During stand-alone dump processing, several different messages are issued to indicate the progress of the dumping: • For real dump processing, AMD005I is issued. • For both real and virtual dump processing, AMD095I is issued every 30 seconds, followed by message AMD056I indicating that dumping of virtual storage has completed and AMD104I to indicate what output devices and/or dump data sets were used by the stand-alone dump program. Can I use my current version of the stand-alone dump program to dump a new version of z/OS? Always use the stand-alone dump version that is generated from the same release of z/OS that you want to dump. IBM does not guarantee that a different level of stand-alone dump will successfully dump anything other than the level of z/OS it was designed for. The new version of z/OS might have changed making the stand-alone dump program unable to locate vital information it needs to operate. When migrating to a new version of z/OS, IBM strongly recommends that you generate a new version of the stand-alone dump program built from the new z/OS system data sets. See “One-stage generation” on page 87 for more information. Creating the stand-alone dump program first step in creating a stand-alone dump program is selecting a tape or DASDas the stand-alone The dump IPL volume (residence volume). After you select the residence volume, you can create the stand- alone dump program. To create the stand-alone dump program, you: 1. Code the AMDSADMP macro. See “Coding the AMDSADMP macro” on page 67 . 2. Assemble the macro, placing the stand-alone dump program onto the residence volume in ready-to- load form. IBM recommends that you use one-stage generation when building or creating a stand- alone dump program for the currently executing version of MVS. Use the two-stage generation to create multiple stand-alone dump programs and to create a new version of the stand-alone dump program when migrating to a new version of MVS. See “Generating the stand-alone dump program” on . page 86 MNOTES from the AMDSADMP macro The output listing from the assembly can contain error messages, called MNOTES, that describe errors specification made while coding the AMDSADMP macro. To respond to one of these messages, check the of the macro and run the assembly step again. The meaning of the severity code is as follows: Stand-alone dump 63

92 Stand-Alone dump 8 Assembly processing ends 4 Warning 0 Informational AMDSADMP Messages, Explanations and Severity Codes AMDSADMP: COMPACT= IS NOT ALLOWED. IT MUST BE YES OR NO. COMPACT=YES HAS BEEN USED. compact Explanation: The system could not recognize the value specified on the COMPACT keyword. The stand-alone dump program will use the IDRC feature for the output tape if IDRC is installed. Severity Code: 0. conad AMDSADMP: CONSOLE ADDRESS IS INVALID. IT MUST BE A DEVICE NUMBER. 001F IS SUBSTITUTED. Explanation: The console address operand is not a valid device number of 3 or 4 hexadecimal digits. Severity Code: 0. AMDSADMP: CONSOLE PARM NOT DETECTED. DEFAULT (001F, 3278) WILL BE USED. specified specified correctly on the continuation Explanation: Either the console parameter was not or it was not statement. Continue the statement. The parameter was probably not continued correctly on the next defined beginning in any column from 4 through 16. interrupted parameter or field See Continuing JCL Statements in z/OS MVS JCL Reference . 0. Severity Code: contp AMDSADMP: CONSOLE TYPE IS INVALID. IT MUST BE A 4 DIGIT NUMBER. 3278 HAS BEEN USED. An incorrect console type was Only 3277, 3278, 3279, or 3290 are acceptable. Explanation: specified. Severity Code: 0. AMDSADMP: DEFAULT OUTPUT DEVICE T0282 WILL BE USED. Explanation: or was not specified, on the OUTPUT= parameter. A device number was incorrectly specified, 0. Severity Code: ipl IS INVALID. AMDSADMP: IPL= FIRST CHARACTER MUST BE D OR T, AND HAS BEEN REPLACED WITH A D. The IPL operand is incorrect. It is not prefixed with a 'D' or a 'T'. Explanation: Severity Code: 4. ipl IS TOO LONG. AMDSADMP: IPL= THE UNIT NAME WILL BE TRUNCATED. Explanation: The unit name can be at most 8 characters long. Severity Code: 4. 64 z/OS: MVS Diagnosis: Tools and Service Aids

93 Stand-Alone dump AMDSADMP Messages, Explanations and Severity Codes AMDSADMP: IPLUNIT WAS NOT SPECIFIED OR IPL= TYPE (D OR T) WAS SPECIFIED INCORRECTLY. UNIT WILL BE DEFAULTED TO SYSDA. as IPL=duuu, where ‘d’ is D for direct access or T for tape, and specified Explanation: The IPL parameter should be ‘uuu’ is a valid unit type or device number for the SADMP IPL volume as described by the UNIT=uuu JCL parameter. System Programmer Response: A device number consists of 3 or 4 hexadecimal digits. 0. Severity Code: AMDSADMP: MSG= IS INVALID. IT MUST BE ALL, ACTION, msg OR ALLASIDS. MSG=ALL HAS BEEN USED. The MSG operand is not ALL, ACTION, or ALLASIDS. Explanation: 0. Severity Code: AMDSADMP: DDSPROMPT= ddsprompt IS NOT ALLOWED. IT MUST BE YES OR NO. DDSPROMPT=YES HAS BEEN USED. Explanation: The DDSPROMPT operand is incorrect. It must be either ‘YES’ or ‘NO’. DDSPROMPT=YES is assumed. System Action: The SADMP program will be generated with run-time dump data set prompting active. 0. Severity Code: AMDSADMP: OUTPUT= IS INCORRECT. IT MUST BE EITHER output {T|D}UNIT OR (DUNIT,DATA SET NAME) . specified Explanation: The OUTPUT operand is incorrect. It must be in one of the following formats: • A ‘T’ or a ‘D’ followed by a device number • A ‘D’ followed by a device number and a data set name pair specified within parentheses. System Action: Generation continues, using the default for the OUTPUT operand, T0282, regardless of the format used. The output device must be System Programmer Response: specified as a 3-digit or 4-digit device number. You can change the OUTPUT parameter at run time, if the default is not what you want. 4. Severity Code: AMDSADMP: OUTPUT DUMP DATA SET NAME IS INCORRECT. THE DATA SET NAME IS GREATER THAN 44 CHARACTERS. Dunit,ddsname ) was specified, however, the data set name (ddsname) had a length greater Explanation: OUPTUT=( than 44 characters. Generation continues, however, no default dump data set name will be generated. System Action: System Programmer Response: If a default dump data set name is desired, correct the OUTPUT= specification and regenerate the SADMP program. 4. Severity Code: AMDSADMP: OUTPUT DUMP DATA SET NAME IS INCORRECT. IT MUST CONTAIN THE TEXT ‘SADMP’. OUPTUT=( Dunit,ddsname ) was specified, however, the data set name (ddsname) did not contain the Explanation: text ‘SADMP’ as either part of, or as an entire data set qualifier. Generation continues, however, no default dump data set name will be generated. System Action: If a default dump data set name is desired, correct the OUTPUT= specification and System Programmer Response: regenerate the SADMP program. Severity Code: 4. Stand-alone dump 65

94 Stand-Alone dump AMDSADMP Messages, Explanations and Severity Codes IS NOT ALLOWED. AMDSADMP: REUSEDS= reuseds VALID SPECIFICATIONS ARE NEVER, CHOICE, OR ALWAYS. REUSEDS=CHOICE HAS BEEN USED. The REUSEDS operand is not NEVER, CHOICE, or ALWAYS. Explanation: Generation continues, using the default for the REUSEDS operand, CHOICE. System Action: Severity Code: 0. AMDSADMP: ULABEL=NOPURGE IS NOT POSSIBLE FOR A TAPE RESIDENCE VOLUME. The ULABEL cannot be NOPURGE when the IPL device is tape. SADMP ignores your ULABEL Explanation: specification. 8. Severity Code: AMDSADMP: keyword IS AN OBSOLETE KEYWORD. IT IS IGNORED. SADMP GENERATION CONTINUES. specified on the AMDSADMP macro. SADMP no longer requires the LOADPT or Explanation: An obsolete keyword is TYPE keywords to create a stand-alone dump program. System Action: The system ignores the keyword and continues processing. To eliminate this MNOTE, remove the indicated keyword and its associated System Programmer Response: parameter from the generation JCL. 0. Severity Code: IS NOT VALID. THE AMDSADMP: ALIB= alib REQUIRED SYNTAX IS ALIB=(VOLSER,UNIT). The system could not recognize the parameters specified on the ALIB keyword. The correct syntax is Explanation: ALIB=(volser,unit), where volser is the volume serial number and unit is the UNIT=value of the device. The system ignores this keyword and continues. The second step JCL might be incorrect. System Action: Correct the syntax System Programmer Response: specified on the AMDSADMP macro and resubmit the JCL. 8. Severity Code: AMDSADMP: NUCLIB= IS NOT VALID. THE REQUIRED nuclib SYNTAX IS NUCLIB=(VOLSER,UNIT). specified on the NUCLIB keyword. The correct syntax Explanation: The system could not recognize the parameters is NUCLIB=(volser,unit), where volser is the volume serial number and unit is the UNIT=value of the device. The system ignores this keyword and continues. The second step JCL might be incorrect. System Action: System Programmer Response: Correct the syntax specified on the AMDSADMP macro and resubmit the JCL. 8. Severity Code: modlib IS NOT VALID. THE AMDSADMP: MODLIB= REQUIRED SYNTAX IS MODLIB=(VOLSER,UNIT). Explanation: The system could not recognize the parameters specified on the MODLIB keyword. The correct syntax is MODLIB=(volser,unit), where volser is the volume serial number and unit is the UNIT=value of the device. The system ignores this keyword and continues. The second step JCL might be incorrect. System Action: Correct the syntax specified on the AMDSADMP macro and resubmit the JCL. System Programmer Response: Severity Code: 8. 66 z/OS: MVS Diagnosis: Tools and Service Aids

95 Stand-Alone dump AMDSADMP Messages, Explanations and Severity Codes IS NOT VALID. THE AMDSADMP: LNKLIB= lnklib REQUIRED SYNTAX IS MODLIB=(VOLSER,UNIT). specified The system could not recognize the parameters on the LNKLIB keyword. The correct syntax Explanation: is LNKLIB=(volser,unit), where volser is the volume serial number and unit is the UNIT=value of the device. The system ignores this keyword and continues. The second step JCL might be incorrect. System Action: Correct the syntax on the AMDSADMP macro and resubmit the JCL. System Programmer Response: specified 8. Severity Code: IS INVALID. NO VALUE MAY BE contp AMDSADMP: CONSOLE TYPE SPECIFIED FOR SYSC. IT WILL BE IGNORED. Explanation: A console type was specified following the console name of SYSC. No console type is allowed for this console. specification. System Action: The system ignores the System Programmer Response: None. Severity Code: 0. AMDSADMP: CONSOLE ADDRESS SYSC MAY ONLY BE SPECIFIED FOR THE FIRST CONSOLE. IT WILL BE IGNORED. specified as the first Explanation: The console name SYSC was not console in the console list. SYSC can only be as the first console. specified System Action: The system ignores the specification. None. System Programmer Response: 0. Severity Code: AMDSADMP: ONLY SYSTEM CONSOLE DEFINED. DEFAULT (001F,3278) WILL ALSO BE USED. Explanation: defined. At least one 3270 console must also The console named SYSC was the only console that was be defined. defined System Action: The system a default console of (001F,3278). None. System Programmer Response: Severity Code: 0. AMDSADMP: REAL=ALL OR REAL=USED NOT SPECIFIED, THE DEFAULT REAL=ALL WILL BE USED. Either the REAL keyword was not specified or it was not specified correctly. REAL=ALL is the default. Explanation: 0. Severity Code: value IGNORED. AMDSADMP: POSITIONAL Explanation: A positional value other than PROMPT appeared as the first positional argument to the AMDSADMP macro. It was ignored. None. System Programmer Response: 0. Severity Code: Coding the AMDSADMP macro This section describes the coding of the AMDSADMP macro, including the following topics: • “Using the DUMP or ADDSUMM keyword to request additional storage or address spaces” on page 74 • “Dumping to a DASD data set” on page 78 Stand-alone dump 67

96 Stand-Alone dump Syntax of the AMDSADMP macro shows the syntax of the AMDSADMP macro and its parameters. Figure 24 on page 68 [symbol] AMDSADMP [,IPL={Tunit|Dunit| DSYSDA}] [,VOLSER={volser| SADUMP}] NOPURGE}] [,ULABEL={PURGE| 01F,3278})] [,CONSOLE=({cnum|(cnum,ctype) [,(cnum,ctype)]...| SYSDA}] [,SYSUT={unit| T0282}] [,OUTPUT={Tunit|Dunit|(Dunit,ddsname)| [,DUMP=('options')][,PROMPT] ALL}] [,MSG={ACTION|ALLASIDS| ALL|PHYSIN}] [,MINASID={ [,COMPACT={ YES|NO}] [,REUSEDS={ CHOICE|ALWAYS|NEVER}] [,ALIB=(volser,unit)] [,NUCLIB=(volser,unit)] [,MODLIB=(volser,unit)] [,LNKLIB=(volser,unit)] NO}] [,DDSPROMPT={YES| [,AMD029={ YES|NO}] NO}] [,IPLEXIST={YES| [,ADDSUMM=('options')] ALL|USED}] [,REAL={ Figure 24: Format of AMDSADMP Macro Instruction symbol An arbitrary name you can assign to the AMDSADMP macro. stand-alone dump uses this symbol to create a job name for use in the initialization step. AMDSADMP The name of the macro. IPL={Tunit|Dunit| DSYSDA } Indicates the device number, device type, or esoteric name of the stand-alone dump residence volume. The first character indicates the volume type; T for tape, D for DASD.stand-alone dump uses the unit character string as the UNIT=value to allocate the residence volume for initialization. A device number consists of 1 to 4 hexadecimal digits. To distinguish a device number from a unit type, the device number must be preceded by a slash (/); for example, you could specify IPL=D/ 410F . Otherwise, the dynamic allocation of the IPL device (IPLDEV DD-statement) may fail with reason code X'021C' (unavailable system resource). The default is IPL=DSYSDA. When you specify IPL=T, stand-alone dump assumes T3400. When you specify IPL=D, stand-alone dump assumes DSYSDA. Note: file used during stand-alone dump processing. 1. This device also contains a work 68 z/OS: MVS Diagnosis: Tools and Service Aids

97 Stand-Alone dump 2. It is not recommended to place the IPL text of stand-alone dump on a volume that contains page data sets. A restart of stand-alone dump (see “Running the stand-alone dump program” on page ) hangs during the real dump phase in this case. 96 SADUMP VOLSER={volser| } Indicates the volume serial number the system is to use to allocate the residence volume for initialization. When you specify a tape volume, it must be NL (no labels). VOLSER=SADUMP is the default. ULABEL={PURGE| NOPURGE } Indicates whether stand-alone dump deletes (PURGE) or retains (NOPURGE) existing user labels on a DASD residence volume.When you specify NOPURGE, the stand-alone dump program is written on cylinder 0 track 0 of the residence volume, immediately following all user labels. If the user labels fit on track 0, the initialization occupy so much space that the stand-alone dump program does not program issues an error message and ends. ULABEL=NOPURGE is the default. 01F,3278 CONSOLE=({cnum|(cnum,ctype)[,(cnum,ctype)]...| }) Indicates the device numbers and device types of the stand-alone dump consoles that stand-alone dump is to use while taking the dump. When you specify CONSOLE=cnum, stand-alone dump assumes (cnum,3278). You can specify from two to 21 consoles by coding: CONSOLE=((SYSC)|(cnum,ctype),(cnum,ctype),[,(cnum,ctype)]...) A device number consists of 3 or 4 hexadecimal digits, optionally preceded by a slash (/). Use a slash preceding a 4-digit device number to distinguish it from a device type. The 3277, 3278, 3279, and 3290 device types are valid, and are interchangeable. CONSOLE=(01F,3278) is the default. first console only. SYSC is a constant representing the You can specify CONSOLE=SYSC for the hardware system console. The specification of CONSOLE does not affect the availability of the system console. Note: SYSUT={unit| SYSDA } files Specifies during stand-alone the UNIT=value of the device that stand-alone dump uses for work dump initialization. You can specify the device as a group name (for example, SYSDA), a device type (for example, 3330), or a unit address (for example, 131). SYSUT=SYSDA is the default. OUTPUT={Tunit|Dunit|(Dunit,ddsname)| T0282 } Indicates the device type, number, and data set name that stand-alone dump uses as a default value if the operator uses the EXTERNAL INTERRUPT key to bypass console communication, or if the operator provides a null response to message AMD001A during stand-alone dump initialization. OUTPUT=T0282 is the default. specified as either a ‘T’ for tape or ‘D’ for DASD. The device type can be The device number consists of 3 or 4 hexadecimal digits, optionally preceded by a slash (/). Use a slash preceding a 4-digit device number to distinguish it from a device type. If the default device is a DASD, you can also set up a default dump data set name to use by specifying both the device and the dump data set name on the OUTPUT= parameter. You can specify the first volume of a multi-volume DASD data set. If you specify a default dump data set name it must: • Have a length that is 44 characters or less. qualifier. • Contain the text ‘SADMP’ as either part of, or as an entire data set Note that AMDSADMP processing does not allocate the data set or check to see that a valid MVS data set name has been provided. Therefore, you should insure that: Stand-alone dump 69

98 Stand-Alone dump • The AMDSADDD REXX is used to allocate and initialize the same data set name specified on the OUTPUT= keyword. specified (without quotation marks). should be fully • The data set name qualified • The necessary data set management steps are taken so that the stand-alone dump data sets are not placed into a migrated state or moved to a different volume. • Alphabetic characters appearing in the dump data set name should be as capital letters. specified If the default DASD device is to be used and no dump data set name is provided, the stand-alone dump program assumes that the default dump data set name is SYS1.SADMP if the DDSPROMPT=NO Otherwise, if DDSPROMPT=YES was specified, the stand-alone dump parameter was also specified. program prompts the operator at runtime for a dump data set name to use. Note: 1. At run-time, only a null response to message AMD001A causes the stand-alone dump program to use the default device and/or dump data set name. 2. Do not place a data set that is intended to contain a stand-alone dump on a volume that also contains a page data set that the stand-alone dump program might need to dump. When stand- alone dump initializes a page volume for virtual dump processing, it checks to see if the output dump data set also exists on this volume. If it does, the stand-alone dump program issues message AMD100I and does not retrieve any data from page data sets on this volume. Thus, the dump might not contain all of the data that you requested. This lack of data can impair subsequent diagnosis. 3. You cannot direct output to the stand-alone dump residence volume. options ' DUMP=' Indicates additional virtual storage that you want dumped. This storage is described as address ranges, dataspaces, and subpools in address spaces. When you do not specify DUMP, stand-alone dump does not dump any additional storage unless you specify PROMPT. See “Using the DUMP or for more ADDSUMM keyword to request additional storage or address spaces” on page 74 information. PROMPT Causes stand-alone dump, at run time, to prompt the operator for additional virtual storage to be specified for the DUMP dumped. The operator can respond with the same information that can be keyword. When you do not specify PROMPT, stand-alone dump does not prompt the operator to specify additional storage. See “Using the DUMP or ADDSUMM keyword to request additional storage or address spaces” on page 74 for more information. } ALL MSG={ACTION|ALLASIDS| Indicates the type of stand-alone dump messages that appear on the console. When you specify ACTION, stand-alone dump writes only messages that require operator action. When you specify ALL, stand-alone dump writes most messages to the console. However, messages AMD010I, AMD057I, AMD076I, AMD081I, and AMD102I appear only in the stand-alone dump message log. When you specified, except that specify ALLASIDS, the stand-alone dump program behaves as if MSG=ALL was message AMD010I also appears on the console. ALL is the default. This keyword has no effect on the stand-alone dump message log; even if you specify MSG=ACTION, the stand-alone dump virtual dump program writes all messages to the message log in the dump. MINASID={ ALL |PHYSIN} Indicates the status of the address spaces that are to be included in the minimal dump. Specify PHYSIN to dump the minimum virtual storage (LSQA and selected system subpools) for the physically swapped-in address spaces only. Specify ALL to dump the minimum virtual storage (LSQA and selected system subpools) for all of the address spaces. ALL is the default. At run time, if PHYSIN was specified, stand-alone dump writes message AMD082I to the operator's console to warn the operator that some virtual storage might be excluded from the dump. 70 z/OS: MVS Diagnosis: Tools and Service Aids

99 Stand-Alone dump COMPACT={ YES |NO} COMPACT(YES) compacts the data stored on a tape cartridge if theIDRC hardware feature is available on your tape drive. If the IDRC feature is available and you do not specify the COMPACT keyword, the default is YES, so that IDRC compacts the dump data. Otherwise, the data is handled as usual. REUSEDS={ |ALWAYS|NEVER} CHOICE output device Indicates whether stand-alone dump should reuse the dump data set on the specified when it determines that the data set is valid, however, it can contain data from a previous dump. first record in the data set matches the Stand-alone dump determines this by checking to see if the record that is written by the AMDSADDD rexx utility. When you specify ALWAYS, stand-alone dump dump data set. When you specify NEVER, stand- issues message AMD094I and reuses the specified alone dump issues message AMD093I and prompts the operator, through message AMD001A, for an output device. When you specify CHOICE, stand-alone dump informs the operator, with message AMD096A, that the data set is not reinitialized and requests permission to reuse the data set. See for defining, more information about clearing, and reallocating the dump data set. CHOICE is the default. ALIB=(volser,unit) Specifies the volume serial number and UNIT=value of the volume that contains all of the following system data sets: • SYS1.MODGEN • SYS1.LINKLIB • SYS1.NUCLEUS This parameter is valid only when you are generating the stand-alone dump program using two-stage generation. Note: The specification of the NUCLIB, LNKLIB, or MODLIB parameters overrides the corresponding specified on the ALIB parameter. value See “Using two-stage generation of stand-alone dump when migrating” on page 94 for information on the use of this parameter. NUCLIB=(volser,unit) Specifies the volume serial number and UNIT=value of the volume that contains the system data set SYS1.NUCLEUS. If you specify NUCLIB, there is no need to specify IPLTEXT, IPITEXT, DVITEXT, DPLTEXT and PGETEXT DD statements. Beginning with z/OS V1R12, this parameter is valid for one- stage generation JCL. Prior to z/OS V1R12, this parameter is valid only when you generate the stand- alone dump program using two-stage generation. See “One-stage generation” on page 87 for information on the use of this parameter. MODLIB=(volser,unit) the volume serial number and UNIT=value of the volume that contains the system data set Specifies SYS1.MODGEN. This parameter is valid only when you generate the stand-alone dump program using two-stage generation. See “Using two-stage generation of stand-alone dump when migrating” on page 94 for information on the use of this parameter. LNKLIB=(volser,unit) the volume serial number and UNIT=value of the volume that contains the system data set Specifies SYS1.LINKLIB. This parameter is valid only when you generate the stand-alone dump program using two-stage generation. See “Using two-stage generation of stand-alone dump when migrating” on for information on the use of this parameter. page 94 DDSPROMPT={YES| NO } DDSPROMPT=YES allows the stand-alone dump program to prompt the operator for an output dump specified, after replying to data set when dumping to a DASD device. When DDSPROMPT=YES is message AMD001A with a DASD device number, message AMD002A is also issued to prompt the operator for a dump data set name. DDSPROMPT=NO indicates that the stand-alone dump program should not prompt for a dump data set name when dumping to a DASD device. When DDSPROMPT=NO is specified, after replying to Stand-alone dump 71

100 Stand-Alone dump message AMD001A with a DASD device number, the stand-alone dump program uses data set SYS1.SADMP. DDSPROMPT=NO is the default. Note that regardless of the DDSPROMPT= keyword value, you can always use a default device and dump data set name by specifying the OUTPUT=(Dunit,ddsname) keyword. The stand-alone dump specified program uses the default values on the OUTPUT= keyword when the operator uses the EXTERNAL INTERRUPT key to bypass console communication, or if the operator provides a null response to message AMD001A. AMD029={ YES |NO} specified, If AMD029=NO is SADMP does not issue AMD029D when a 3270 console screen becomes full. SADMP behaves as if the operator had replied NO to AMD029D. This parameter is meaningless when the system console is used, because AMD029D is never issued for the system console. AMD029=YES is the default. } IPLEXIST={YES| NO specified, If IPLEXIST=YES is SADMP includes IPLEXIST with the ICKDSF parameters, so that ICKDSF does not prompt the operator with message ICK21836D if there is already IPL text on the volume. IPLEXIST=NO is the default. ADDSUMM=( 'options' ) Indicates additional address spaces that you want dumped during a summary phase. Default summary address spaces are always dumped during a summary phase. If you do not specify ADDSUMM, stand-alone dump dumps only the default summary address spaces unless you specify PROMPT, in which case you have the opportunity to dump additional address spaces at run time. See “Using the DUMP or ADDSUMM keyword to request additional storage or address spaces” on page for more information. 74 |USED} ALL REAL={ Indicates which real storage to dump. Specify USED to dump real storage that is being used at the time of the dump. Specify ALL to dump all real storage (used and unused). ALL is the default. Examples of Coding the AMDSADMP Macro The following examples show how to code the AMDSADMP macro to create various kinds of stand-alone dump programs. specified parameters to Figure 25 on page 72 shows the AMDSADMP macro coded without explicitly generate a direct access resident dump program. The defaults are: IPL=DSYSDA VOLSER=SADUMP ULABEL=NOPURGE CONSOLE=(01F,3278) SYSUT=SYSDA OUTPUT=T282 MSG=ALL MINASID=ALL COMPACT=YES REUSEDS=CHOICE DDSPROMPT=NO REAL=ALL DUMP1 AMDSADMP Figure 25: Example: Accepting All Defaults 72 z/OS: MVS Diagnosis: Tools and Service Aids

101 Stand-Alone dump In Figure 26 on page 73 tape as the residence volume, and the VOLSER , the IPL parameter specifies that tape. All other parameters are allowed to default. The defaults are: parameter identifies ULABEL=NOPURGE CONSOLE=(01F,3278) SYSUT=SYSDA OUTPUT=T282 MSG=ALL MINASID=ALL COMPACT=YES REUSEDS=CHOICE DDSPROMPT=NO REAL=ALL AMDSADMP IPL=T3400,VOLSER=SATAPE Figure 26: Example: Generating an unformatted, tape resident dump program In Figure 27 on page 73 , the OUTPUT parameter directs the stand-alone dump output to dump data set SYS1.SADMP on device 450, and the REUSEDS parameter specifies that the operator be prompted about whether to reuse the dump data set. The defaults are: IPL=DSYSDA VOLSER=SADUMP ULABEL=NOPURGE CONSOLE=(01F,3278) SYSUT=SYSDA MSG=ALL MINASID=ALL COMPACT=YES DDSPROMPT=NO REAL=ALL AMDSADMP OUTPUT=D450,REUSEDS=CHOICE Figure 27: Example: Generating a dump program with output to DASD In Figure 28 on page 73 , the OUTPUT parameter directs the stand-alone dump output to dump data set SADMP.DDS1 on device 450. Furthermore, the DDSPROMPT=YES keyword allows for run-time dump data set prompting. The defaults are: IPL=DSYSDA VOLSER=SADUMP ULABEL=NOPURGE CONSOLE=(01F,3278) SYSUT=SYSDA MSG=ALL MINASID=ALL COMPACT=YES REUSEDS=CHOICE REAL=ALL AMDSADMP OUTPUT=(D450,SADMP.DDS1),DDSPROMPT=YES Figure 28: Example: Generating a dump program with output to DASD Stand-alone dump 73

102 Stand-Alone dump Recommended specification during the build process is as follows: SP(ALL) IN ASID(1,'JESXCF') ALSO DATASPACES OF ASID(1,'JESXCF', 'APPC', 'SMSVSAM', 'CONSOLE', 'SYSBMAS') ALSO PAGETABLES OF DATASPACES If you run JES2, add: ALSO SP(ALL) IN ASID('JES2') Additional subpools and dataspaces might be needed, depending on your installed IBM, vendor, and locally-written products and applications. Using the DUMP or ADDSUMM keyword to request additional storage or address spaces You can request that stand-alone dump dump additional storage or additional address spaces in two ways: • Specifying DUMP options or ADDSUMM options on the AMDSADMP macro As the following example show, specify the dump tailoring options described in “Dump tailoring within parentheses and single quotation marks as the value of the DUMP keyword options” on page 75 on the AMDSADMP macro. DUMP=('SP(5,37,18) IN ASID('JES3')') DUMP=('RANGE(0:1000000) IN ASID(1)') DUMP=('DATASPACES OF ASID('DUMPSRV')') DUMP=('SADMPNO IN ASID('IOSAS')') Note: Do not double the quotation marks within the DUMP options. The DUMP options cannot exceed 255 characters in length. You can also specify additional summary address space as the value of the ADDSUMM keyword on the AMDSADMP macro. ADDSUMM=(‘ASID(’BPX*’)’) ADDSUMM=('ASID(28),ASID('JOHNDOE')’) ADDSUMM=(’ASID(’MYDB’,40,46:48)’) Do not double the quotation marks within the ADDSUMM options. The ADDSUMM options cannot Note: exceed 255 characters in length. Specifying additional dump options at run time • By coding the PROMPT keyword on the AMDSADMP macro, you can have Stand-alone dump prompt the operator to dump additional storage or specify additional address spaces to be dumped as part of summary phase. When you code PROMPT, and the virtual storage dump program gets control, stand- alone dump issues the AMD059D message: AMD059D ENTER 'DUMP' OR 'SET' OR ‘ADDSUMM’ WITH OPTIONS, 'LIST' OR 'END'. The operator can respond with one of the following: – DUMP followed by dump options. In this case, the ‘=’ after DUMP is optional. See “Dump tailoring for the possible dump options. options” on page 75 – SET followed by the MINASID or REAL options. – ADDSUMM followed by address space list to additionally be dumped as part of summary phase. In this case, the ‘=’ after ADDSUMM is optional. See “Dump tailoring options” on page 75 for the possible options. – LIST. On the console, stand-alone dump displays the current virtual storage areas to be dumped and address space list to be dumped during the summary phase. – END. Stand-alone dump stops prompting the operator for options and begins processing. 74 z/OS: MVS Diagnosis: Tools and Service Aids

103 Stand-Alone dump Figure 29 on page 75 shows a sample exchange between stand-alone dump and the operator. The operator's replies are in lowercase. Note the operator's reply to message AMD059D using the DUMP keyword and ADDSUMM keyword. AMD082I WARNING: THE MINASID SPECIFICATION HAS BEEN SET TO 'PHYSIN'. AMD059D ENTER 'DUMP' OR 'SET' OR ‘ADDSUMM’ WITH OPTIONS, 'LIST' OR 'END'. dump sp(0::9) inasid('jes2') AMD060I ERROR IN INPUT TEXT INDICATED BY '*': DUMP SP(0::9) INASID('JES2') * AMD065A ENTER TEXT TO BE SUBSTITUTED FOR THE TEXT IN ERROR. > AMD060I ERROR IN INPUT TEXT INDICATED BY '*': DUMP SP(0:9) INASID('JES2') ****** AMD065A ENTER TEXT TO BE SUBSTITUTED FOR THE TEXT IN ERROR. > in asid AMD082I WARNING: THE MINASID SPECIFICATION HAS BEEN SET TO 'PHYSIN'. AMD059D ENTER 'DUMP' OR 'SET' OR ‘ADDSUMM’ WITH OPTIONS, 'LIST' OR 'END'. > list AMD067I CURRENT DUMP OPTIONS: CSA ALSO LSQA, SP(203:205,213:215,229:230,236:237,247:249) IN ASID(PHYSIN) ALSO SP(0:9) IN ASID('JES2') ADDSUMM ASID('ALLOCAS','ANTAS000','ANTMAIN','CATALOG','CONSOLE','DEVMAN', 'DUMPSRV','GRS','IEFSCHAS','IOSAS','IXGLOGR','JESXCF','JES2','JES3','OMVS', 'SMSPDSE','SMSPDSE1','SMSVSAM','WLM','SMF','SMFXC','XCFAS') AMD082I WARNING: THE MINASID SPECIFICATION HAS BEEN SET TO 'PHYSIN'. AMD059D ENTER 'DUMP' OR 'SET' OR ‘ADDSUMM’ WITH OPTIONS, 'LIST' OR 'END'. > end Figure 29: Sample Console output from the stand-alone Dump Program When stand-alone dump detects an error in the reply to message AMD059D, it repeats the incorrect line at the console, underscores the incorrect part with asterisks, and prompts the operator for replacement text. If the dump options exceed 255 characters, stand-alone dump marks the whole line in error. If a system restart occurs during the virtual storage dump program, stand-alone dump re-prompts the operator for dump options. stand-alone dump does not use any of the dump options that the operator specified before the system restart. Dump tailoring options You can specify the dump tailoring options in one or all of the following ways: • On the DUMP keyword of the AMDSADMP macro. • On the ADDSUMM keyword of the AMDSADMP macro. • By the operator in reply to message AMD059D at run time. Following is a list of the dump tailoring options you can specify. For a complete explanation of the options, . see “Explanation of dump tailoring options” on page 76 |SET MINASID{ALL|PHYSIN}|SET REAL(ALL|USED)|ADDSUMM addsumm-spec-list |LIST|END} { dump-spec-list is one or more of the following: dump-spec-list • range-spec-list IN ASID( address-space-list ) [ALSO...] domain-spec-list [ ...] • DATASPACES OF domain-spec-list [ ...] • DSP OF • PAGETABLES OF DATASPACES range-spec-list is one or more of the following: subpool-list ) – SP( address-range-list ) – RANGE( Stand-alone dump 75

104 Stand-Alone dump – LSQA – HIGH VIRTUAL – SADMPNO is one of the following: subpool-list subpool-number - [,...] subpool-number TO - ALL address-range-list is one of the following: - [,...] address TO address - ALL is one of the following: address-space-list TO { asid | jobname – asid |SYSKEY|PHYSIN}[,...] – ALL addsumm-spec-list is the following: ) [, ASID( )][,...] address-space-list address-space-list • ASID ( address-space-list is the following: [ dlm asid – jobname [,...] asid ] | is ‘TO’ or ‘:’. dlm Use the following guidelines when specifying values in your dump tailoring options: • HIGH VIRTUAL cannot be used by itself; specify additional keywords. • SADMPNO cannot be used by itself; specify additional keywords. address is a hexadecimal number from 0 to X'7FFFFFFF'. • subpool-number • is a decimal number from 0 to 255. is a hexadecimal number from 0 to X'FFFF'. • asid jobname is a valid jobname enclosed in single quotation marks. Including wildcard characters is valid • for jobnames. For a description of wildcard characters, see the ASID('jjjj') option in the topic “Explanation of dump tailoring options” on page 76 . is a list of subpools, a list of storage ranges, or both. • range-spec-list is a list of address spaces. • domain-spec-list • ‘TO’ and ‘:’ are synonyms. • ‘DATASPACES’ and ‘DSP’ are synonyms. Keywords, such as DATASPACES, can be truncated on the right, provided the truncated form is not ambiguous. You can enter letters in either lower-case or uppercase. Blanks can be inserted between numbers, keywords, and separators; blanks cannot be inserted within numbers or keywords. Explanation of dump tailoring options This section provides an explanation for each of the dump tailoring options. xxxxxxxx:yyyyyyyy,xxxxxxxx:yyyyyyyy... ) RANGE( one or more ranges of storage that you want dumped. and yyy are hexadecimal xxx Specifies addresses from 0 to X'7FFFFFFF' RANGE(ALL) Specifies dumping of all storage from 0 to X'7FFFFFFF' ddd ) SP( ddd . ddd is a decimal integer from 0 to 255. Causes stand-alone dump to dump subpool 76 z/OS: MVS Diagnosis: Tools and Service Aids

105 Stand-Alone dump SP( eee ) ddd : to eee Causes stand-alone dump to dump all subpools from ddd , inclusive. eee eee,... ddd : : ) SP( , ddd Causes stand-alone dump to dump the combination of subpools that you specify. SP(ALL) Causes stand-alone dump to dump all subpools, from 0 to 255 inclusive. LSQA Causes stand-alone dump to dump the LSQA. HIGH VIRTUAL Causes stand-alone dump to dump all allocated paged out storage above 2G. This applies to storage that was not being excluded because of a SADMP=NO for specification. See “SADMPNO” on page 77 more information. SADMPNO Causes stand-alone dump to dump memory objects created with SADMP=NO in the address specified for space(s). See IARV64 in z/OS MVS Programming: Authorized Assembler Services Reference EDT-IXG more information. ASID( : yyyy ) xxxx Causes stand-alone dump to dump storage for the range of address spaces whose ASIDs begin at xxx yyy , inclusive. xxx and yyy are hexadecimal numbers from X'1' to X'FFFF'. and end at jjj ASID(‘ ’) jjj identifies. Causes stand-alone dump to dump storage for the address space that jobname Note that you must enclose the jobname in single quotation marks. You can use wildcard characters to identify multiple jobnames. The valid wildcard characters are: * Zero or more characters, up to the maximum length of the string. An asterisk can start the string, end it, appear in the middle of the string, or appear in several places in the string. A single asterisk for the jobname indicates that all jobnames match. ? One character. One or more question marks can start the string, end it, appear in the middle of the string, or appear in several places in the string. A single question mark indicates all jobnames consisting of one character. ASID(SYSKEY) Causes stand-alone dump to dump storage for all address spaces whose active TCB has an associated storage key of 0 to 7. ASID( combination ) specifications. An example of a valid combination is ASID(2, You can combine any of the above ‘IMSJOB’,SYSKEY). ASID(PHYSIN) Causes stand-alone dump to dump storage for physically swapped-in address spaces. ASID(ALL) Causes stand-alone dump to dump storage for all address spaces. Note that you cannot specify specifications. ASID(ALL) in combination with any of the other ASID DATASPACES OF ASID( qualifier ) DATASPACES OF ASID(qualifier) keyword, stand-alone dump dumps all When you specify the specified address space. For each requested data space, stand-alone data spaces owned by the dump: • Dumps pages backed by central storage during the central storage dump • Copies into central storage and dumps every page that is not a first reference page and not backed by central storage Stand-alone dump 77

106 Stand-Alone dump PAGETABLES OF DATASPACES keyword, stand-alone dump dumps paged-out When you specify the PAGETABLES OF DATASPACES virtual storage that contains the page tables for all data spaces. When stand-alone dump dumps the storage that you specify, stand-alone dump dumps all listed subpools specified specification of dump options. However, address spaces for each and address ranges in all stand-alone dump does not merge your specifications across the dump options that you specify. For example, to cause stand-alone dump to dump subpools 0 and 1 in address space A, and subpools 0 and 1 in address space B, enter: DUMP SP(0,1) IN ASID(A,B) To cause stand-alone dump to dump subpool 0 in address space A and subpool 1 in address space B, enter: DUMP SP(0) IN ASID(A) ALSO SP(1) IN ASID(B) specifications. Figure 30 on page 78 shows other examples of valid DUMP SP(0:7,15),RANGE(0:10000000) IN ASID(SYSKEY),ASID(8) DU (SP(0 TO 7 OR 15),SP(255)) IN AS(‘TCAM’) DUMP RANGE(ALL) IN ASID(1) ALSO SP(0) IN ASID(SYSKEY,8) DU DAT OF AS(ALL) DUMP ( SP(0:127) IN ASID(‘GENER’) ALSO SP(0) IN ASID(‘IMS’) ) DUMP LSQA IN AS('MYJOB',14) DU SP(128),LS IN ASID(C,PHYSIN) DUMP DATASPACES OF ASID('MYJOB??') DUMP DATASPACES OF ASID('MY*') DUMP HIGH VIRTUAL IN ASID(C) ADDSUMM ASID(3F),ASID(‘DEBBIE’) ADDSUMM ASID(’MYDB*’,40,46:48) AD AS(’MYJOB?’),AS(26,'REPORT') DUMP SADMPNO IN ASID('DUMPSRV') DUMP SADMPNO IN ASID(5,6,'XCFAS') Figure 30: Example of valid specifications Dumping to a DASD data set When you specify DASD on the OUTPUT parameter, you direct the output of the stand-alone dump program to a dump data set on one of the following types of DASD: predefined • 3380 • 3390 • 9345 Note: The selection of the output device (DASD or tape) can be made at both generation time and at run specified at run time overrides an output device specified at generation time. time. An output device When preparing to take a stand-alone dump to DASD, you must allocate and initialize the dump data set using the AMDSADDD REXX or IPCS SADMP dump data set utilities. The following requirements exist for the allocation of the DASD dump data set: qualifier. • The dump data set must have the text ‘SADMP’ as either part of, or as an entire data set • Do not place a data set that is intended to contain a stand-alone dump on a volume that also contains a page data set that the stand-alone dump program you might need to dump. When stand-alone dump initializes a page volume for virtual dump processing, it checks to see if the output dump data set also exists on this volume. If it does, the stand-alone dump program issues message AMD100I and does not retrieve any data from page data sets on this volume. Thus, the dump might not contain all of the data that you requested. This lack of data can impair subsequent diagnosis. defined on the same volume that contains the IPL text of stand-alone • The dump data set cannot be dump. 78 z/OS: MVS Diagnosis: Tools and Service Aids

107 Stand-Alone dump Note: Because the data set does not have to be cataloged, there can be more than one dump data set with the same name per system. Furthermore, because the data set can be uniquely named, there can be more than one dump data set per volume. define • IBM recommends that you the dump data set on a volume that does not contain any other data sets, especially volumes that contain sysplex couple data sets. This ensures maximum capacity when needed and avoid the possibility of other data sets being accessed by another system. • The dump data set must be both allocated and initialized using the AMDSADDD REXX or IPCS SADMP dump data set utilities. • Because the stand-alone dump program must be able to locate the dump data set on the output device being used, it is imperative that the necessary data set management steps be taken so that the stand- alone dump data sets are not placed into a migrated state or moved to a different volume. The dump data sets must also be exempt from any space management processing that releases unused space. the stand-alone dump program prompts the operator, with message When the dump data set is filled, AMD001A, to specify another output device. The stand-alone dump program can continue dumping to any stand-alone dump supported device, however, after a tape device is selected, it must be used to complete the dump even though multiple tape volumes can be required. Note: Dumping to multiple DASD dump data sets requires that each dump data set used has been preformatted by the AMDSADDD REXX or IPCS SADMP dump data set utilities. Using the AMDSADDD utility The REXX utility AMDSADDD resides in SYS1.SBLSCLI0. This section describes how to use the AMDSADDD REXX utility to: • Allocate and initialize the data set. See Figure 31 on page 83 for an example of allocating and initializing the dump data set. for an example of clearing the dump data set. • Clear (reinitialize) the data set. See Figure 34 on page 85 for an example of reallocating and • Reallocate and initialize the data set. See Figure 35 on page 86 initializing the dump data set The IPCS SADMP dump data set utility performs the same functions as the AMDSADDD REXX utility. See SADMP option on the IPCS Dialog z/OS MVS IPCS User's Guide for more information. See z/OS MVS IPCS in Customization for more information on the migration tasks involving AMDSADDD. The data set allocated by the AMDSADDD REXX utility must have these characteristics: • The data set name (DSNAME) must: – be 44 characters or less in length – contain the text 'SADMP' as either part of, or as an entire data set qualifier. For example, valid dump data set names are: – SYS1.SADMP – SADMP – SYSTEMA.SADMPDDS Invalid dump data set names are: – SYS1.DUMP.DATASET – SADUMP • The block size (BLKSIZE) must be: DASD BLKSIZE 3380, 9345 20800 Stand-alone dump 79

108 Stand-Alone dump 3390 24960 Stand-alone dump processing can use a 3390 DASD defined Note: with a block size of 20800; however, the allocated space is not fully utilized unless a block size of 24960 is used. The AMDSADDD REXX utility allocates 3390 DASD devices using a block size of 24960. • The logical record length (LRECL) must be 4160. • The record format (RECFM) must be FBS. • The data set must consist of a single extent. • The data set organization can be PS (DSORG=PS) or non-VSAM extended format (DSORG=PS-E). • Occupies space on 1-32 volumes. All stand-alone dump data sets that are SMS managed must have a STORCLAS with the GUARANTEED_SPACE attribute. All DSORG=PS-E data sets must: • Be SMS managed no compression • Have a DATACLAS that specifies specifies • Have a STORCLAS that a sustained data rate of zero (suppress striping). For SMS to honor the allocation request, your installation's automatic class selection (ACS) routines must configured to do so. For instructions on setting up an SMS environment, see the following publications: be z/OS DFSMS Using Data Sets • • z/OS DFSMSdfp Storage Administration You provide the volume, dump data set name, unit, space, and catalog disposition on the invocation of the specified, then a multi-volume data set is allocated and AMDSADDD REXX utility. If multiple volumes are specified, formatted. Up to 16 volumes can be all having the same device type. The amount of space specified for the data set is allocated on each volume. Special control information is written to multi-volume data sets to allow all of the volumes to be located when the data set is written to. This includes the device number of the volume. The data set is not usable by stand-alone dump if the control information is missing or invalid. If a volume of a multi-volume data set is moved to a new device number, the data set must be re-initialized to update the control information. The data set cannot be used by a system that has the volumes attached at a device number different than the system which writes the control information. simplifies When using multi-volume data sets, it is highly recommended that they be cataloged. This processing, as IPCS can easily be used to format and copy the dump data in the cataloged data sets. Syntax REXX requires that the specified parameters appear in the order listed. If you do not specify a Note: specification of that parameter. parameter, the AMDSADDD REXX utility prompts for a AMDSADDD {DEFINE|CLEAR|REALLOC} volser{(data set name)} (type[,[STORCLAS][,[DATACLAS][,[MGMTCLAS]]]]) [space] [YES|NO] [EXTREQ|LARGE|BASIC] [OPT|NO] or AMDSADDD {DEFINE|CLEAR|REALLOC} (volumelist){(data set name)} (type[,[STORCLAS][,[DATACLAS][,[MGMTCLAS]]]]) [space] [YES|NO] [EXTREQ|LARGE|BASIC] [OPT|NO] 80 z/OS: MVS Diagnosis: Tools and Service Aids

109 Stand-Alone dump Parameters AMDSADDD The name of the REXX utility. DEFINE|CLEAR|REALLOC Indicates the function to be performed by the AMDSADDD REXX utility: DEFINE Allocates and initializes a new dump data set. CLEAR Initializes an existing dump data set again. After you use CLEAR, the data set is ready for use. REALLOC Deletes an existing stand-alone dump data set, then reallocates and reinitializes a new stand- alone dump data set on the same volume(s), with the sole purpose of increasing its size. If the dump data set does not exist, AMDSADDD converts the function to a DEFINE request specified and continues using DEFINE processing. If the request to reallocate and reinitialize a new dump (for example, if you attempt to reallocate a new data set using more satisfied data set cannot be cylinders than are available), AMDSADDD might delete the existing dump data set. REALLOC can change the EATTR attributes of the dump data set and can also modify the DSNTYPE but cannot change data sets from SMS to non-SMS managed and vice versa. For example, DSNTYPE=BASIC/ LARGE to EXTREQ isn't allowed. Note: When specifying the REALLOC option for an existing multi-volume data set, the same list of as when the dataset was originally allocated. specified volumes must be volser{(data set name)} Indicates the VOL=SER= name of the volume on which the dump data set is to be allocated. Do not use the stand-alone dump residence volume or the volumes containing the system paging data sets. the dump data set name to be allocated on the volume. If data set name is Optionally, also defines specified, it must: qualified (without quotation marks) • be fully • have a length of 44 characters or less • contain the text 'SADMP' as either part of, or as an entire data set qualifier. specified, Note: the AMDSADDD utility will allocate the data set SYS1.SADMP If no data set name is on the specified volume. (vollist){(data set name)} vollist is a comma delineated list of volsers to use for the data set. A multi-volume data set will be volume is used to specify the data first allocated using the list of volumes. The device number of the set to stand-alone dump. Tip: When you take a stand-alone dump to a multi-volume data set it will be striped and take less time to capture. significantly [,[STORCLAS][,[DATACLAS][,[MGMTCLAS]]]]) (type Type indicates the device type on which the dump data set should be allocated. Valid DASD types are 3380, 3390, and 9345. STORCLAS The SMS storage class. DATACLAS The SMS data class. MGMTCLAS The SMS management class. For additional information on these classes, see z/OS MVS JCL Reference . Stand-alone dump 81

110 Stand-Alone dump space Indicates the number of cylinders for the dump data set to be allocated. For a multi-volume data set, this amount is allocated on each volume. configuration The size of your dump output depends on your storage and how much of that storage you choose to dump using the options of stand-alone dump. To estimate how much space, in cylinders, to allocate for your dump data set, use the number of cylinders of DASD that a typical dump to tape consumes when it has been copied to DASD for IPCS processing. If you do not allocate enough space, the stand-alone dump program prompts the operator, through message AMD001A and specified on the AMDSADMP macro), to specify a message AMD002A (if DDSPROMPT=YES was different device and/or a different dump data set so that dumping can continue. space option is, however, required option is not required with the CLEAR parameter. The The space with the DEFINE and REALLOC parameters. YES|NO whether the system is to catalog the dump data set. If you want the data set to be Specifies . or . If you do not want the data set to be cataloged, specify NO cataloged, specify N Y YES or N allows you to allocate multiple dump data sets with the same name. Specifying The catalog option is not required with the CLEAR parameter. The catalog option is, however, required with the DEFINE and REALLOC parameters. EXTREQ|LARGE|BASIC defined. Indicates the DSNTYPE of the dump data set to be EXTREQ requests an extended format dump data set. This data set must have the attribute DSNTYPE=EXTREQ. This attribute allows the system to place the data set in cylinder-managed space on extended access volumes. LARGE requests a large format dump data set, one with attribute DSNTYPE=LARGE that the system allows to span more than 64K tracks per volume. BASIC indicates that a large format dump data set is not desired. BASIC can be associated with a conventional dump data set or an extended format sequential dump data set, depending on other options. BASIC is the default. The dsntype option is not required with CLEAR parameter. The dsntype is optional with DEFINE and REALLOC parameters. The dsntype option with REALLOC must match with the existing dsntype option. OPT|NO Indicates the extended attributes of a dump data set. The EATTR option is not required with the CLEAR parameter. OPT Requests that extended attributes are optional. The system might store the dump data set in the cylinder-managed space on extended access volumes. NO Requests that extended attributes are not required. The default value is NO. Examples of running AMDSADDD interactively Figure 31 on page 83 shows an example of using the AMDSADDD REXX utility to allocate and initialize the dump data set with a size of 350 cylinders and a VOL=SER= of SAMPLE. Because no data set name is AMDSADDD allocates the dump data set SYS1.SADMP on the volume SAMPLE. specified, Stand-alone dump does not issue error messages during the processing of AMDSADDD. Stand- Note: alone dump does, however, pass messages to the operator from other sources, such as the TSO/E ALLOC command. 82 z/OS: MVS Diagnosis: Tools and Service Aids

111 Stand-Alone dump ------------------------- TSO COMMAND PROCESSOR ------------------- ENTER TSO COMMAND, CLIST, OR REXX EXEC BELOW: ===> exec 'sys1.sblscli0(amdsaddd)' What function do you want? Please enter DEFINE if you want to allocate a new dump dataset Please enter CLEAR if you want to clear an existing dump dataset Please enter REALLOC if you want to reallocate and clear an existing dump dataset Please enter QUIT if you want to leave this procedure define Please enter VOLSER or VOLSER(dump_dataset_name) or (VOLLIST) or (VOLLIST) (dump_dataset_name) sample Please enter the device type for the dump dataset Device type choices are 3380 or 3390 or 9345 (An SMS storage class, data class, and management class may also be specified with the device type) 3380 Please enter the number of cylinders 350 Do you want the dump dataset to be cataloged? Please respond Y or N y Specify the DSNTYPE. Reply BASIC or LARGE or EXTREQ BASIC Specify the extended attributes for the dump dataset. Reply OPT or NO NO IKJ56650I TIME-02:09:36 PM. CPU-00:00:01 SERVICE-7077780 SESSION-02:06:31 JANUARY 20,2017 Initializing output dump dataset with a null record: Dump dataset has been successfully initialized Results of the DEFINE request: Dump Dataset Name : SYS1.SADMP Volume : SAMPLE Device Type : 3380 Allocated Amount : 350 Figure 31: Using AMDSADDD to allocate and initialize a basic dump data set Figure 32 on page 84 shows an example of using the AMDSADDD REXX utility to allocate and initialize a multi-volume, large format dump data set with extended attributes and a size of 1500 cylinders on volumes DMC880 and DMC881 in storage class SADEXTND. Because no data set name is specified, AMDSADDD allocates the dump data set SYS1.SADMP on the specified volumes. Stand-alone dump 83

112 Stand-Alone dump --------------- TSO COMMAND PROCESSOR ------------------ ENTER TSO COMMAND, CLIST, OR REXX EXEC BELOW: ===> exec 'sys1.sblscli0(amdsaddd)' What function do you want? Please enter DEFINE if you want to allocate a new dump dataset Please enter CLEAR if you want to clear an existing dump dataset Please enter REALLOC if you want to reallocate and clear an existing dump dataset Please enter QUIT if you want to leave this procedure DEFINE Please enter VOLSER or VOLSER(dump_dataset_name) or (VOLLIST) or (VOLLIST)(dump_dataset_name) (dmc880,dmc881) Please enter the device type for the dump dataset Device type choices are 3380 or 3390 or 9345 (A SMS storage class, data class, and management class may also be specified with the device type) (3390,SADEXTND) Please enter the number of cylinders (per volume) 1500 Do you want the dump dataset to be cataloged? Please respond Y or N Y Specify the DSNTYPE. Reply BASIC or LARGE or EXTREQ LARGE Specify the extended attributes for the dump dataset. Reply OPT or NO OPT IKJ56650I TIME-02:09:36 PM. CPU-00:00:01 SERVICE-7077780 SESSION-02:16:31 JANUARY 20,2017 Note: Allocated space does not match requested amount Amount allocated: 1512 Amount requested: 1500 Initializing output dump dataset with a null record: Dump dataset has been successfully initialized Results of the DEFINE request: Dump Dataset Name : SYS1.SADMP Volume : DMC880 DMC881 Device Type : 3390 Allocated Amount : 1512 (per volume) Figure 32: Using AMDSADDD to allocate and initialize a multi-volume, large format dump data set Figure 33 on page 85 shows an example of using the AMDSADDD utility to allocate and initialize an extended format dump data set ‘SADMP.SAMPLE’ with a size of 400 cylinders in the cylinder-managed space. This SMS managed dump data set spans multiple volumes SADPK1 and SADPK2. In an extended address volume environment, some systems might round up the cylinders causing the requested amount and allocated amount to be different. In this case, a message is displayed that indicates the requested amount of cylinders and the allocated amount of cylinders. 84 z/OS: MVS Diagnosis: Tools and Service Aids

113 Stand-Alone dump ------------------------- TSO COMMAND PROCESSOR ------------------- ENTER TSO COMMAND, CLIST, OR REXX EXEC BELOW: ===> exec 'sys1.sblscli0(amdsaddd)' What function do you want? Please enter DEFINE if you want to allocate a new dump dataset Please enter CLEAR if you want to clear an existing dump dataset Please enter REALLOC if you want to reallocate and clear an existing dump dataset Please enter QUIT if you want to leave this procedure define Please enter VOLSER or VOLSER(dump_dataset_name) or (VOLLIST) or (VOLLIST)(dump_dataset_name) (SADPK1,SADPK2)(SADMP.SAMPLE) Please enter the device type for the dump dataset Device type choices are 3380 or 3390 or 9345 (An SMS STORAGE CLASS, DATA CLASS, AND MANAGEMENT CLASS MAY ALSO BE SPECIFIED WITH THE DEVICE TYPE) (3390,STORCLAS,DATACLAS,MGMTCLAS) Please enter the number of cylinders (per volume) 400 Do you want the dump dataset to be cataloged? Please respond Y or N y Specify the DSNTYPE. Reply BASIC or LARGE or EXTREQ EXTREQ Specify the extended attributes for the dump dataset. Reply OPT or NO OPT TIME-11:54:59 PM. CPU-00:00:00 SERVICE-58954 SESSION-00:07:25 AUGUST 1,2009 Note: Allocated space does not match requested amount Amount allocated: 420 Amount requested: 400 Initializing output dump dataset with a null record: Dump dataset has been successfully initialized Results of the DEFINE request: Dump Dataset Name : SADMP.SAMPLE Volume : SADPK1 SADPK2 Device Type : 3390 Allocated Amount : 420 (per volume) Figure 33: Using AMDSADDD to Allocate and Initialize an Extended Dump Data Set Figure 34 on page 85 shows an example of using the AMDSADDD REXX utility to clear (reinitialize) an existing dump data set called SADMP.DDS1 on VOL=SER=SAMPLE. In this example, the parameters are part of the invocation of the utility; therefore, AMDSADDD does not prompt for values. ------------------------- TSO COMMAND PROCESSOR --------------------- ENTER TSO COMMAND, CLIST, OR REXX EXEC BELOW: ===> exec exec 'sys1.sblscli0(amdsaddd)' 'clear sample(sadmp.dds1) 3380' IKJ56650I TIME-11:00:00 PM. CPU-00:00:00 SERVICE-20191 SESSION-00:09:55 JUNE 14,1994 Initializing output dump dataset with a null record: Dump dataset has been successfully initialized Results of the CLEAR request: Dump Dataset Name : SADMP.DDS1 Volume : SAMPLE Device Type : 3380 Allocated Amount : 350 *** Figure 34: Using AMDSADDD to Clear an Existing Dump Data Set shows an example of using the AMDSADDD REXX utility to allocate a new dump Figure 35 on page 86 data set called SYSTEM1.SADMPDDS on VOL=SER=SMS001. In this example, the parameters are part of the invocation of the utility; therefore, AMDSADDD does not prompt for values. Note: In an SMS environment, it is possible to have the dump data set cataloged on a different volume specified. If the dump data set is allocated on a different volume, AMDSADDD issues an error than the one , the dump data set was not allocated on the specified message and exits. In Figure 35 on page 86 volume causing AMDSADDD to delete the dump data set, issue an error message and quit. Stand-alone dump 85

114 Stand-Alone dump -----------------------TSO COMMAND PROCESSOR------------------------ ===>exec exec 'sys1.sblscli0(amdsaddd)' ‘Define SMS001(SYSTEM1.SADMPDDS) 3390 100 Y LARGE’ IKJ56650I TIME-11:00:00 PM. CPU-00:00:00 SERVICE-20191 SESSION-00:09:55 JUNE 14,1994 Error: output dump dataset not allocated on specified volume SMS001 Try using a Storage Class with Guaranteed Space *** --------------------------------------------------------------------- Figure 35: Using AMDSADDD to Reallocate the Dump Data Set Examples of running AMDSADDD in batch mode The following examples show how to use JCL to allocate and initialize dump data sets. Note: Because users cannot be prompted to enter values when invoking the AMDSADDD REXX utility in batch mode, you must specify all parameters in the order listed. Figure 36 on page 86 shows how to use JCL to allocate and initialize the dump data set SYS1.SADMP.A1 on VOL=SER=ZOSSVA with a size of 2653 cylinders. The BASIC type of data set is allocated because the dsntype parameter is not specified. //STEP1 EXEC PGM=IKJEFT01,REGION=64M //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * EXEC 'SYS1.SBLSCLI0(AMDSADDD)' + 'DEFINE ZOSSVA(SYS1.SADMP.A1) 3390 2653 N' /* Figure 36: Example: Using JCL to allocate and initialize a dump data set shows how to use JCL to allocate and initialize an extended format dump data set Figure 37 on page 86 named SADMP.DS on VOL=SER=USRDS1 with a size of 2953 cylinders in the cylinder-managed space. //SAMPLE JOB ‘S3031,B707000,S=C’, ‘BATCH EXAMPLE’, RD=R, // MSGLEVEL=(1,1),CLASS=E,NOTIFY=&SYSUID,MSGCLASS=H //STEP1 EXEC PGM=IKJEFT01,REGION=64M //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * EXEC ‘SYS1.SBLSCLI0.EXEC’ ‘DEFINE USRDS1(SADMP.DS)(3390,storclas) 2953 Y EXTREQ OPT’ /* Figure 37: Example: Using JCL to allocate and initialize an extended format dump data set Generating the stand-alone dump program After coding the AMDSADMP macro, you can generate the stand-alone dump program. There are two ways to generate the stand-alone dump program: • “One-stage generation” on page 87 • “Two-stage generation” on page 92 IBM recommends that you use one-stage generation to create the stand-alone dump program because multiple tasks are performed in one-stage. Note: You can use either two-stage or one-stage JCL when migrating to a new version of MVS. 86 z/OS: MVS Diagnosis: Tools and Service Aids

115 Stand-Alone dump One-stage generation In one-stage generation, run the AMDSAOSG program as a single job, using the AMDSADMP macro you have coded as input data on the GENPARMS control statement. The stand-alone dump utility program, AMDSAOSG, initializes a stand-alone dump residence volume in one job by dynamically allocating data sets and invoking the appropriate programs. To run the one-stage generation program, indicate one AMDSADMP macro as a control statement for DDNAME GENPARMS. //SADMPGEN JOB MSGLEVEL=(1,1) //OSG EXEC PGM=AMDSAOSG,REGION=5M //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.MODGEN,DISP=SHR //TRK0TEXT DD DSN=&TRK0TEXT,DISP=(,PASS), // SPACE=(4096,(2,1)),UNIT=SYSDA //DSFSYSIN DD DSN=&DSFSYSIN,DISP=(,PASS), // SPACE=(80,(4,1)),UNIT=SYSDA //GENPRINT DD DSN=SADMP.LIST,DISP=OLD //GENPARMS DD * AMDSADMP IPL=DSYSDA,VOLSER=SPOOL2, X CONSOLE=(1A0,3277) END /* //PUTIPL EXEC PGM=ICKDSF,REGION=5M //IPLDEV DD DISP=OLD,UNIT=SYSDA, // VOL=(PRIVATE,RETAIN,SER=SPOOL2) //TRK0TEXT DD DSN=&TRK0TEXT,DISP=(OLD,DELETE) //SYSIN DD DSN=&DSFSYSIN,DISP=(OLD,DELETE) //SYSPRINT DD SYSOUT=* Figure 38: Example: One-stage generation contains the DDNAMES AMDSAOSG uses, and the defaults for the DDNAMES. Table 15 on page 87 Additional related notes follow this table. Table 15: DDNAMES and defaults used by AMDSAOSG. Use ddname Default value DSN=SYS1.NUCLEUS(AMDSADPL),DISP=SHR Input for AMDSABLD. DPLTEXT DSN=SYS1.NUCLEUS(AMDSADVI),DISP=SHR Input for AMDSABLD. DVITEXT Must be preallocated. Input for AMDSAOSG, passed to GENPARMS assembler. SYSOUT=A Output listing from AMDSAOSG. GENPRINT IPITEXT DSN=SYS1.NUCLEUS(AMDSAIPI),DISP=SHR Input for AMDSABLD. IPLDEV Stand-alone dump program, DSN=SYS1.PAGEDUMP.Vvolser,UNIT=iplunit, output from AMDSABLD. ICKDSF VOL=(PRIVATE,SER=iplser), uses VOL keywords to describe the residence volume. Tape IPL volume. DISP=OLD,DCB=(BLKSIZE=12288,RECFM=U, DSORG=PS), LABEL=(,NL) DISP=(NEW,KEEP),DCB=(LRECL=4096, DASD IPL volume. BLKSIZE=4096,RECFM=F,DSORG=PS),SPACE=(4096, (1095),,CONTIG), LABEL=EXPDT=99366 IPLTEXT DSN=SYS1.NUCLEUS(AMDSAIPD),DISP=SHR for DASD Input for AMDSABLD. DSN=SYS1.NUCLEUS(AMDSAIPT),DISP=SHR for tape DSN=SYS1.NUCLEUS(AMDSAPGE),DISP=SHR Input for AMDSABLD. PGETEXT Must not be pre-allocated Temporary listings from called SYSPRINT programs. Stand-alone dump 87

116 Stand-Alone dump Table 15: DDNAMES and defaults used by AMDSAOSG. (continued) Use ddname Default value DSN=&OBJ,UNIT=SYSDA,SPACE=(80,(250,50)) SYSPUNCH Object module passed from assembler to AMDSABLD. None Assembly messages. SYSTERM file SYSUT1 UNIT=SYSDA,SPACE=(1700,(400,50)) Work for assembler. Cylinder 0, Track 0 Must be preallocated. TRK0TEXT IPL text from AMDSABLD to ICKDSF (DASD only). SYSIN input for ICKDSF DSFSYSIN DSN=&DSFSYSIN, DISP=(,PASS), SPACE=(80,(4,1)), UNIT=SYSDA Note: must 1. You specify the GENPARMS DDNAME on the job step. 2. You cannot specify the SYSPRINT and SYSIN DD statements in the job step. 3. In GENPARMS, you specify values for UNIT= and VOLSER= on the AMDSADMP macro statement. 4. You must specify SYSLIB TRK0TEXT and DFSSYSIN statements. 5. The JCL shown in Figure 39 on page 88 generates a stand-alone dump from DASD 222 using a volume serial of SADMPM. The output is directed to the data set SYS1.SADMP on a DASD 450. Stand-alone dump determines at run-time if that device is usable. If the dump data set on device 450 is not usable, the operator will be prompted for another data set. The operator can press enter on any of the consoles at address 041, 042, 0A0, 3E0, or 3E1. The dump will include the default storage ranges in those address spaces that are physically-swapped in at the time of the dump. In addition, all storage in ASID 1 and the JES2 address spaces will be dumped. Stand-alone dump will also dump the data spaces created by the DUMPSRV address space. //OSG EXEC PGM=AMDSAOSG,REGION=5M //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.MODGEN,DISP=SHR //TRK0TEXT DD DSN=&TRK0TEXT,DISP=(,PASS), // SPACE=(4096,(2,1)),UNIT=SYSDA //DSFSYSIN DD DSN=&DSFSYSIN,DISP=(,PASS), // SPACE=(80,(4,1)),UNIT=SYSDA //GENPARMS DD * AMDSADMP CONSOLE=((041,3277),(042,3277),(0A0,3277), X (3E0,3277),(3E1,3277)), X DUMP='SP(ALL) IN ASID(1,'JES2') ALSO DATASPACES X OF ASID('DUMPSRV')', X IPL=D222, X MINASID=PHYSIN, X OUTPUT=D450, X REUSEDS=NEVER, X PROMPT, X VOLSER=SADMPM END /* //PUTIPL EXEC PGM=ICKDSF,REGION=4M //IPLDEV DD DISP=OLD,UNIT=SYSDA, // VOL=(PRIVATE,RETAIN,SER=SADMPM) //TRK0TEXT DD DSN=&TRK0TEXT,DISP=(OLD,DELETE) //SYSIN DD DSN=&DSFSYSIN,DISP=(OLD,DELETE) //SYSPRINT DD SYSOUT=* Figure 39: Example: One-stage generation of stand-alone dump to a DASD The JCL shown in Figure 40 on page 89 generates a stand-alone dump from tape 333 using a volume serial of TSADMP. The output is directed to the unlabeled volume on tape 550. Stand-alone dump determines at runtime if that device is usable. If the dump data set on device 550 is not usable, the 88 z/OS: MVS Diagnosis: Tools and Service Aids

117 Stand-Alone dump operator is prompted for another data set. The operator can press enter on any of the consoles at address 051,052, 0A0, 3E0, or 3E1. The dump includes the default storage ranges in all address spaces at the time of the dump. In addition, the data spaces of master, XCF and OMVS address spaces are also included in the stand-alone dump. //SADMPGEN JOB MSGLEVEL=(1,1) //OSG EXEC PGM=AMDSAOSG,REGION=5M //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.MODGEN,DISP=SHR //GENPARMS DD * AMDSADMP IPL=T333,VOLSER=TSADMP, X CONSOLE=((051,3277),(052,3277), X (0A0,3277),(3E0,3277),(3E1,3277)), X DUMP='SP(ALL) IN ASID(ALL) X ALSO DSP OF ASID(1,'XCFAS','OMVS')', X MINASID=ALL, X OUTPUT=(500), X REUSEDS=NEVER, X PROMPT X END /* Figure 40: Example: One-stage generation of stand-alone dump to tape The output from AMDSAOSG contains a listing for the stand-alone dump common communication table (CCT) and device and dump options (DDO) control blocks that contain information specified at generation time. The remainder of the output consists of messages, including message AMD064I, from both stand- alone dump and, when the residence volume is direct access, the device utility ICKDSF. Table 16 on page 89 lists the codes AMDSAOSG returns in message AMD064I. Table 16: AMDSAOSG return codes Explanation Return Code Residence volume initialized 0 Residence volume not initialized due to an error, or a warning was issued during AMDSADMP 4 assembly Residence volume not initialized; GENPRINT could not be opened 8 See z/OS MVS System Messages, Vol 1 (ABA-AOM) for more information about AMD064I. Considerations when using one-stage generation When generating the stand-alone dump program using one-stage generation, do the following: • Ensure that the SYSLIB DDNAME concatenates SYS1.MODGEN to SYS1.MACLIB. Your installation should catalog the SYS1.MODGEN data set before generating the stand-alone dump program. Otherwise, the JCL that stand-alone dump produces will fail to create the stand-alone dump program. • If you are generating stand-alone dump for residence on a direct access volume, AMDSAOSG creates and loads a SYS1.PAGEDUMP.Vvolser data set containing the stand-alone dump program and places an IPL text on the volume. If the volume already contains a SYS1.PAGEDUMP.Vvolser data set, AMDSAOSG will fail. While AMDSAOSG is running, the mount attribute of the volume must be PRIVATE. • When generating the stand-alone dump program from a Magnetic Tape Subsystem, be aware of which tape format you use or you might not be able to IPL the program. Specifically, IPL processing will end abnormally if you: – Generate stand-alone dump on a 3490E Magnetic Tape Subsystem and use a tape subsystem other than a 3490E for IPL. – Generate stand-alone dump on a tape subsystem other than a 3490E and use a 3490E Magnetic Tape Subsystem for the IPL. Stand-alone dump 89

118 Stand-Alone dump Using one-stage generation of stand-alone dump when migrating When migrating to a new version of MVS, generate a new version of the stand-alone dump program. Use the new MVS system data sets to build the new version of the stand-alone dump program. Always use a stand-alone dump version that is generated from the same release of MVS that you want to dump. IBM does not guarantee that a different level of stand-alone dump can successfully dump anything other than the level of MVS it was designed for. The new version of MVS might have changed making the stand-alone dump program unable to locate vital information it needs to operate. To generate a new version of the stand-alone dump program, follow the same steps you followed for a normal one-stage generation, then add the following steps: • Specifying the correct SYSLIB data set to ensure the new version of the AMDSADMP macro is in use. • Beginning with z/OS V1R12, use the NUCLIB parameters on the AMDSADMP macro invocation to create the correct one-stage JCL. Use the following JCL examples for DASD when migrating to a new level of MVS: . • One-stage generation JCL (beginning with z/OS V1R12) for a DASD, see Figure 41 on page 90 • One-stage generation JCL (any release prior to z/OS V1R12) for a DASD, see Figure 42 on page 91 . The JCL shown in Figure 41 on page 90 assembles the version of the AMDSADMP macro contained in the SYSLIB data set SYS1.MACLIB, found on a 3390 DASD with volser=NEWSYS. Because the NUCLIB is specified, one-stage JCL uses the SYS1.NUCLEUS system data sets found on the 3390 DASD with volser=NEWSYS. The stand-alone dump is saved on DASD device 560 in the SYS1.SADMP data set. //ASSEMSAD JOB MSGLEVEL=(1,1) //OSG EXEC PGM=AMDSAOSG,REGION=5M //STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR,UNIT=3390, // VOL=SER=NEWSYS //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR, // UNIT=3390,VOL=SER=NEWSYS // DD DSN=SYS1.MODGEN,DISP=SHR,UNIT=3390, // VOL=SER=NEWSYS //TRK0TEXT DD DSN=&TRK0TEXT,DISP=(,PASS), // SPACE=(4096,(2,1)),UNIT=3390 //DSFSYSIN DD DSN=&DSFSYSIN,DISP=(,PASS), // SPACE=(80,(4,1)),UNIT=3390 //GENPRINT DD SYSOUT=* //GENPARMS DD * AMDSADMP IPL=DSYSDA,VOLSER=SADASD, X DUMP=('DATASPACES OF ASID('XCFAS', X 'CTTX','APPC')'), X MINASID=ALL,PROMPT,MSG=ALL, X CONSOLE=((020,3277),(030,3277), X (040,3277),(050,3277)), X OUTPUT=D560, X NUCLIB=(NEWSYS,3390) X END /* //PUTIPL EXEC PGM=ICKDSF,REGION=4M //IPLDEV DD DISP=OLD,UNIT=SYSDA, // VOL=(PRIVATE,RETAIN,SER=SADASD) //TRK0TEXT DD DSN=&TRK0TEXT,DISP=(OLD,DELETE) //SYSIN DD DSN=&DSFSYSIN,DISP=(OLD,DELETE) //SYSPRINT DD SYSOUT=* Figure 41: One-stage generation JCL for a DASD (beginning with z/OS V1R12) shows JCL that assembles the version of the AMDSADMP macro contained in the Figure 42 on page 91 SYSLIB data set SYS1.MACLIB, found on a 3390 DASD with volser=NEWSYS. It uses SYS1.NUCLEUS 90 z/OS: MVS Diagnosis: Tools and Service Aids

119 Stand-Alone dump system data set found on 3390 DASD with volser=NEWSYS as suggested by IPLTEXT, IPITEXT, DVITEXT, DPLTEXT and PGETEXT. The stand-alone dump is saved on DASD device 560 in the SYS1.SADMP data set. //ASSEMSAD JOB MSGLEVEL=(1,1) //OSG EXEC PGM=AMDSAOSG,REGION=5M //STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR,UNIT=3390, // VOL=SER=NEWSYS //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR,UNIT=3390, // VOL=SER=NEWSYS // DD DSN=SYS1.MODGEN,DISP=SHR,UNIT=3390, // VOL=SER=NEWSYS //IPLTEXT DD DSN=SYS1.NUCLEUS(AMDSAIPD),DISP=SHR, // VOL=SER=NEWSYS,UNIT=3390 //IPITEXT DD DSN=SYS1.NUCLEUS(AMDSAIPI),DISP=SHR, // VOL=SER=NEWSYS,UNIT=3390 //DVITEXT DD DSN=SYS1.NUCLEUS(AMDSADVI),DISP=SHR, // VOL=SER=NEWSYS,UNIT=3390 //DPLTEXT DD DSN=SYS1.NUCLEUS(AMDSADPL),DISP=SHR, // VOL=SER=NEWSYS,UNIT=3390 //PGETEXT DD DSN=SYS1.NUCLEUS(AMDSAPGE),DISP=SHR, // VOL=SER=NEWSYS,UNIT=3390 //TRK0TEXT DD DSN=&TRK0TEXT,DISP=(,PASS), // SPACE=(4096,(2,1)),UNIT=3390 //DSFSYSIN DD DSN=&DSFSYSIN,DISP=(,PASS), // SPACE=(80,(4,1)),UNIT=3390 //GENPRINT DD SYSOUT=* //GENPARMS DD * AMDSADMP IPL=DSYSDA,VOLSER=SADASD, X DUMP=('DATASPACES OF ASID('XCFAS', X 'CTTX','APPC')'), X MINASID=ALL,PROMPT,MSG=ALL X CONSOLE=((020,3277),(030,3277), X (040,3277),(050,3277)), X OUTPUT=D560 X END /* //PUTIPL EXEC PGM=ICKDSF,REGION=4M //IPLDEV DD DISP=OLD,UNIT=SYSDA, // VOL=(PRIVATE,RETAIN,SER=SADASD) //TRK0TEXT DD DSN=&TRK0TEXT,DISP=(OLD,DELETE) //SYSIN DD DSN=&DSFSYSIN,DISP=(OLD,DELETE) //SYSPRINT DD SYSOUT=* Figure 42: Example: One-stage generation JCL (any release) for a DASD (any release) Use the following JCL examples for tape when migrating to a new level of MVS: • One-stage JCL (beginning with z/OS V1R12) for tape (Figure 43 on page 91 ) • One-stage JCL (any release prior to z/OS V1R12) for tape (Figure 44 on page 92 ) The JCL shown in Figure 43 on page 91 assembles the version of the AMDSADMP macro contained in the SYSLIB data set SYS1.MACLIB, found on a 3390 DASD with volser=NEWSYS. Because NUCLIB is it uses the SYS1.NUCLEUS system data set found on 3390 DASD with volser=NEWSYS. Only specified, one job step is necessary because the stand-alone dump program is saved on a tape 5B0 with a volume serial of SADMPT. The output gets directed to the data set SYS1.SADMP.SAMPLE on DASD 450. //SADMPGEN JOB MSGLEVEL=(1,1) //OSG EXEC PGM=AMDSAOSG,REGION=5M //STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR,UNIT=3390, // VOL=SER=NEWSYS //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR,VOL=SER=NEWSYS // DD DSN=SYS1.MODGEN,DISP=SHR,VOL=SER=NEWSYS //GENPARMS DD * AMDSADMP IPL=T5B0,VOLSER=SADMPT, X OUTPUT=(D450,SYS1.SADMP.SAMPLE), X DDSPROMPT=YES, X NUCLIB=(NEWSYS,3390), X CONSOLE=((3E0,3278),(3E1,3278)) X END /* Figure 43: Example: One-stage JCL (beginning with z/OS V1R12) for tape Stand-alone dump 91

120 Stand-Alone dump Figure 44 on page 92 shows JCL that assembles the version of the AMDSADMP macro contained in the SYSLIB data set SYS1.MACLIB, found on a 3390 DASD with volser=NEWSYS. It uses the SYS1.NUCLEUS system data set found on 3390 DASD with volser=NEWSYS. Because the stand alone dump program is being saved on a tape, only one job step is necessary. The stand alone dump program is saved on TAPE 5B0 with volume serial of SADMPT. The output goes to the data set SYS1.SADMP.SAMPLE on DASD 450. //SADMPGEN JOB MSGLEVEL=(1,1) //OSG EXEC PGM=AMDSAOSG,REGION=5M //STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR,UNIT=3390, // VOL=SER=NEWSYS //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR,VOL=SER=NEWSYS // DD DSN=SYS1.MODGEN,DISP=SHR,VOL=SER=NEWSYS //IPLTEXT DD DSN=SYS1.NUCLEUS(AMDSAIPT),DISP=SHR, // UNIT=3390,VOL=SER=NEWSYS //IPITEXT DD DSN=SYS1.NUCLEUS(AMDSAIPI),DISP=SHR, // UNIT=3390,VOL=SER=NEWSYS //DVITEXT DD DSN=SYS1.NUCLEUS(AMDSADVI),DISP=SHR, // UNIT=3390,VOL=SER=NEWSYS //DPLTEXT DD DSN=SYS1.NUCLEUS(AMDSADPL),DISP=SHR, // UNIT=3390,VOL=SER=NEWSYS //PGETEXT DD DSN=SYS1.NUCLEUS(AMDSAPGE),DISP=SHR, // UNIT=3390,VOL=SER=NEWSYS //GENPARMS DD * AMDSADMP IPL=T5B0,VOLSER=SADMPT, X OUTPUT=(D450,SYS1.SADMP.SAMPLE), X DDSPROMPT=YES, X CONSOLE=((3E0,3278),(3E1,3278)) X END /* Figure 44: Example: One-stage JCL (any release) for tape Two-stage generation In two-stage generation of the stand-alone dump program, you must perform two tasks: 1. Assemble the AMDSADMP macro 2. Initialize the residence volume After you code the AMDSADMP macro, you can assemble the macro. Use the JCL shown in Figure 45 on to assemble the AMDSADMP macro. The SYSLIB data set must contain the AMDSADMP macro. page 92 //ASSEMSAD JOB MSGLEVEL=(1,1) //ASM EXEC PGM=ASMA90,REGION=4096K,PARM='DECK' //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.MODGEN,DISP=SHR //SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,50)) //SYSPRINT DD SYSOUT=(*,,STD),HOLD=YES //SYSPUNCH DD DSN=D10.SYS420.STAGE3.JCL(SADMPST2),DISP=SHR //SYSLIN DD SYSOUT=H //SYSIN DD * AMDSADMP MINASID=ALL,IPL=DSYSDA, X DUMP=('DATASPACES OF ASID('XCFAS','CTTX','APPC')'), X VOLSER=XXXXXX, X CONSOLE=((020,3277),(030,3277),(040,3277),(050,3277)), X PROMPT,MSG=ALL, X OUTPUT=T560 END /* Figure 45: Example: Stage-two JCL to assemble the AMDSADMP macro The output of the assembly is a job stream that can be used to initialize the residence volume. The output of the assembly can be directed to a DASD or tape device by coding the SYSPUNCH DD card, as shown in Table 17 on page 93 . 92 z/OS: MVS Diagnosis: Tools and Service Aids

121 Stand-Alone dump Table 17: Directing the output of assembly Direct assembly output SYSPUNCH DD statement Tape //SYSPUNCH DD UNIT=tape,LABEL=(,NL),DISP=(NEW,KEEP), // VOL=SER=volser New direct access data set //SYSPUNCH DD UNIT=dasd,SPACE=(80,(30,10)),DSN=dsname, // DISP=(NEW,KEEP),VOL=SER=volser Assembling multiple versions of AMDSADMP specifies You can assemble multiple versions of AMDSADMP at the same time, provided that each version a different residence volume. Differentiate between versions by coding a unique symbol at thebeginning of each macro. AMDSADMP uses the symbol you indicate to create unique stage-two job names. The output from a multiple assembly is a single listing and a single object deck, which can be broken into separate jobs if desired. Use the JCL shown in Figure 46 on page 93 for coding multiple versions of AMDSADMP. //MULTISAD JOB MSGLEVEL=(1,1) //ASM EXEC PGM=ASMA90,PARM='DECK,NOOBJ' //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.MODGEN,DISP=SHR //SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,50)) //SYSPRINT DD SYSOUT=A //SYSPUNCH DD SYSOUT=B //SYSIN DD * TAPE AMDSADMP IPL=T3400,VOLSER=SADMP1 DASD1 AMDSADMP VOLSER=SADMP2,MINASID=PHYSIN DASD2 AMDSADMP VOLSER=SADMP3 END /* Figure 46: Example: Assembling multiple versions of AMDSADMP Macro Initializing the residence volume When you are generating stand-alone dump for residence on a direct access volume using the stage-two JCL, a SYS1.PAGEDUMP.Vvolser data set containing the stand-alone dump program is created, loaded, and IPL text is placed on the volume. If the volume already contains a SYS1.PAGEDUMP.Vvolser data set, the stage-two job fails. While the stage-two job is running, the mount attribute of the volume must be PRIVATE. Physical output from the assembly part of the initialization step is a listing for the stand-alone dump common communication table (CCT) and devices and dump options (DDO) control blocks that contain specified at generation time. The remainder of the output consists of informational, error, and information action messages from both stand-alone dump and, when the residence volume is direct access, the device utility ICKDSF. When generating the stand-alone dump program from a Magnetic Tape Subsystem, be aware of which Specifically, IPL processing will end tape format you use or you might not be able to IPL the program. abnormally if you: • Generate stand-alone dump on a 3490E Magnetic Tape Subsystem and use a tape subsystem other than a 3490E for the IPL. • Generate stand-alone dump on a tape subsystem other than a 3490E and use a 3490E Magnetic Tape Subsystem for the IPL. Stand-alone dump 93

122 Stand-Alone dump Using two-stage generation of stand-alone dump when migrating When migrating to a new version of MVS, generate a new version of the stand-alone dump program. Use the new MVS system data sets to build the new version of the stand-alone dump program. Always use a stand-alone dump version that is generated from the same release of MVS that you want to dump. IBM does not guarantee that a different level of stand-alone dump will successfully dump anything other than the level of MVS it was designed for. The new version of MVS might have changed making the stand-alone dump program unable to locate vital information it needs to operate. To generate a new version of the stand-alone dump program, follow the same steps you followed for a normal two-stage generation, then add the following steps: • Ensure that the new version of the AMDSADMP macro is being used by specifying the correct SYSLIB data set. • Use the NUCLIB, MODLIB, LNKLIB and/or ALIB parameters on the AMDSADMP macro invocation to create the correct stage-two JCL. assembles the version of the AMDSADMP macro contained in The output shown in Figure 47 on page 94 the SYSLIB data set SYS1.MACLIB, found on a 3390 DASD with volser=NEWSYS. Because the ALIB the stage-two JCL will use the SYS1.NUCLEUS, SYS1.MODGEN, and SYS1.LINKLIB parameter is specified, system data sets, also found on the 3390 DASD with volser=NEWSYS. //ASSEMSAD JOB MSGLEVEL=(1,1) //ASM EXEC PGM=ASMA90,REGION=4096K,PARM='DECK' //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR, // UNIT=3390,VOL=SER=NEWSYS //SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,50)) //SYSPRINT DD SYSOUT=(*,,STD),HOLD=YES //SYSPUNCH DD DSN=D10.SYS430.STAGE3.JCL(SADMPST2),DISP=SHR //SYSLIN DD SYSOUT=H //SYSIN DD * AMDSADMP MINASID=ALL,IPL=DSYSDA, X DUMP=('DATASPACES OF ASID('XCFAS','CTTX','APPC')'), X VOLSER=SADUMP, X CONSOLE=((020,3277),(030,3277),(040,3277),(050,3277)), X PROMPT,MSG=ALL, X OUTPUT=T560, X ALIB=(NEWSYS,3390) END /* Figure 47: Example: Stage-two JCL to assemble the AMDSADMP macro Using the ALIB parameter is convenient if all of the system data sets used by the stand-alone dump Note: program reside on the same volume. Also, note that the same results could have been achieved by coding the NUCLIB, MODLIB, and LNKLIB keywords separately with each specifying NEWSYS and 3390 for volser and unit. Figure 48 on page 95 shows the output that assembles the version of the AMDSADMP macro contained in the SYSLIB data set, SYS1.MACLIB, found on a 3390 DASD with volser=NEWSYS. Because the MODLIB parameter is specified, the stage-two JCL will use the SYS1.MODGEN system data set found on a 3380 specified, the stage-two JCL will use the DASD with volser=SYS51A. Because the ALIB parameter is SYS1.NUCLEUS and SYS1.LINKLIB system data sets found on a 3390 DASD with volser=SYS51B. 94 z/OS: MVS Diagnosis: Tools and Service Aids

123 Stand-Alone dump //ASSEMSAD JOB MSGLEVEL=(1,1) //ASM EXEC PGM=ASMA90,REGION=4096K,PARM='DECK' //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR, // UNIT=3390,VOL=SER=NEWSYS //SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,50)) //SYSPRINT DD SYSOUT=(*,,STD),HOLD=YES //SYSPUNCH DD DSN=D10.SYS430.STAGE3.JCL(SADMPST2),DISP=SHR //SYSLIN DD SYSOUT=H //SYSIN DD * AMDSADMP MINASID=ALL,IPL=DSYSDA, X DUMP=('DATASPACES OF ASID('XCFAS','CTTX','APPC')'), X VOLSER=SADUMP, X CONSOLE=((020,3277),(030,3277),(040,3277),(050,3277)), X PROMPT,MSG=ALL, X OUTPUT=T560, X MODLIB=(SYS51A,3380), X ALIB=(SYS51B,3390) END /* Figure 48: Example: Stage-two JCL to assemble the AMDSADMP macro Note that the ALIB parameter has no effect on the SYS1.MODGEN system data set because the MODLIB parameter was specified separately. The stand-alone dump program will be generated using the specified. cataloged system data sets if the NUCLIB, MODLIB, LNKLIB, or ALIB parameters are not Using two-stage generation for overriding When overriding to use a different systems database, IBM recommends that you generate a new version of the stand-alone dump program. Use the new MVS system data sets to build the new version of the stand-alone dump program. Although the current version of the stand-alone dump program might be able to dump a new version of MVS successfully, it is not guaranteed. MVS might have changed such that the stand-alone dump program would not be able to locate vital information it needs to operate. To generate a new version of the stand-alone dump program, follow the same steps you followed for a normal two-stage generation, then add the following steps: • Ensure that the new version of the AMDSADMP macro is being used by specifying the correct SYSLIB data set. • Use the NUCLIB, MODLIB, LNKLIB and/or ALIB parameters on the AMDSADMP macro invocation to create the correct stage-two JCL. assembles the version of the AMDSADMP macro contained in The output shown in Figure 49 on page 96 the SYSLIB data set SYS1.MACLIB, found on a 3390 DASD with volser=OVRIDE. Because the ALIB parameter is specified, the stage-two JCL will use the SYS1.NUCLEUS, SYS1.MODGEN, and SYS1.LINKLIB system data sets, also found on the 3390 DASD with volser=OVRIDE. Stand-alone dump 95

124 Stand-Alone dump // EXEC ASMAC,PARM.C='DECK,NOOBJECT' //C.SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR, UNIT=3390,VOL=SER=OVRIDE //C.SYSPUNCH DD DSN=SMITH.TEST.CNTL(SADMP#2),DISP=OLD //C.SYSIN DD * AMDSADMP IPL=D3390, IPL FROM DASD X VOLSER=SADIPL, VOL=SER=SADIPL X OUTPUT=(D330,SYS1,SADMP), DEFAULT OUTPUT DEVICE X MSG=ALL, ALL MESSAGES TO CONSOLE X DUMP=('SP(ALL) IN ASID(1) ALSO DATASPACES OF ASID(1,'JESXCF', 'APPC','SMSVSAM', 'CONSOLES','SYSBMAS') ALSO PAGETABLES OF DATASPACES X ALSO SP(ALL) IN ASID('JES2')'), X MINASID=ALL, INCLUDE SWAPPED OUT SPACES X REUSEDS=CHOICE, PROMPT FOR DATASET REUSE X DDSPROMPT=NO, OVERRIDE BUILD DATASETS X ALIB=(OVRIDE,3390) END /* Figure 49: Example: Stage-Two JCL to assemble the AMDSADMP macro with overrides Note: Using the ALIB parameter is convenient if all of the system data sets used by the stand-alone dump program reside on the same volume. Also, note that the same results could have been achieved by coding the NUCLIB, MODLIB, and LNKLIB keywords separately with each specifying NEWSYS and 3390 for volser and unit. Running the stand-alone dump program The operator usually takes a stand-alone dump for one of the following types of problems: • Disabled wait • Enabled wait • Loop • Partial system hang When one of these problems occurs, the stand-alone dump program, residing in the SYS1.PAGEDUMP.Vvolser data set, can be run to produce a stand-alone dump. There are several procedures that can be used to run the stand-alone dump program: • “Procedure A: Initialize and run stand-alone dump” on page 96 • “Procedure B: Restart stand-alone dump” on page 100 • “Procedure C: ReIPL stand-alone dump” on page 100 • “Procedure D: Dump the stand-alone dump program” on page 100 When to use which procedure: • Use Procedure A to initialize the stand-alone dump program and dump storage. • If you want to run stand-alone dump again, for instance when stand-alone dump fails, use Procedure B, Procedure C, or procedure D. • When you want to restart stand-alone dump, try procedure B before you try Procedure C or D. • Procedures C and D can result in the loss of some central storage from the output, whereas Procedure B usually does not. Although the stand-alone dump program was created under the operating system, it runs as a stand- alone operation. Procedure A: Initialize and run stand-alone dump Use the following procedure to initialize and run a stand-alone dump. 96 z/OS: MVS Diagnosis: Tools and Service Aids

125 Stand-Alone dump 1. Ready the residence device. If it is a tape, mount the volume on a device attached to the selected processor and ensure that the tape cartridge is write-enabled. If it is a DASD volume, ensure that it is write-enabled. If you mirror the SADMP IPL volume to a device in an alternate subchannel set and have swapped so prefix that the devices in the alternate subchannel set are now in use, the SADMP IPL device number with the subchannel set id when you specify the SADMP IPL device. In this case, DASD SADMP output defined in the alternate subchannel set as well. devices should be 2. If dumping a failed stand-alone dump program, in order to diagnose the stand-alone dump failure, select the Store Status option during the IPL, or perform a manual Store Status. Otherwise, for all other cases, do not perform a Store Status because the machine automatically performs a Store Status when it is necessary. 3. IPL stand-alone dump, using Load Normal. Do not use Load Clear. Stand-alone dump does not communicate with the operator console. Instead, stand-alone dump loads an enabled wait PSW with wait reason code X'3E0000'. The IPLing of the stand-alone dump program causes absolute storage (X'0'-X'18' and storage beginning at X'FC0') to be overlaid with CCWs. You should be aware of this and not consider it as a low storage overlay. Note: Stand-alone dump uses the PSW to communicate with the operator or system programmer. Stand-alone dump waits for a console I/O interrupt or an external interrupt. 4. When stand-alone dump is IPLed, you can specify a load parm that alters the operation of stand- addddo alone dump. The format of the load parm is . S S as the first character or the load parm will be ignored. The constant S must be specified a a specification allows stand-alone dump to start using a console without the operator The performing any action on it. It also allows stand-alone dump to bypass the prompts for which a output device and default dump title to use. You can specify the following values for : N No console communication requested. Use default dump device and title. Execution begins with no console messages. No prompting to the operator is allowed. If a prompt occurs, a wait state will be loaded. O Use the default console with the default dump device and title. No prompting to the operator is allowed. If a prompt occurs, a wait state will be loaded. M Use the default console with the default dump device and title. Additional prompts can be made to the operator if they are needed. C Use the default console. The operator must respond to all prompts. P Wait for an interrupt from the console device that is to be used. If you do not supply the load parm, this is the default. dddd dddd specification is the default console device. It must be one of the devices specified as a The console device on the AMDSADMP macro when the stand–alone dump was generated, or the constant SYSC for the hardware system console. If you do not specify a default console device, first console defined on the AMDSADMP macro when the then the stand–alone dump will use the stand–alone dump was generated. first console in the console list. If you The AMDSADMP macro allows you to specify SYSC as the do this without specifying a console device in the load parm, the hardware system console will be the default console device. Stand-alone dump 97

126 Stand-Alone dump o The field o contains flags, and the second bit (bit 1) indicates that SADMP must start an IPL of MVS at the conclusion of its processing. If bit 1 is on, and SADMP locates an AutoIPL policy within a re-IPL of MVS, SADMP uses the information to initiate an IPL of MVS. specifies MVS storage that in z/OS MVS For details about AutoIPL, see topic about Using the automatic IPL function . Planning: Operations field are '0', '4' or blank. '0' or blank leaves all bits off. '4' sets bit 1 on. The valid values for the o Bit 1 is intended to automate the re-IPL of MVS when SADMP is initiated manually. IBM recommends that it be left off otherwise. If you do not use the load parm, select the system console or an operator console with a device specified address that is in the console list that you at stand-alone dump generation time (in the CONSOLE keyword of AMDSADMP). At stand-alone dump run time, the operator can choose either a specified console with the CONSOLE= keyword or the system console to control stand-alone dump operation. If an operator console is chosen, press ATTENTION or ENTER on that console. (On some This causes an interruption that informs stand-alone consoles, you might have to press RESET first.) dump of the console's address. Message AMD001A appears on the console. a. Ready an output device. When you dump to devices that have both real and virtual addresses (for example, dumping a VM system), specify the virtual address to the stand-alone dump program. If you are dumping to tape, ensure that the tape cartridge is write-enabled and unlabeled. If you are dumping to DASD, ensure that the DASD data set has been initialized using the IPCS SADMP or AMDSADDD REXX dump data set utilities. b. Reply with the device number for the output device. Note: A DASD output device must be in the same subchannel set as the device from which the stand-alone dump is IPLed, and only the of a 4-digit device number is allowed. So, for example, if in reply to the device specification number prompt, you enter 4180 and the stand-alone dump has been IPLed from device 15660, device 4180 is assumed to be in subchannel set 1, or in this example, 14180. If you are dumping to a DASD device and DDSPROMPT=YES was specified on the AMDSADMP macro, message AMD002A is issued to prompt the operator for a dump data set. IF DDSPROMPT=NO was specified, message AMD002A is not issued and the stand-alone dump program assumes that the dump data set name is SYS1.SADMP. Note: 1) Pressing ENTER in response to message AMD001A will cause the stand-alone dump program to use the default device specified on the OUTPUT= keyword of the AMDSADMP macro. If the default device is a DASD device, then pressing the ENTER key in response to message AMD001A will cause the stand-alone dump program to use both the default device and the specified on the OUTPUT= keyword of the AMDSADMP macro. If no dump data dump data set set name was provided on the OUTPUT= keyword and the DDSPROMPT=YES keyword was specified, message AMD002A is issued to prompt the operator for a dump data set. If DDSPROMPT=NO was specified, then the stand-alone dump program assumes that the dump data set name is SYS1.SADMP. 2) If you reply with the device number of an attached device that is not of the required device type, or if the device causes certain types of I/O errors, stand-alone dump might load a disabled wait PSW. When this occurs, use procedure B to restart stand-alone dump. c. Stand-alone dump prompts you, with message AMD011A, for a dump title. In Figure 50 on page 99 , the dump is initialized using a load parm with no console prompts. 98 z/OS: MVS Diagnosis: Tools and Service Aids

127 Stand-Alone dump AMD083I AMDSADMP: STAND-ALONE DUMP INITIALIZED AMD101I OUTPUT DEVICE: 0330 SADMP1 SYS1.SADMP SENSE ID DATA: FF 3990 E9 3390 0A BLOCKSIZE: 24,960 AMD005I DUMPING OF REAL STORAGE NOW IN PROGRESS. AMD005I DUMPING OF PAGE FRAME TABLE COMPLETED. AMD005I DUMPING OF REAL STORAGE FOR MINIMAL ASIDS COMPLETED. AMD005I DUMPING OF REAL STORAGE FOR SUMMARY ASIDS COMPLETED. AMD005I DUMPING OF REAL STORAGE FOR SWAPPED-IN ASIDS COMPLETED. AMD005I DUMPING OF REAL STORAGE IN-USE REAL STORAGE COMPLETED. AMD005I DUMPING OF REAL STORAGE SUSPENDED. AMD108I DUMPING OF AUXILIARY STORAGE FOR MINIMAL ASIDS COMPLETED AMD108I DUMPING OF AUXILIARY STORAGE FOR SUMMARY ASIDS COMPLETED AMD108I DUMPING OF AUXILIARY STORAGE FOR SWAPPED-IN ASIDS COMPLETED AMD108I DUMPING OF AUXILIARY STORAGE FOR SWAPPED-OUT ASIDS COMPLETED AMD056I DUMPING OF AUXILLIARY STORAGE COMPLETED. AMD005I DUMPING OF REAL STORAGE RESUMED. AMD005I DUMPING OF AVAILABLE REAL STORAGE COMPLETED AMD005I DUMPING OF REAL STORAGE COMPLETED. AMD104I STAND-ALONE DUMP PROCESSING COMPLETED. DEVICE VOLUME USED DATA SET NAME 1 0330 SADMP1 43% SYS1.SADMP Figure 50: Example: Using a load parm to perform a stand-alone dump 5. When no console is available, run stand-alone dump without a console. a. Ready the default output device that was on the OUTPUT parameter on the AMDSADMP specified macro. For tapes, ensure that the tape cartridge is write-enabled. For DASD, ensure that the dump data set has been initialized using the AMDSADDD REXX or IPCS SADMP dump data set utilities. b. Enter an external interruption on the processor that stand-alone dump was IPLed from. Stand- alone dump proceeds using the default output device and/or the default dump data set. No messages appear on any consoles; stand-alone dump uses PSW wait reason codes to communicate to the operator. first processes the real storage in ASID order. The message AMD005I is issued 6. Stand-Alone dump after each phase to display the status of the dump. a. Phase 1 dumps the Page Frame Table and its related structures in virtual order. b. The next three phases dump real storage associated with the minimal, summary and swapped-in ASIDs in virtual order. c. Phase 5 dumps the In-Use real storage in real order. 7. Stand-Alone dump processes the paged-out storage in virtual order based on customer specifications. Message AMD108I is issued to display the status of the virtual phase of the dump a. Phases 6 to 8 dumps the paged-out storage of minimal, summary and swapped-in ASIDs. At end of phase VIII, all storage associated with the swapped-in ASIDs has been dumped. b. Phase 9 dumps the storage of swapped-out ASIDs. 8. Stand-Alone dump proceeds to dump the available real storage in Phase 10. The storage dumped during this phase includes the real frames that were not dumped earlier. At the completion of this phase, message AMD104I is issued to signal the end of the dump. 9. When stand-alone dump begins dumping real storage (Phase 1 to Phase 5 and Phase 10) it issues message AMD005I. Message AMD095I is issued every 30 seconds to illustrate the process of the specific portions of real storage have been dumped, as dump. Message AMD005I will be issued as well as upon completion of the real dump. Stand-alone dump can end at this step. 10. When stand-alone dump is dumping virtual storage, it issues message AMD108I as portions specific of virtual storage is dumped. Message AMD056I is issued to signal the end of virtual phase dump. specified PROMPT on the AMDSADMP macro, stand-alone dump prompts you for additional 11. If you storage that you want dumped by issuing message AMD059D. 12. Stand-alone dump dumps paged-out virtual storage, the stand-alone dump message log, and issues message AMD095I every 30 seconds to illustrate the progress of the dump. Stand-alone dump 99

128 Stand-Alone dump 13. When stand-alone dump completes processing, stand-alone dump unloads the tape, if there is one, and enters a wait reason code X'410000'. z/OS MVS System Codes for more information about the wait state reason codes loaded into the PSW. See processor to IPL from. Normally, the Note: Some processor models do not allow selection of a specific processor previously IPL'ed is selected again for this IPL. Procedure B: Restart stand-alone dump A system restart does not always work, either because it occurs at a point when stand-alone dump internal resources are not serialized, or because stand-alone dump has been too heavily damaged to function. If the restart does not work, try procedure C (reIPL). If a dump to a DASD data set is truncated because there is not enough space on the data set to hold the dump, use a system restart to dump the original data to tape. By causing a system restart, you can reinitialize and restart a failing stand-alone dump program without losing the original data you wanted to dump. If a permanent error occurs on the output device, the stand-alone dump program will prompt the operator to determine if a restart of the stand-alone dump program should be performed. If the operator indicates that a restart of the stand-alone dump program should be performed, then the stand-alone dump program restarts the dump using the same console and prompts the operator to specify a different output device. Continue procedure A at step 6A; see “Procedure A: Initialize and run stand-alone dump” on page 96 . For other types of stand-alone dump errors and wait states, it might be necessary for the operator to perform a manual restart of the stand-alone dump program. In this case, the operator should perform the following steps: 1. Perform a system restart on the processor that you IPLed stand-alone dump from. 2. If the restart is successful, stand-alone dump dumps central storage. If stand-alone dump abnormally ends while dumping central storage, try to restart stand-alone dump. If the restart succeeds, stand- first enter wait state X'3E0000' to allow you to specify a alone dump reruns the entire dump. It will new console and output device. You can do this to recover from an I/O error on the output device. Stand-alone dump recognizes any console in the console list and starts with the same output device defaults that are used at the IPL of stand-alone dump. . 3. Continue procedure A at step 3, see “Procedure A: Initialize and run stand-alone dump” on page 96 Procedure C: ReIPL stand-alone dump When you reIPL stand-alone dump, the previous running of stand-alone dump has already overlaid some the page frame table. If the virtual storage dump program was in parts of central storage and modified control, a reIPL might not dump paged-out virtual storage. The number of times that you can IPL stand- alone dump to dump paged-out virtual storage is equal to the number of processors present. To run procedure C, repeat procedure A. If the previous IPL of stand-alone dump did not load a wait state and reason code of X'250000' or higher and the reIPL succeeds, stand-alone dump usually completes processing as in procedure A. Some storage locations might not reflect the original contents of central storage because, during a previous IPL, stand-alone dump overlaid the contents. These locations include the absolute PSA and possibly other PSAs. Procedure D: Dump the stand-alone dump program Use a new IPL of stand-alone dump to debug stand-alone dump if stand-alone dump fails. When you use stand-alone dump to dump itself, the dump program dumps central storage only, because a dump of central storage provides enough information to diagnose a stand-alone dump error. Follow procedure A at step “2” on page 97 by performing a STORE STATUS instruction. Stand-alone dump follows procedure A steps 2 through 6, then issues message AMD088D. This message allows the operator to stop the dump after central storage has been dumped or to continue dumping virtual storage. 100 z/OS: MVS Diagnosis: Tools and Service Aids

129 Stand-Alone dump Stand-alone self-dump When running a virtual storage dump and stand-alone dump error recovery detects errors in stand-alone dump, stand-alone dump can take a self-dump before proceeding. At most, stand-alone dump takes twelve self-dumps; after the twelfth request for a self-dump, stand-alone dump stops taking self-dumps, but continues to count the number of self-dump requests and continues to issue the AMD066I message. After a large number of self-dump requests, stand-alone dump terminates. Stand-alone dump places both the self-dump and the operating system dump onto the output tape or DASD. You can use the LIST subcommand of IPCS to print stand-alone dump self-dumps. The format of the subcommand is as follows, where x = 001 - 012. See z/OS MVS IPCS Commands for more information. LIST address COMPDATA(AMDSAxxx) Running the stand-alone dump program in a sysplex The operator usually takes a stand-alone dump in a sysplex when an MVS system is not responding. Situations that indicate that stand-alone dump should be run include: • Consoles do not respond • MVS is in a WAIT state • An MVS system is in a “status update missing” condition and has been or is waiting to be removed from the sysplex • A stand-alone dump has been requested by Level 2. There are two high-level methods for taking a stand-alone dump of an MVS system that resides in a sysplex. Both methods emphasize the expeditious removal of the failing MVS system from the sysplex. If the failed MVS system is not partitioned out of the sysplex promptly, some processing on the surviving MVS systems might be delayed. Method A Use this method to take a stand-alone dump of an MVS system that resides in a sysplex. Assume that the MVS system to be dumped is “SYSA”. 1. IPL the stand-alone dump program on SYSA (see “Running the stand-alone dump Program”). 2. Issue VARY XCF,SYSA,OFFLINE from another active MVS system in the sysplex if message IXC402D or IXC102A is not already present. You do not have to wait for the stand-alone dump to complete before issuing the VARY XCF,SYSA,OFFLINE command. 3. Reply DOWN to message IXC402D or IXC102A. Performing steps 2 and 3 immediately after IPLing stand-alone dump will expedite sysplex recovery actions for SYSA and allow resources held by SYSA to be cleaned up quickly, thus enabling other systems in the sysplex to continue processing. After you IPL the stand-alone dump, MVS cannot automatically ISOLATE system SYSA through SFM. Message IXC402D or IXC102A issues after the VARY XCF,SYSA,OFFLINE command or after the XCF failure detection interval expires. You must reply DOWN to IXC402D or IXC102A before sysplex partitioning can complete. Note: DO NOT perform a SYSTEM RESET in response to IXC402D, IXC102A after the IPL of stand-alone dump. The SYSTEM RESET is not needed in this case because the IPL of stand-alone dump causes a SYSTEM RESET. After the IPL of stand-alone dump is complete, it is safe to reply DOWN to IXC402D or IXC102A. Stand-alone dump 101

130 Stand-Alone dump Method B Use this method if there is a time delay between stopping processors, as part of the SYSTEM RESET- NORMAL function in step one, and IPLing the stand-alone dump program. 1. Perform the SYSTEM RESET-NORMAL function on SYSA. 2. Issue VARY XCF,SYSA,OFFLINE from another active MVS system in the sysplex if message IXC402D or IXC102A is not present. 3. Reply DOWN to message IXC402D or IXC102A. Performing steps two and three immediately after doing the SYSTEM RESET will expedite sysplex recovery actions for SYSA. It allows resources that are held by SYSA to be cleaned up quickly, and enables other systems in the sysplex to continue processing. ). While 4. IPL the stand-alone dump program (see “Running the stand-alone dump program” on page 96 this step can be done earlier, the aim of performing steps one through three is to minimize disruption to other systems in the sysplex. After a SYSTEM RESET is performed, MVS cannot automatically ISOLATE system SYSA through SFM. Message IXC402D or IXC102A is issued after the VARY XCF,SYSA,OFFLINE command or after the XCF failure detection interval expires. You must reply DOWN to IXC402D or IXC102A before sysplex partitioning can complete. Capturing a stand-alone dump quickly There are times when you need to process stand-alone dump information quickly to diagnose a problem. It is important to perform the stand-alone dump process quickly, to minimize the time the system is unavailable. Sometimes a stand-alone dump is not captured because of the time that the dumping process takes. Skipping the stand-alone dump, however, can prevent the diagnosis of the system failure. Instead of skipping the stand-alone dump, it is better to spend a short time to get as much of the stand- alone dump as is possible, as quickly as possible. The following are two methods to save time when performing a stand-alone dump. • Minimize the operator actions • Get a partial stand-alone dump Minimize the operator actions Time spent waiting for the operator to reply to a message or mount a tape is idle time. Minimizing the simplifies the process, so that the operator actions turns the idle time into data capture time. It also stand-alone dump process becomes easier to do. The following are ways to minimize the operator's actions when performing a dump. or to skip the prompt for the console to use to avoid SO SM • Use the stand-alone dump LOAD parameter other responses to messages. • Use the default device specified on the OUTPUT= keyword of the AMDSADMP macro. If the default device is a DASD device, then pressing the ENTER key in response to message AMD001A will cause the stand-alone dump program to use both the default device and the dump data set specified on the OUTPUT= keyword of the AMDSADMP macro. • Use REUSEDS=ALWAYS on the AMDSADMP macro to indicate that stand-alone dump should reuse the dump data set on the output device when it determines that the data set is valid, however, it specified can contain data from a previous dump. Or, you can always clear the dataset. Note: Be sure you do not overwrite another dump. • Specify DDSPROMPT=NO, then the stand-alone dump program assumes that the dump data set name is SYS1.SADMP. • Do not specify PROMPT on the AMDSADMP macro, unless requested by IBM. • Use "fast" device for output 102 z/OS: MVS Diagnosis: Tools and Service Aids

131 Stand-Alone dump Get a partial stand-alone dump While it is always best to get a complete stand-along dump, sometimes time constraints will not allow this. There is no guarantee that it will be possible to diagnose a failure from a partial stand-alone dump; however, if the choice is between no dump at all or a partial dump, then the partial dump is the best choice. When taking a partial stand-alone dump: • Let the stand-alone dump run for as long as you can. If you run out of time, you can stop the dump cleanly. first. • Stand-alone dump tries to write out the most important information – Status information (PSW, registers, and so forth) for all CPUs – Critical real storage, including common storage and trace information – Real storage for address spaces executing at the time of the dump – Any remaining real storage – Paged out storage for swapped in address spaces – Paged out storage for swapped out address spaces • Use the EXTERNAL INTERRUPT key to terminate the dumping process. This causes a clean stop, closing the output dataset properly. In Figure 51 on page 103 , the dump was ended early using the EXTERNAL INTERRUPT key. AMD083I AMDSADMP: STAND-ALONE DUMP RESTARTED AMD094I 0330 SADMP1 SYS.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: 0330 SADMP1 SYS1.SADMP SENSE ID DATA: FF 3990 E9 3390 0A BLOCKSIZE: 24,960 AMD005I DUMPING OF REAL STORAGE NOW IN PROGRESS. AMD005I DUMPING OF PAGE FRAME TABLE COMPLETED. AMD005I DUMPING OF REAL STORAGE FOR MINIMAL ASIDS COMPLETED. AMD005I DUMPING OF REAL STORAGE FOR SUMMARY ASIDS COMPLETED. AMD089I DUMP TERMINATED DUE TO EXTERNAL KEY AMD066I AMDSADMP ERROR, CODE=0012, PSW=040810008101235E, COMPDATA9AMDSA002) Figure 51: Example: Terminating a stand-alone dump Copying, viewing, and printing stand-alone dump output When stand-alone dump processing completes the dump, the output resides on a tape volume, a DASD, or a combination of devices. The easiest way to view the dump is to copy the dump to a DASD data set. When a stand-alone dump resides on multiple devices and/or dump data sets, you can concatenate the dump into one data set. After the dump is available on DASD, it can be viewed online using IPCS. Note: If the dump resides in a DASD dump data set, IBM recommends that you copy the dump to another data set for IPCS processing and clear (reinitialize) the dump data set using the AMDSADDD or IPCS and SADMP dump data set utilities. For more information, see “Using the AMDSADDD utility” on page 79 SADMP option on the IPCS Dialog z/OS MVS IPCS User's Guide . in Copying the dump to a data set If you want to view the dump online, copy the dump to a data set. There are two tools you can use to copy the dump: • Use the IPCS COPYDUMP subcommand when the IPCS environment has been set up on your system. This is the only option recommended if the dump was written to a multi-volume DASD data set. Stand-alone dump 103

132 Stand-Alone dump • Use the IEBGENER utility when the IPCS environment has not been set up on your system. Many operators take a stand-alone dump so that the system programmer can view the dump. The operator does not require IPCS on the system because the operator will not be viewing the dump. Therefore, the operator should use the IEBGENER utility to copy the dump to a data set accessible by the system programmer's system. For more information, see the following references: z/OS MVS IPCS Commands for information about COPYDUMP. • See • See z/OS DFSMSdfp Utilities for information about IEBGENER. Copying from tape The example below shows how to use IEBGENER to copy tape output to DASD. Two advantages of copying stand-alone dump tape output to DASD are: • When stand-alone dump ends prematurely and does not give the stand-alone dump output (SYSUT1) an file. end-of-file, the SYSUT2 data set does contain an end-of (SYSUT2 is the data set to which stand- alone dump output is copied.) This occurs even when SYSUT2 is another tape. IEBGENER might end end-of-file. with an I/O error on SYSUT1; this is normal if SYSUT1 does not contain an • Making SYSUT2 a direct access data set to use as input to IPCS saves IPCS processing time. Use the JCL shown in Figure 52 on page 104 to invoke the IEBGENER utility, which will copy the stand- alone dump output from tape to a DASD data set. //SADCOPY JOB MSGLEVEL=(1,1) //COPY EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=A //SYSIN DD DUMMY //SYSUT1 DD DSN=SADUMP.TAPE,UNIT=tape, // VOL=SER=SADOUT,LABEL=(,NL),DISP=SHR, // DCB=(RECFM=FBS,LRECL=4160,BLKSIZE=29120) //SYSUT2 DD DSN=SADUMP.COPY,UNIT=dasd, // VOL=SER=SADCPY,DISP=(NEW,CATLG), // DCB=(RECFM=FBS,LRECL=4160,DSORG=PS),AVGREC=K, // SPACE=(4160,(8,4),RLSE) Figure 52: Example: Copying stand-alone dump output from tape to DASD Specifying AVGREC= requires SMS be running, but the data set does not have to be SMS managed. Note: Copying from DASD The example below shows how to use IEBGENER to copy DASD output to a DASD data set. After the dump is successfully copied, use the AMDSADDD REXX utility to clear (reinitialize) the dump data set and ready it for another stand-alone dump. For more information, see: in z/OS MVS IPCS User's Guide . • SADMP option on the IPCS Dialog • “Using the AMDSADDD utility” on page 79 104 z/OS: MVS Diagnosis: Tools and Service Aids

133 Stand-Alone dump Use the JCL shown in Figure 53 on page 105 to invoke IEBGENER, which will copy the stand-alone dump output from a DASD data set to another DASD data set. //SADCOPY JOB MSGLEVEL=(1,1) //COPY EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=A //SYSIN DD DUMMY //SYSUT1 DD DSN=SYS1.SADMP,UNIT=DASD, // VOL=SER=SADMP1,DISP=SHR //SYSUT2 DD DSN=SYS2.SADMP,UNIT=DASD, // DISP=(NEW,CATLG), // VOL=SER=SADMP2, // DCB=(LRECL=4160,RECFM=FBS,DSORG=PS), // SPACE=(CYL,(90,0),RLSE) Figure 53: Example: Copying stand-alone dump output from DASD to DASD Copying from multiple dump data sets The stand-alone dump program allows a dump to be contained in multiple dump data sets. Therefore, when you want to view a stand-alone dump using IPCS, it is necessary to concatenate all of the dump data sets onto one DASD data set. Use the JCL in Figure 54 on page 105 to invoke the IPCS COPYDUMP subcommand to copy stand-alone dump output from three DASD dump data sets to another data set. Note that two of the dump data sets reside on the volume SADMP1, while the third resides on the volume SADMP2. //SADCOPY JOB MSGLEVEL=(1,1) //COPY EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=A //C1 DD DSN=SADMP1.DDS1,DISP=SHR,UNIT=DASD,VOL=SER=SADMP1 //C2 DD DSN=SADMP1.DDS2,DISP=SHR,UNIT=DASD,VOL=SER=SADMP1 //C3 DD DSN=SYS1.SADMP,DISP=SHR,UNIT=DASD,VOL=SER=SADMP2 //COPYTO DD DSN=SADUMP.COPY,UNIT=DASD, // VOL=SER=SADCPY,DISP=(NEW,CATLG), // DCB=(RECFM=FBS,LRECL=4160,DSORG=PS), // SPACE=(4160,(8000,4000),RLSE) //SYSTSIN DD * IPCS NOPARM DEFER COPYDUMP OUTFILE(COPYTO) NOCONFIRM INFILE(C1, C2, C3) END /* Figure 54: Example: Copying a stand-alone dump from multiple DASD data sets to invoke the IPCS COPYDUMP subcommand to copy stand- Use the JCL shown in Figure 55 on page 105 alone dump output from two DASD dump data sets and two tape volumes to a DASD data set. //SADCOPY JOB MSGLEVEL=(1,1) //COPY EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=A //C1 DD DSN=SYS1.SADMP.MAIN.DDS1,DISP=SHR,UNIT=DASD, // VOL=SER=SADMP1 //C2 DD DSN=SYS1.SADMP.ALTERNAT.DDS1,DISP=SHR,UNIT=DASD, // VOL=SER=SADMP2 //C3 DD DSN=SYS1.SADMP.MAIN.DDS1,DISP=SHR,UNIT=TAPE, // VOL=SER=SADMP3 //C4 DD DSN=SYS1.SADMP.ALTERNAT.DDS1,DISP=SHR,UNIT=TAPE, // VOL=SER=SADMP4 //COPYTO DD DSN=SADUMP.COPY,UNIT=DASD, // VOL=SER=SADCPY,DISP=(NEW,CATLG), // DCB=(RECFM=FBS,LRECL=4160,DSORG=PS), // SPACE=(2080,(1600,800),RLSE) //SYSTSIN DD * IPCS NOPARM COPYDUMP OUTFILE(COPYTO) NOCONFIRM INFILE((C1,C2,C3,C4) END /* Figure 55: Example: Copying stand-alone dump output from DASD and tape Stand-alone dump 105

134 Stand-Alone dump Viewing stand-alone dump output You can view the stand-alone dump output at a terminal using IPCS. Do the following: 1. Start an IPCS session. 2. On the IPCS Primary Option Menu panel, select the SUBMIT option to copy the dump and do initial dump analysis. 3. Return to the IPCS Primary Option Menu panel. Select the DEFAULTS option. 4. IPCS displays the IPCS Default Values panel. Enter the name of the data set containing the dump on the Source line. 5. Return to the IPCS Primary Option Menu panel. Select the BROWSE, ANALYZE, or COMMAND option to view the dump. z/OS MVS IPCS Commands for information about the IPCS subcommands. See Printing stand-alone dump output You can print an analysis of the stand-alone dump or the entire dump using IPCS. To print an analysis of the dump in batch mode: 1. Start an IPCS session. 2. On the IPCS Primary Option Menu panel, select the SUBMIT option to copy the dump and do initial dump analysis. 3. On the IPCS Dump Batch Job Option Menu panel, enter the requested information. 4. On the next panel, enter the sysout output class. IPCS writes the dump analysis to the specified output class. 5. The system prints the dump in the printout of the output class. To print the full dump in batch mode: 1. Use IPCS CLIST BLSCBSAP. See z/OS MVS IPCS User's Guide for IPCS panels and the CLIST BLSCBSAP. runs an IPCS CLIST that: The example in Figure 56 on page 106 • Copies the stand-alone dump from the tape data set defined in an IEFRDER DD statement to a cataloged, direct access data set named SA1DASD. • Analyzes and formats the dump. • Writes the formatted dump output to a data set named IPCSPRNT. A TSO/E CLIST used for IPCS should allocate this print output data set to a sysout print class, as follows: ALLOCATE DDNAME(IPCSPRNT) SYSOUT(A) After the CLIST runs, the dump remains available in the SA1DASD data set for supplementary formatting jobs. //PRINTJOB JOB MSGLEVEL=1,REGION=800M //IPCS EXEC IPCS,CLIST=BLSCBSAP,DUMP=SA1DASD //IEFPROC.IEFRDER DD DSN=SA1,DISP=OLD,UNIT=3490 // VOL=SER=12345,LABEL=(1,NL) /* Figure 56: Example: Printing an unformatted stand-alone dump 106 z/OS: MVS Diagnosis: Tools and Service Aids

135 Stand-Alone dump Message output There are three types of message output from a stand-alone dump program, as follows: • MNOTES from the AMDSADMP macro • Messages on the 3480, 3490, or 3590 display • Messages on the system console or the operator console For more information about messages on the system console or the operator console, see MVS System Messages . Stand-alone dump messages on the 3480, 3490, or 3590 display When stand-alone dump output is sent to a 3480, 3490, or 3590 magnetic tape subsystem, stand-alone dump uses the subsystem's eight-character message display to inform and prompt the operator. The leftmost position on the message display indicates a requested operator action. The eighth position (rightmost) gives additional information. In the messages listed below, alternating indicates that there are two messages which are flashing on the display, one after the other. A blinking message is one message that is repeated on the display. The stand-alone dump messages that can appear on the display are: Dvolser (alternating) MSADMP#U Informs the operator that a labeled tape has been rejected and a new tape must be mounted. MSADMP#U (blinking) Requests that the operator mount a new tape. RSADMP#U (blinking) finished writing to the tape. Indicates that the stand-alone dump program has RSADMP# (alternating) MSADMP#U Informs the operator that an end-of-reel condition has occurred and a new tape must be mounted. SADMP# (blinking) Indicates that the tape is in use by stand-alone dump. SADMP# (alternating) NTRDY Informs the operator that some type of intervention is required. The symbols used in the messages are: # A variable indicating the actual number of cartridges mounted for stand-alone dump. It is a decimal digit starting at 1 and increasing by 1 after each end-of-cartridge condition. When the # value exceeds 9, it is reset to 0. D Demount the tape and retain it for further system use, for example as a scratch tape. Stand-alone dump does not write on the tape. M Mount a new tape. R Demount the tape and retain it for future stand-alone dump use. Stand-alone dump 107

136 Stand-Alone dump U The new tape should not be file-protected. volser A variable indicating the volume serial number on the existing tape label. Analyzing stand-alone dump output The following sections describe how to analyze the output from a stand-alone dump. A stand-alone dump can indicate the following types of problems: • Enabled wait state • Disabled wait state • Enabled loop • Disabled loop Use the information in this section to determine the type of problem the system has encountered. After for further information about diagnosing the problem type is determined, see z/OS Problem Management the problem type. Collecting initial data When an operator takes a stand-alone dump, it is important to determine the conditions of the system at the time the dump was taken. Because a stand-alone dump can be requested for a various number of problem types, the collection of problem data is imperative to determining the cause of the error. The objectives for analyzing the output of a stand-alone dump are as follows: • Gather symptom data • Determine the state of the system • Analyze the preceding system activity • Find the failing module and component Gathering external symptoms question the operator or the person who requested the first When a stand-alone dump is taken, you must dump. It is important to understand the external symptoms leading up to the system problem. What was noticed before stopping the system? The answer might give you an idea of where the problem lies. Here are a few questions you should an answer to before continuing: find • Was the system put into a wait state? • Were the consoles hung or locked up? • Were commands being accepted on the operator console without a reply? • Was a critical job or address space hung? Gathering IPCS symptoms After getting a list of symptoms, use IPCS to collect further symptom data. A primary symptom string is usually not available in a stand-alone dump; however, IPCS can add a secondary symptom string. In Figure 57 on page 109 , the explanation of the secondary symptom string indicates an enabled wait state condition. 108 z/OS: MVS Diagnosis: Tools and Service Aids

137 Stand-Alone dump * * * * S Y M P T O M * * * * ASR10001I The dump does not contain a primary symptom string. Secondary Symptom String: WS/E000 FLDS/ASMIORQR VALU/CPAGBACKUP FLDS/IOSCOD VALU/CLCLC0D45 FLDS/IOSTSA VALU/CLCLDEV02 Symptom Symptom data Explanation --------------- ------------- ----------- WS/E000 000 Enabled wait state code FLDS/ASMIORQR ASMIORQR Data field name VALU/CPAGBACKUP PAGBACKUP Error related character value Figure 57: Example: VERBEXIT SYMPTOMS output Determining the system state There are several control blocks that you can view that describe the state of the system when the stand- alone dump was requested. CSD Describes the number of active central processors and whether the alternate CPU recovery (ACR) is active. PSA Describes the current environment of a central processor, its work unit, FRR stack, an indication of any locks held. LCCA Contains save areas and flags of interrupt handlers. CVT Contains pointers to other system control blocks. Use the IPCS subcommand STATUS WORKSHEET to obtain the data that will help you determine the state of the system. For example, in Figure 58 on page 110 look for the following: • The CPU bit mask, which indicates how many processors are online. • The PSW at the time of the dump fields are zero, this indicates that an SRB is running and the address in SMPSW • The PSATOLD. If the fields are nonzero, the address in PSWSV indicates the indicates the save area of the dispatcher. If the save area of the dispatcher. • The PSAAOLD, which indicates what address space jobs are running in. Stand-alone dump 109

138 Stand-Alone dump MVS Diagnostic Worksheet Dump Title: SYSIEA01 DMPDSENQ 7/20/93 CPU Model 2064 Version 00 Serial no. 145667 Address 00 Date: 03/20/2001 Time: 05:41:26 Local SYSTEM RELATED DATA CVT SNAME (154) ESYS VERID (-18) CUCB (64) 00FD4B68 PVTP (164) 00FE4A10 GDA (230) 01BE1168 RTMCT (23C) 00F81198 ASMVT (2C0) 00FD8030 RCEP (490) 012AA3F0 Alive CPU mask: C000 No. of active CPUs: 0002 CSD Available CPU mask: C000 PROCESSOR RELATED DATA NAME OFFSET | CPU 00 CPU 01 --------------------------+----------------------------------------- PSW at time of dump | 070E0000 070C9000 | 00000000 8124EE9C CR0 Interrupt mask | 5EB1EE40 5EB1EE40 CR6 I/O class mask | FE FE ------ LCCA --------------+----------------------------------------- IHR1 Recursion 208 | 00 00 SPN1/2 Spin 20C | 0000 0000 CPUS CPU WSAVT 218 | 00F4BA00 00F6F550 DSF1/2 Dispatcher 21C | 0000 0080 CRFL ACR/LK flgs 2B4 | 00000000 00000000 ------ PSA ---------------+----------------------------------------- TOLD Curr TCB 21C | 00000000 00000000 ANEW ASCB 220 | 00FD3BC0 00F56180 AOLD Curr ASCB 224 | 00FD3280 00F56180 SUPER Super Bits 228 | 04000000 00000000 CLHT Lock Table 280 | 00FD4890 00FD4890 LOCAL Local lock 2EC | 00000000 00F0D700 CLHS Locks held 2F8 | 00000000 00000001 CSTK FRR stack 380 | 00F4D4D0 00000C00 SMPSW SRB Disp PSW 420 | 070C0000 070C0000 424 | 81142B60 82039000 PSWSV PSW Save 468 | 070E0000 070E0000 46C | 00000000 00000000 MODE Indicators 49F | 08 04 Figure 58: Example: STATUS WORKSHEET output You can also obtain the stored status of each central processor using the IPCS subcommand STATUS CPU REGISTERS. Watch for these bits in the first half of the PSW: • Bits 6 and 7 indicate a disabled (04xxxxxx) or enabled (07xxxxxx) condition • Bit 14 could indicate a wait (000A0000) • Bits 16 and 17 indicate primary, secondary, access register (AR) or Home mode Starting in V2R1, the worksheet displays 4-digit CPUIDs. There can be up to eight CPUs on one line, if allowed. For example: PROCESSOR RELATED DATA | | NAME OFFSET | CPU 0001 CPU 0003 CPU 0005 CPU 0006 CPU 0007 CPU 0008 CPU 0009 CPU 000A | -------------------------- +-------------------------------------------------------------------------------- | PSW at time of dump | 00020000 00020000 04047000 00020000 00020000 00020000 00020000 00020000 | | 80000000 80000000 80000000 80000000 80000000 80000000 80000000 80000000 | | 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 | | 0000001B 0000001B 10F994EC 0000001B 0000001B 0000001B 0000001B 0000001B | CR0 Interrupt mask | 00800002 00800002 00800002 00800002 00800002 00800002 00800002 00800002 | CR6 I/O class mask | 00 00 00 00 00 00 00 00 | ------ LCCA -------------- +-------------------------------------------------------------------------------- 110 z/OS: MVS Diagnosis: Tools and Service Aids

139 Stand-Alone dump In Figure 59 on page 111 , the PSW indicates an enabled wait state condition. The program is running in primary mode with 24-bit addressing (bits 16 and 17 are 00 and the second word begins with 0). CPU(X'0000') STATUS: PSW=070E0000 00000000 NO WORK WAIT ASCB1 at FD3280, JOB(*MASTER*), for the home ASID ASXB1 at FD34F8 for the home ASID. No block is dispatched CLTE: 01CB00E8 +0000 BLSD... 00000000 XDS... 00000000 XRES... 00000000 +000C XQ... 00FD4900 ESET... 00FD4908 ULUT... 00FD4910 CURRENT FRR STACK IS: SVC PREVIOUS FRR STACK(S): NORMAL GPR VALUES 0-3 00000000 00000000 00000000 00000000 4-7 00000000 00000000 00000000 00000000 8-11 00000000 00000000 00000000 00000000 12-15 00000000 00000000 00000000 00000000 ACCESS REGISTER VALUES 0-3 006FB01F 00000000 00000000 00000000 4-7 00000000 00000000 00000000 00000000 8-11 00000000 00000000 00000000 00000000 12-15 00000000 00000000 806FA03C 00000000 Figure 59: Example: STATUS CPU REGISTERS output from important control blocks, use the IPCS subcommand CBFORMAT. See z/OS To obtain other fields for information about the CBFORMAT subcommand. MVS IPCS Commands You can also use the WHERE subcommand to identify particular areas in the dump. For example, if a general purpose register contains an address, use the WHERE subcommand to determine in what module , the WHERE subcommand indicates that the address is that address resides. In Figure 60 on page 111 part of the READONLY nucleus. NOCPU ASID(X'0001') 0124EE9C. IEANUC01.IGVSLIS1+0ADC IN READ ONLY NUCLEUS Figure 60: Example: WHERE subcommand output Analyzing an enabled wait An enabled wait is also known as a dummy wait or a no work wait. An indication of an enabled wait is a or 07060000 00000000 00000000 00000000 and GPRs containing all PSW of 070E0000 00000000 any work to be dispatched. An enabled find zeroes. An enabled wait occurred when the dispatcher did not wait can occur because of resource contention or system non-dispatchability, among other errors. Reviewing outstanding I/O requests When analyzing a stand-alone dump for an enabled wait condition, check the status of the input/output requests. A display of the IOS control block and any active UCBs can help determine what was happening when the system entered the wait state. In Figure 61 on page 112 , the HOTIO field indicates that a solicited interrupt has completed with other fields than DCC-3 because the last time HOT-I/O detection was called. Note also that the IOQF and IOQL first and last request for this device is the same. are identical, indicating that the Stand-alone dump 111

140 Stand-Alone dump * * * ACTVUCBS Processing * * * UCB AT 00F8B798: DEVICE 001; SUBCHANNEL 0001 UCBPRFIX: 00F8B768 -0030 RSTEM... 00 RSV... 08 MIHTI... 40 HOTIO... 40 IOQF... 00F7BC00 IOQL... 00F7BC00 -002D -0024 SIDA... 0001 SCHNO... 0001 PMCW1... 2888 -001E MBI... 0000 LPM... 80 RSV... 00 -001A LPUM... 80 PIM... 80 CHPID... 21000000 -0014 00000000 LEVEL... 01 IOSF1... 00 -000E MIHCT... 0000 LVMSK... 00000001 LOCK... 00000000 -0004 IOQ... 00F7BC00 Figure 61: Example: IOSCHECK ACTVUCBS Subcommand output Analyzing for resource contention You can obtain information related to resource contention by using the IPCS subcommand ANALYZE. This subcommand displays contention information for I/O, ENQs, suspend locks, allocatable devices and real storage. For example, in Figure 62 on page 112 , 61 units of work are waiting to be processed. The top RB is in a wait state. CONTENTION EXCEPTION REPORT JOBNAME=*MASTER* ASID=0001 TCB=006E8E88 JOBNAME=*MASTER* HOLDS THE FOLLOWING RESOURCE(S): There are 0061 units of work waiting for this resource RESOURCE #0011: NAME=MAJOR=SYSIEA01 MINOR=DMPDSENQ SCOPE=SYSTEM STATUS FOR THIS UNIT OF WORK: This address space is on the SRM IN queue. Task non-dispatchability flags from TCBFLGS4: Top RB is in a wait Figure 62: Example: ANALYZE subcommand output Obtaining real storage data Use the IPCS RSMDATA subcommand to obtain information about storage usage and any unusual condition that have occurred prior to requesting the stand-alone dump. In the RSMDATA output, if the percent usage fixed frames field is 100%, there are no frames left. Also, the percent of available total should not be a high number. If it is, there can be a program using too many resources to complete. For , the percent of available total fixed example, in Figure 63 on page 112 frames is at 25%. R S M S U M M A R Y R E P O R T Tot real Below Prf real Dbl real Expanded -------- ----- -------- -------- ------------- In configuration . . . . 33,792 4,096 33,742 - 49,152 Available for allocation 32,672 4,089 33,742 120 49,152 Allocated . . . . . . . 32,398 3,964 33,483 113 48,594 Percent usage . . . . . 99 96 99 94 98 Common fixed frames . . 3,087 317 3,087 - - Percent of available . 9 7 9 - - Total fixed frames . . . 8,338 907 - - - Percent of available . 25 22 - - - Figure 63: Example: RSMDATA output You can also check the ASM control blocks to determine the statistics applicable to I/O requests. The I/O , note that the 509577 requests received and completed should be the same. In Figure 64 on page 113 I/O requests received have all been completed. 112 z/OS: MVS Diagnosis: Tools and Service Aids

141 Stand-Alone dump ASMVT AT 00FD8030 509577 I/O REQUESTS RECEIVED, 509577 I/O REQUESTS COMPLETED BY ASM 240487 NON-SWAP WRITE I/O REQUESTS RECEIVED, 240487 NON-SWAP WRITE I/O REQUESTS COMPLETE PART AT 01CB5310 PAGE DATA SET 0 IS ON UNIT 15B PAGE DATA SET 1 IS ON UNIT 15B PAGE DATA SET 3 IS ON UNIT 14A PAGE DATA SET 4 IS ON UNIT 150 PAGE DATA SET 5 IS ON UNIT 15B Figure 64: Example: ASMCHECK output Determining dispatchability By performing an address space analysis on the major system address space, you can determine if there is any work waiting and if the address space is dispatchable. The major address space you should analyze are: • Master scheduler, ASID 1 • CONSOLE • JES2/JES3 • IMS/CICS/VTAM When you are analyzing an address space for dispatchability, keep in mind these questions: • Are there any suspended SRBs on the queue? You will need to run the WEBs on ASCBSAWQ and look for WEBs that have a WEBFLAG1 field of X'000000' to check if there are any SRBs ready to be dispatched. • Are there any ready TCBs indicated by ASCBTCBS and ASCBTCBL? ASCBTCBS and ASCBTCBL contain a count of the number of TCBs containing ready work to be dispatched. To find the TCBs for ASCBTCBL, look at the WEBs on the ASCBLTCS and ASCBLTCB queues that belong to the home space. • If there is ready work, is the ASCB dispatchable (ASCBDSP1)? ASCBDSP1 is a non-dispatchability flag. For more information about what the values of ASCBDSP1 indicate, see in the z/OS Internet library (www.ibm.com/servers/resourcelink/ z/OS MVS Data Areas svc00100.nsf/pages/zosInternetLibrary) . • If there is no ready work, are the TCBs in a normal wait (TCBFLGS4, TCBFLGS5, TCBNDSP)? fields indicates that the TCB is non-dispatchable. A non-zero value in any of these , ASCBDSP1 is X'04', indicating that this address space is not eligible for CML In Figure 65 on page 114 lock requests. The ASCBSAWQ, ASCBLTCN, and ASCBTCBS fields all contain zeroes, indicating that there is no ready work available. Stand-alone dump 113

142 Stand-Alone dump ASCB: 00FD2B80 +0000 ASCB... ASCB FWDP... 00FC4400 BWDP... 00000000 +000C LTCS... 00000000 SVRB... 00F4FBA8 SYNC... 000727F4 +0018 IOSP... 00000000 WQID... 0000 SAWQ... 00000000 +0024 ASID... 0001 LL5... 00 HLHI... 01 +002A DPH... 01FF LDA... 7F748EB0 RSMF... C0 +0038 CSCB... 00000000 TSB... 00000000 +0040 EJST... 0000009F 94659288 +0048 EWST... AEE06377 45A41803 JSTL... 000141DE +0054 ECB... 00000000 UBET... 00000000 TLCH... 00000000 +0060 DUMP... 00699D90 AFFN... FFFF RCTF... 01 +0067 FLG1... 00 TMCH... 00000000 ASXB... 00FD2EA8 +0070 SWCT... 47BE DSP1... 00 FLG2... CE +0076 SRBS... 0000 LLWQ... 00000000 RCTP... 00000000 +0080 LOCK... 00000000 LSWQ... 00000000 QECB... 00000000 +008C MECB... 00000000 OUCB... 015178E8 OUXB... 01517BF0 +0098 FMCT... 0000 LEVL... 03 FL2A... 00 +009C XMPQ... 00000000 IQEA... 00000000 RTMC... 00000000 +00A8 MCC... 00000000 JBNI... 00000000 JBNS... 00FD2B18 +00B4 SRQ1... 00 SRQ2... 00 SRQ3... 00 +00B7 SRQ4... 00 VGTT... 00CD7458 PCTT... 1AB6F008 +00C0 SSRB... 0000 SMCT... 00 SRBM... 07 +00C4 SWTL... 00000000 SRBT... 000015D1 E5E32000 +00D0 LTCB... 00000000 LTCN... 00000000 TCBS... 00000000 +00DC LSQT... 00000000 WPRB... 00FD2E90 NDP... FF +00E5 TNDP... FF NTSG... FF IODP... FF +00E8 LOCI... 00000000 CMLW... 00000000 CMLC... 00000000 +00F4 SSO1... 000000 SSO4... 00 ASTE... 02900040 +00FC LTOV... 7FFD8400 ATOV... 7FFDCCA8 ETC... 0007 +0106 ETCN... 0000 LXR... 0007 AXR... 0000 +010C STKH... 00FD35C0 GQEL... 00000000 LQEL... 00000000 +0118 GSYN... 00000000 XTCB... 006A3D90 CS1... 00 +0121 CS2... 00 GXL... 02449430 +0128 EATT... 0000000E DAC0D475 +0130 INTS... AED8EC7B 0C7C0900 LL1... 00 +0139 LL2... 00 LL3... 00 LL4... 00 +013C RCMS... 00000000 IOSC... 0000450A PKML... 0000 +0146 XCNT... 01F4 NSQA... 00000000 ASM... 00FD3520 +0150 ASSB... 00FD2D00 TCME... 00000000 GQIR... 00000000 +0168 CREQ... 00000000 RSME... 02219120 AVM1... 00 +0171 AVM2... 00 AGEN... 0000 ARC... 00000000 +0178 RSMA... 02219000 DCTI... 0066E2EE Figure 65: Example: SUMMARY FORMAT output (determining ready work) z/OS MVS Data Areas in the z/OS Internet For the mapping structure of WEBs under the IHAWEB, see . library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) If your address space analysis indicated that ready work was available to be dispatched, look at ASCBDSP1 to determine if the address space is dispatchable. If your address space analysis indicated that there was no ready work available to be dispatched, look at the TCBs to determine if they are in a , for example, the TCB fields indicate that the top RB is in a wait. normal wait. In Figure 66 on page 115 114 z/OS: MVS Diagnosis: Tools and Service Aids

143 Stand-Alone dump TCB: 00FD3608 +0000 RBP... 006FF048 PIE... 00000000 DEB... 00000000 +000C TIO... 00000000 CMP... 00000000 TRN... 00000000 FLGS... 00008004 00 +0018 MSS... 7F7463A0 PKF... 00 +0022 LMP... FF DSP... FF LLS... 006FFD38 +0028 JLB... 00000000 JPQ... 006FF200 GENERAL PURPOSE REGISTER VALUES 0-3 00000001 000027C4 00009FBC 00000004 4-7 006FFF48 006FEFB8 00F6E900 0000005C 8-11 80001E52 00C0DCE8 006F5FF0 00FCF778 12-15 00FCF170 006FF348 80FCF1C0 806FF048 +0070 FSA... 00000000 TCB... 006FF6F0 TME... 00000000 +007C JSTCB... 00FD3608 NTC... 00000000 OTC... 00000000 +0088 LTC... 006FF6F0 IQE... 00000000 ECB... 00000000 +0094 TSFLG... 00 STPCT... 00 TSLP... 00 +0097 TSDP... 00 RD... 7F748F04 AE... 7F746280 +00A0 STAB... 00F0B860 TCT... 00000000 USER... 00000000 +00AC NDSP... 00000000 MDIDS... 00000000 JSCB... 00C0BE84 . . . +014C BDT... 00000000 NDAXP... 00000000 SENV... 00000000 Task non-dispatchability flags from TCBFLGS4: Top RB is in a wait Figure 66: Example: SUMMARY FORMAT output (determining TCB in normal wait) Analyzing a disabled wait A disabled wait condition can be analyzed by checking the PSW at the time of the error. If bits 6 and 7 are zero and bit 14 contains a 1, there is a disabled wait. The wait state code is in byte 7, with the reason code in byte 5. The following examples show how to determine the wait state code: • In the following PSW, the wait state code is X'014' and the reason code is zero. PSW=000E0000 00000014 • In another example, the wait state code is X'064' and the reason code is X'09'. PSW=000A0000 00090064 ® mode, the PSW would look like: • In z/Architecture PSW=0002000 00000000 00000000 00090064 After you determine the wait state code from the PSW, look at the documentation for the specific wait for the specific wait state code you state code for any action you can take. See z/OS MVS System Codes encountered. find the wait state code documented, do one of the following: If you cannot • Analyze the dump to determine if it is a stand-alone dump wait state. • Check PSASMPSW and PSAPSWSV to determine if the dispatcher loaded the wait state PSW because of an overlay. See Chapter 7, “The dump grab bag,” on page 147 for more information about storage overlays. • Use the stored status registers to determine who loaded the wait state into the PSW. Analyzing an enabled loop To determine if the stand-alone dump was requested because of an enabled loop, you need to view the system trace table. Repetitive patterns in the system trace table indicate an enabled loop condition. An enabled loop, however, does not normally cause a system outage. It will cause an outage in these circumstances: Stand-alone dump 115

144 Stand-Alone dump • There is a non-preemptable loop in SRB mode • There is a loop in a high priority address space that is in TCB mode , the CLKC entries indicate an enabled loop, and because column three is all In Figure 67 on page 116 zeroes, this loop is in SRB mode. The PSW addresses on the CLKCs identify the looping program. Use the WHERE subcommand to locate the responsible program. 01 003E 00000000 CLKC 070C0000 8100765C 00001004 00000000 01 003E 00001004 00000000 00000000 CLKC 070C2000 81005638 01 003E 00000000 CLKC 070C0000 810056E6 00001004 00000000 01 003E 00000000 CLKC 070C0000 80FF0768 00001004 00000000 01 003E 00000000 CLKC 070C0000 80FE4E34 00001004 00000000 01 003E 00000000 CLKC 070C1000 81004BB8 00001004 00000000 Figure 67: Example: SYSTRACE output (recognizing an enabled loop) Because of interrupt processing that occurs during an enabled loop, the stored status data might not point to the module causing the loop. To determine if a first level interrupt handler (FLIH) was active, view the of the PSA. If the PSASUPER field is non-zero, a FLIH was active at the time of the error. PSASUPER field find Using the FLIH's save area, the PSW and registers at the time of the error. The address in the second level first half of the PSW will point to the module involved in the loop. See “Problem data saved by for more information. interrupt handlers” on page 117 Analyzing a disabled loop A disabled loop is not visible in the system trace output because disabled routines do not take interrupts. Normally, a disabled loop results in a spin loop in a multiprocessor environment. When analyzing a stand- alone dump for a disabled loop, use the stored status data to determine the module involved in the loop. Also, examine the in-storage logrec buffer for entries that recovery routines have made but which were not written to the logrec data set because of a system problem. Very often it is these records that are the key to the problem solution. See “Obtaining information from the logrec recording control buffer” on page for more information. 524 SLIP problem data in the SLIP work area In a stand-alone dump taken after a SLIP ACTION=WAIT trap matches, problem data can be found in a work area pointed to by the PSAWTCOD in the prefix save area (PSA). Table 18 on page 116 field shows the format of this area. field Table 18: Work area pointed to by the PSAWTCOD Length Content Offset 0 (0) 1 RTM/SLIP processing environment indicator: • X'01': RTM1 • X'02': RTM2 • X'03': MEMTERM • X'04': PER 2 Logical processor identifier (CPUID) 1 (1) 3 (3) 1 System mask, if offset 0 is 2 (RTM2) 4 Pointer to general purpose registers 0 through 15 at the time of the event 4 (4) 4 Pointer to the 16-byte program status word (PSW) at the time of the event 8 (8) 116 z/OS: MVS Diagnosis: Tools and Service Aids

145 Stand-Alone dump Table 18: Work area pointed to by the PSAWTCOD field (continued) Content Offset Length 12 (C) One of the following, as indicated by the RTM/SLIP processing environment indicator at offset 0 4 of the work area: • Pointer to the system diagnostic work area (SDWA), if offset 0 is 1 (RTM1) • Pointer to the recovery termination manager 2 (RTM2) work area (RTM2WA), if offset 0 is 2 (RTM2) • Pointer to the address space control block (ASCB) being ended, if offset 0 is 3 (MEMTERM) • Pointer to the PER code, if offset 0 is 4 (PER) 16 (10) 4 Pointer to cross memory information (control registers 3 and 4) at the time of the event Pointer to access registers AR0 through AR15 at the time of the event. Pointer to the high 32 4 20 (14) bits of the 64-bit GPRs, or 0 if not available. See Wait State 01B in the z/OS MVS System Codes for more information. first Problem data saved by level interrupt handlers level interrupt handlers (FLIH), you might first If processing is stopped or an error occurs in one of the need to determine the PSW and registers of the interrupted program. Field PSASUPER has bits to indicate if an FLIH was in control: • PSAIO for the IO FLIH • PSASVC for the SVC FLIH • PSAEXT for the external FLIH • PSAPI for the program interrupt FLIH The following tables show where each FLIH saves the PSW and registers for interrupted tasks or SRB: • Table 19 on page 117 • Table 20 on page 118 • Table 21 on page 119 • Table 22 on page 119 Table 19: Problem data saved by the SVC FLIH for task and SRB code. Data saved Field receiving data Control block Code giving up control General purpose registers 7-9 All SVCs, initially PSAGPREG PSA LCCASGPR General purpose registers, if a LCCA problem occurred RBOPSW Requestor's RB All SVCs PSW XSB Cross memory status XSBXMCRS PCLINK stack header XSBSTKE XSB XSBEAX XSB EAX STCBARS STCB Access registers 0-15 Current linkage stack entry STCBLSDP STCB pointer General purpose registers 0-15 TCBGRS TCB Type 1 and 6 SVCs General purpose registers 0-15 RBGRSAVE SVRB Type 2, 3, and 4 SVCs Stand-alone dump 117

146 Stand-Alone dump Table 20: Problem data saved for a program check for task and SRB code. Field receiving data Control block Data saved Code giving up control LCCAPGR2 General purpose registers 0-15 LCCA Initially for non-recursive program interruptions PSW LCCA LCCAPPSW ILC/PINT LCCA LCCAPINT TEA LCCAPVAD LCCA LCCA LCCAPTR2 TEA AR number Control registers 0-15 LCCAPCR2 LCCA Access registers 0-15 LCCAPAR2 LCCA General purpose registers 0-15 Initially for recursive program LCCAPGR1 LCCA interruptions LCCA PSW LCCAPPS1 LCCA LCCAPIC1 ILC/PINT LCCAPTE1 LCCA TEA TEA AR number LCCAPTR2 LCCA LCCA Control registers 0-15 LCCAPCR1 LCCAPAR1 LCCA Access registers 0-15 General purpose registers 0-15 Initially for monitor call LCCA LCCAPGR3 interruptions that occur during PSW LCCAPPS3 LCCA page fault or segment fault processing LCCAPIC3 LCCA ILC/PINT LCCA TEA LCCAPTE3 LCCAPTR3 LCCA TEA AR number Control registers 0-15 LCCAPCR3 LCCA LCCA Access registers 0-15 LCCAPAR3 General purpose registers 0-15 LCCAPGR4 LCCA Initially for all trace buffer full interruptions Registers TCB and STCB For unlocked tasks for page faults or segment faults that PSW RB require I/O; problem data is moved from the LCCA Other status XSB IHSA For locked tasks for page faults Registers or segment faults that require PSW IHSA I/O; problem data is moved from the LCCA Other status XSB for IHSA For SRBs for page faults or segment faults that require I/O; SRB is suspended, no status is saved 118 z/OS: MVS Diagnosis: Tools and Service Aids

147 Stand-Alone dump Table 21: Problem data saved by the I/O FLIH for task and SRB code. Field receiving data Control block Code giving up control Data saved SCFSIGR1 Initially SCFS General purpose registers 0-15 Control registers 0-15 SCFSICR1 SCFS Access registers 0-15 SCFS SCFSIAR1 TCB For unlocked tasks General purpose registers 0-15 TCBGRS RB PSW RBOPSW Cross memory status XSBXMCRS XSB XSB EAX XSBEAX STCB Access registers 0-15 STCBARS STCBLSDP Current linkage stack entry STCB pointer For locally locked tasks General purpose registers 0-15 IHSAGPRS IHSA for locked address space IHSA for locked PSW IHSACPSW address space Access registers 0-15 IHSAARS IHSA for locked address space IHSALSDP Current linkage stack entry IHSA for locked address space pointer XSB for locked Cross memory status XSBXMCRS address space EAX XSBEAX XSB for locked address space General purpose registers 0-15 For SRBs and non-preemptive SCFSIGR1 SCF TCBs PSW FLCIOPSW PSA Table 22: Problem data saved by the external FLIH for task and SRB code. Code giving up control Data saved Field receiving data Control block General purpose registers 7-10 PSASLSA PSA Initially General purpose registers 0-15 IHSA For locally locked tasks IHSAGPRS PSW IHSACPSW IHSA Access registers 0-15 IHSAARS IHSA IHSALSDP Current linkage stack entry IHSA pointer Cross memory status XSBXMCRS XSB EAX XSBEAX XSB Stand-alone dump 119

148 Stand-Alone dump Table 22: Problem data saved by the external FLIH for task and SRB code. (continued) Field receiving data Control block Data saved Code giving up control TCB Unlocked tasks TCBGRS General purpose registers 0-15 PSW RBOPSW RB Access registers 0-15 STCBARS STCB STCBLSDP Current linkage stack entry STCB pointer XSBXMCRS Cross memory status XSB XSB EAX XSBEAX General purpose registers 0-15 SCFSXGR1 For SRBs and non-preemptive SCFS TCBs PSW SCFSXPS1 SCFS SCFSXCR1 SCFS Control registers 0-15 SCFSXAR1 Access registers 0-15 SCFS recursion SCFSXGR1 SCFS If General purpose registers 0-15 first PSW SCFSXPS2 SCFS SCFSXCR2 SCFS Control registers 0-15 SCFSXAR2 SCFS Access registers 0-15 General purpose registers 0-15 SCFS SCFSXGR3 If second recursion PSW FLCEOPSW PSA SCFSXCR3 SCFS Control registers 0-15 SCFSXAR3 SCFS Access registers 0-15 120 z/OS: MVS Diagnosis: Tools and Service Aids

149 ABEND dumps Chapter 5. ABEND dump An ABEND dump shows the virtual storage predominately for an unauthorized program. Typically, a dump is requested when the program cannot continue processing and abnormally ends. An operator can also request an ABEND dump while ending a program or an address space. The system can produce three types of ABEND dumps, one unformatted dump (SYSMDUMP) and two formatted dumps (SYSABEND and SYSUDUMP). These dumps are produced when a program cannot continue processing and a DD statement for an ABEND dump was included in the JCL for the job step that has ended. The data included is dependent on: • Parameters supplied in the IEAABD00, IEADMR00, and IEADMP00 parmlib members for SYSABENDs, SYSMDUMPs, and SYSUDUMPs, respectively. • A determination by the system • ABEND, CALLRTM, or SETRP macro dump options • IEAVTABX, IEAVADFM, or IEAVADUS installation exit processing efficient IBM recommends the use of SYSMDUMP, the unformatted dump. Unformatted dumping is more because only the storage requested is written to the data set, which allows the application to capture diagnostic data and be brought back online faster. Also, pre-formatted dumps force the system to select a single set of reports, too many for the diagnosis of many problems, and too few for others. Unformatted dumps allow the analyst to determine, from a wide variety of reports, what information to use and how it is presented. Use SYSUDUMP for diagnosis of program problems that need simple problem data. A SYSABEND dump, through the IBM supplied defaults, supplies more of the system information related to the application program's processing than a SYSUDUMP. The additional information may be better suited for complex problem diagnosis. This section covers the following topics, which describe how to use ABEND dumps: • “Synopsis of ABEND dumps” on page 121 • “Obtaining ABEND dumps” on page 123 • “Printing and viewing dumps” on page 126 • “Contents of ABEND dumps” on page 127 • “Customizing ABEND dump contents” on page 132 • “Analyzing an ABEND dump” on page 137 Synopsis of ABEND dumps Use Table 23 on page 122 as a quick reference for the three types of ABEND dumps. If you need further information about ABEND dumps, refer to the sections following this table. © Copyright IBM Corp. 1988, 2017 121

150 ABEND dumps Table 23: Types of ABEND dumps Dump contents Obtaining the dump Receiving the dump Formatted dump in a data set with the SYSABEND Default contents: summary dump for : ddname of SYSABEND: the failing task and other task data. See Assembler macro in any program: “Contents of ABEND dumps” on page • In SYSOUT; print in the output class 127 . • ABEND with DUMP or browse at a terminal • SETRP with DUMP=YES Customized by all of the following: • On tape or direct access: print in a separate job or browse at a terminal Assembler macro in an authorized • IEAADB00 parmlib member program: • On a printer (Not recommended; the • Parameter list on the requesting printer cannot be used for anything • ABEND with DUMP ABEND, CALLRTM, or SETRP macro else for the duration of the job step.) • Recovery routines invoked by the • CALLRTM with DUMP=YES recovery termination manager (RTM) For full information, see “Obtaining • SETRP with DUMP=YES . ABEND dumps” on page 123 • Cumulative from all CHNGDUMP Operator command on a console with operator commands with SYSABEND master authority: • Installation-written routines at the • CANCEL with DUMP IEAVTABX, IEAVADFM, and IEAVADUS exits For full information, see “Obtaining ABEND dumps” on page 123 . For full information about customization, see “Customizing ABEND dump contents” on page 132 . Default contents: summary dump and : SYSMDUMP Unformatted dump in a data set with the ddname of SYSMDUMP: system data for the failing task. See Assembler macro in any program: “Contents of ABEND dumps” on page • On tape or direct access; use IPCS to . • ABEND with DUMP 127 format and print/view the dump • SETRP with DUMP=YES Customized by all of the following: For full information, see “Obtaining Assembler macro in an authorized • IEADMR00 parmlib member ABEND dumps” on page 123 . program: • Parameter list on the requesting ABEND, CALLRTM, or SETRP macro • ABEND with DUMP • Recovery routines invoked by the • CALLRTM with DUMP=YES recovery termination manager (RTM) • SETRP with DUMP=YES • Cumulative from all CHNGDUMP Operator command on a console with operator commands with SYSMDUMP master authority: • Installation-written routines at the • CANCEL with DUMP IEAVTABX exit For full information, see “Obtaining For full information about . ABEND dumps” on page 123 customization, see “Customizing ABEND dump contents” on page 132 . 122 z/OS: MVS Diagnosis: Tools and Service Aids

151 ABEND dumps Table 23: Types of ABEND dumps (continued) Obtaining the dump Receiving the dump Dump contents SYSUDUMP : Default contents: summary dump for Formatted dump in a data set with the the failing task. See “Contents of ddname of SYSUDUMP: Assembler macro in any program: . ABEND dumps” on page 127 • In SYSOUT; print in the output class • ABEND with DUMP Customized by all of the following: or browse at a terminal • SETRP with DUMP=YES • On tape or direct access; print in a • IEADMP00 parmlib member separate job or browse at a terminal Assembler macro in an authorized • Parameter list on the requesting program: • On a printer (Not recommended; the ABEND, CALLRTM, or SETRP macro printer cannot be used for anything • ABEND with DUMP • Recovery routines invoked by the else for the duration of the job step.) • CALLRTM with DUMP=YES recovery termination manager (RTM) For full information, see “Obtaining • SETRP with DUMP=YES • Cumulative from all CHNGDUMP . ABEND dumps” on page 123 operator commands with SYSUDUMP Operator command on a console with • Installation-written routines at the master authority: IEAVTABX, IEAVADFM, and • CANCEL with DUMP IEAVADUS exits For full information, see “Obtaining For full information about . ABEND dumps” on page 123 customization, see “Customizing . ABEND dump contents” on page 132 Obtaining ABEND dumps You can obtain SYSABEND, SYSUDUMP, and SYSMDUMP dumps using one process. To obtain a specific ; for type of ABEND dump, specify the correct DD statement in your JCL as shown in Table 24 on page 123 z/OS MVS JCL Reference : more information about these statements, see specific ABEND dumps Table 24: Summary: DD statements to specify for Dump Type DD statement //SYSABEND DD ... SYSABEND SYSUDUMP //SYSUDUMP DD ... SYSMDUMP //SYSMDUMP DD ... Provide a data set to receive the dump, then arrange to view the dump. If a data set is not provided, the system ignores a request for an ABEND dump. When setting up the data set, determine if it will contain privileged data. If so, protect it with passwords or other security measures to limit access to it. Because ABEND dumps provide information to debug application programs, the data they have access to is limited. Authorized programs require special processing to allow the information they can access into a dump. ABEND dump processing issues an IEA848I message when violations occur. The primary facility for dumping authorized data is through the SDUMPX macro, however, two security FACILITY classes are provided that allow installations to permit ABEND dumps to contain authorized data: IEAABD.DMPAUTH For access to programs that are protected by the PROGRAM facility, or UNIX set-user-ID and/or set- group-ID programs that gain privilege. IEAABD.DMPAKEY For programs that execute in authorized keys. z/OS Security Server RACF Security Administrator's Guide for additional details. For details on the See SDUMPX macro, see • z/OS MVS Programming: Authorized Assembler Services Reference LLA-SDU • z/OS MVS Programming: Authorized Assembler Services Guide . ABEND dump 123

152 ABEND dumps Data set for dump Define the data set in either: • The JCL for the job step, for batch processing • The logon procedure for a TSO/E userid, for foreground processing Define the data set in a DD statement with a ddname of SYSABEND, SYSMDUMP, or SYSUDUMP. The ddname for the data set determines how the dump can be printed or viewed, what the dump contains, first two effects are discussed in the following topics. and how the dump contents can be customized. The The system writes the dump in a sequential data set using the basic sequential access method (BSAM). The dump data set can be on any device supported by BSAM. Note that the system provides a data control block (DCB) for the dump data set and opens and closes the DCB. You can also use extended format sequential data sets as dump data sets for ABEND dumps. Extended format sequential data sets have the following features: • Have a greater capacity than sequential data sets • Support striping • Support compression Using DSNTYPE=LARGE: In z/OS V1R7 and later releases, sequential data sets that use DSNTYPE=LARGE are allowable for ABEND dumps when the systems that are involved in processing a DSNTYPE=LARGE data set are migrated to V1R7 prior to their use. If analysis using an earlier release is required, use z/OS V1R7 to transcribe the dump into a data set supported by the earlier release. In z/OS V1R11 and later releases, extended format Placing dump data sets in cylinder-managed space: sequential data sets can be placed in either track-managed space or cylinder-managed space. Abend dump fully supports placement of dump data sets in cylinder-managed space. VIO for ADDRSPC=REAL: A SYSMDUMP DD statement must specify a virtual input/output (VIO) data set if the job or step to be dumped is running in nonpageable virtual storage, that is, the JCL JOB or EXEC ADDRSPC=REAL. specifies statement Preallocate data sets for SYSMDUMP dumps You may use any dataset name you wish for the SYSMDUMP dataset. However, the dataset name SYS1.SYSMDPxx will be treated specially. If you use the data set naming convention of SYS1.SYSMDPxx first for a DISP=SHR data set, the system writes only the dump, with all subsequent dump requests receiving system message IEA849I. The data set can be either a magnetic tape unit or a direct access storage device (DASD) data set. When using this naming convention, you must manage the dump data set to use the same data set repeatedly for SYSMDUMP dumps. For subsequent dumps, you must initialize the SYS1.SYSMDPxx data (EOF) mark as the first record. set with an end-of-file identifies the exact You must use SYS1.SYSMDPxx, where xx is 00 through FF and Naming Convention: data set to be used. If you specify DISP=SHR with the SYS1.SYSMDPxx naming convention, the facility Data Set Disposition: first dump becomes active. that enables the system to write only the If you specify DISP=SHR without the SYS1.SYSMDPxx naming convention, the system writes a new dump over the old dump when the same data set is the target for multiple dumps. This also happens for multiple dumps within the same job if each step does not specify FREE=CLOSE on the SYSMDUMP DD statement. For dispositions other than DISP=SHR, the system uses the data set as if it were any other MVS data set. If you specify DISP=MOD, the system writes the dump following the previous dump, so that the data set contains more than one dump. If you specify DISP=OLD, the system writes a new dump over the old dump when the same data set is the target for multiple dumps. Data Set Management: To minimize the loss of subsequent dumps, your installation exit should follow these steps for the management of SYS1.SYSMDPxx data sets: 124 z/OS: MVS Diagnosis: Tools and Service Aids

153 ABEND dumps 1. Intercept system message IEA993I. The system issues this message when it writes the dump to the SYS1.SYSMDPxx data set. 2. Copy the dump onto another data set. first 3. Clear the SYS1.SYSMDPxx data set by writing an EOF mark as the record, making it available for the next SYSMDUMP dump to be written on the data set. The installation exit routine can be one of the following: • IEAVMXIT • The exit routine specified on the USEREXIT parameter in the MPFLSTxx parmlib member See z/OS MVS System Messages, Vol 6 (GOS-IEA) for a description of system messages IEA849I and IEA993I. See z/OS MVS Installation Exits for information about the installation exit routine. Process for obtaining ABEND dumps Obtain an ABEND dump by taking the following steps for each job step where you want to code a dump: 1. Code a DD statement in the JCL for every job step where a dump would be needed. The statement can specify one of the following: • Direct access • SYSOUT • Tape • Printer (Not recommended; printer cannot be used for anything else for duration of job step.) The presence of the DCB attributes enables the system-determined block size process to select an efficient block size for the DASD selected. For more information, see z/OS DFSMS Using Data Sets . Your specification installation can make of these attributes unnecessary through local SMS class selection routines. For example, the following SYSOUT SYSABEND DD statement places the dump in sysout output class A. In the example, output class A is a print class. The system prints a dump written to this class when printing the class. //SYSABEND DD SYSOUT=A The following example places a SYSUDUMP dump on a scratch tape. In the example, TAPE is an installation group name. DEFER specifies that the operator is to mount the tape only when the data set is opened; thus, the operator will not mount the tape unless it is needed for a dump. The system deletes the data set if the job step ends normally; in this case, the data set is not needed because no dump was written. The system keeps the data set if the step ends abnormally; the data set contains a dump. A future job step or job can print the dump. //SYSUDUMP DD DSN=DUMPDS,UNIT=(TAPE,,DEFER),DISP=(,DELETE,KEEP) 2. Place the DD statement in the JCL for the job step that runs the program to be dumped or in the logon procedure for a TSO/E user ID. The following example shows a SYSABEND DD statement in the logon procedure for a TSO/E user ID. A dump statement must appear in the logon procedure in order to process a dump in the foreground. The system keeps the data set if the job step ends abnormally. //SYSABEND DD DSN=MYID3.DUMPS,DISP=(OLD,,KEEP) 3. If you need to diagnose a program that does not contain code for an ABEND dump, code one of the following: • ABEND assembler macro with a DUMP parameter in a problem program or an authorized program ABEND dump 125

154 ABEND dumps The following example shows an ABEND macro that ends a program with a user completion code of 1024 and requests a dump: ABEND 1024,DUMP • SETRP assembler macro with a DUMP=YES parameter in the recovery routine for a problem program or an authorized program The following example shows a SETRP macro in an ESTAE recovery routine for a problem program. The address of the system diagnostic work area (SDWA) is in register 1, which is the default location. SETRP DUMP=YES • CALLRTM assembler macro with a DUMP=YES parameter in an authorized program The following example shows a macro in an authorized program. The CALLRTM macro ends a program and requests a dump. Register 5 contains the address of the task control block (TCB) for the program. CALLRTM TYPE=ABTERM,TCB=(5),DUMP=YES 4. If you need to diagnose a program that already contains code for an ABEND dump, and that program is already abending, skip step 5. 5. If you need to diagnose a program that already contains code for an ABEND dump, but the program is not currently abending, ask the operator to enter a CANCEL command with a DUMP parameter on the console with master authority. For example, to cancel a job and request a dump, ask the operator to use either of the following: CANCEL BADJOB,DUMP CANCEL STARTING,A=1234,DUMP To cancel a user ID and request a dump, ask the operator to use either of the following commands: CANCEL U=MYID3,DUMP CANCEL U=*LOGON*,A=5678,DUMP defined 6. The system writes a formatted dump to the data set in step 1. Printing and viewing dumps You can print or view the different types of ABEND dumps as follows: SYSABEND and SYSUDUMP dumps: These two dumps are formatted as they are created. They can be: • In a SYSOUT data set. The system can print the dump when printing the output class. To view at a terminal, use a facility that allows the viewing of JES SPOOL data sets. • On a tape or direct access data set. Print the dump in a separate job or job step or view the dump at a terminal by browsing the data set containing the dump. A convenient way to print the dump is in a later job step that runs only if an earlier job step abnormally ends and, thus, requests a dump. For this, use the JCL EXEC statement COND parameter. • Sent directly to a printer. Note this is not recommended; the printer cannot be used for anything else while the job step is running, whether a dump is written or not. Figure 68 on page 127 shows JCL that uses the IEBPTPCH facility to print a formatted dump data set. In this example, a SYSABEND dump is printed. The same JCL can be used for a SYSUDUMP. Because the system formats the dump when creating it, the IEBPTPCH utility program can print the dump. The dump is in a data set named DUMPDS on tape. 126 z/OS: MVS Diagnosis: Tools and Service Aids

155 ABEND dumps ⋮ //PRINT EXEC PGM=IEBPTPCH //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=DUMPDS,UNIT=TAPE,DISP=(OLD,DELETE) //SYSUT2 DD SYSOUT=A //SYSIN DD * PRINT PREFORM=A,TYPORG=PS /* Figure 68: Example: Using IEBPTPCH to print a dump This dump is unformatted when created. The system can write the dump to tape or SYSMDUMP dumps: direct access. Use IPCS to format the dump and then view it at a terminal or print it. SYSMDUMP dumps information for specific are especially useful for diagnosing errors because IPCS can produce specific for more information. requests. See z/OS MVS IPCS User's Guide Contents of ABEND dumps You can specify the contents of an ABEND dump by specifying parameters on the ddname in the JCL for the program. This topic discusses the IBM-supplied default contents and contents available through customization. All three ABEND dumps contain a summary dump, although the SYSMDUMP summary dump contains less information than the SYSABEND and SYSUDUMP summary dumps. The SYSUDUMP consists of only the summary dump. The SYSABEND dump also contains task data, while the SYSMDUMP also contains system data. The SYSMDUMP dump is a synchronous SVC dump and contains data similar to the data in an SVC dump. Note: 1. ABEND dumps do not include hiperspaces. To include hiperspace in an ABEND dump, read the data from the hiperspace into address space storage that is being dumped. 2. If some needed areas are not included by default, see “Customizing ABEND dump contents” on page for ways to add the areas. 132 Determining current ABEND dump options Use a DISPLAY DUMP operator command to get the dump mode and options in effect for SVC dumps and ABEND SYSABEND, SYSMDUMP, and SYSUDUMP dumps. The system displays the mode and options in message IEE857I. For example, to determine the mode and options, enter the following command: DISPLAY DUMP,OPTIONS If the options listed are not the ones desired, use a CHNGDUMP operator command to change them. See z/OS MVS System Commands for the DISPLAY and CHNGDUMP operator commands. For a description MVS System Messages . of these messages, see Default contents of ABEND dumps The contents of the three ABEND dumps are detailed in the following two tables. Table 25 on page 128 shows dump contents alphabetically by the parameters that specify the areas in the dumps. To select a dump, decide what areas will be used to diagnose potential errors. Find the areas in the tables. The symbols in columns under the dump indicate how the area can be obtained in that dump. The symbols are: D IBM-supplied default contents ABEND dump 127

156 ABEND dumps M Available on the macro that requests the dump P Available in the parmlib member that controls the dump options X Available on the CHNGDUMP operator command that changes the options for the dump type Table 25: Summary: dump contents by parameter ABEND Dump to Dump Contents ABEND Dump to Parameter ABEND Dump to SYSMDUMP SYSABEND SYSUDUMP ALL X All the dump options available in a SYSMDUMP dump, except the NOSYM and ALLNUC options ALLNUC The DAT-on and DAT-off nucleuses P X ALLPA M D M P X M P X All link pack areas, as follows: • Job pack area (JPA) • Link pack area (LPA) active for the task being dumped • Related Supervisor Call (SVC) modules All the program data areas ALLPDATA P X P X ALLSDATA All the system data areas P X P X P The entire virtual control program ALLVNUC M M P X M P X nucleus, including: Prefixed • save area (PSA) • System queue area (SQA) • Local system queue area (LSQA) Control blocks for the task being M P X D M P X M CB dumped CSA P X Common service area (CSA) (that is, subpools 227, 228, 231, 241) Data management control blocks for DM M D M P X M P X the task being dumped: • Data control block (DCB) Data extent block (DEB) • Input/output block (IOB) • ENQ Global resource serialization control D P X P X blocks for the task being dumped: Global queue control blocks • Local queue control blocks • 128 z/OS: MVS Diagnosis: Tools and Service Aids

157 ABEND dumps Table 25: Summary: dump contents by parameter (continued) ABEND Dump to Parameter ABEND Dump to Dump Contents ABEND Dump to SYSMDUMP SYSUDUMP SYSABEND ERR M D M P X M P X Recovery termination manager (RTM) control blocks for the task being dumped: • Extended error descriptor (EED) for RTM • Registers from the system diagnostic work area (SDWA) RTM2 work area (RTM2WA) • • Set task asynchronous exit (STAE) control block (SCB) GRSQ P X Global resource serialization control blocks for the task being dumped: Global queue control blocks • • Local queue control blocks M P X IO M D M P X Input/output supervisor (IOS) control blocks for the task being dumped: • Execute channel program debug area (EXCPD) Unit control block (UCB) • Job pack area (JPA): module names M P X M P X M JPA and contents Active link pack area (LPA): module M P X M P X M P X LPA names and contents LSQA Local system queue area (LSQA) D M P X D M P X M P X allocated for the address space (that is, subpools 203 - 205, 213 - 215, 223 - 225, 229, 230, 233 - 235, 249, 253 - 255) No symptom dump (message P X P X P X NOSYM IEA995I) Read/write portion of the control M P X D M P X M P X NUC program nucleus (that is, only non- page-protected areas of the DAT-on nucleus), including: • Communication vector table (CVT) • Local system queue area (LSQA) save area (PSA) Prefixed • System queue area (SQA) • M P X M P X PCDATA Program call information for the task M Program status word (PSW) when the PSW M P X D M P X M P X dump was requested M Global resource serialization control Q M M blocks for the task being dumped: Global queue control blocks • Local queue control blocks • ABEND dump 129

158 ABEND dumps Table 25: Summary: dump contents by parameter (continued) ABEND Dump to ABEND Dump to Dump Contents ABEND Dump to Parameter SYSMDUMP SYSABEND SYSUDUMP D M P X REGS Registers at entry to ABEND, that is, M P X M when the dump was requested: Access registers • Floating-point registers • • General registers • Vector registers, vector status register, and vector mask register for a task that uses the Vector Facility RGN Allocated pages in the private area of D P X each address space being dumped, including subpools 0 - 127, 129 - 132, 203 - 205, 213 - 215, 223 - 225, 229, 230, 236, 237, 244, 249, 251 - 255 Save area linkage information, SA or SAH D M P X M M P X program call linkage information, and backward trace of save areas Storage allocated in user subpools 0 SPLS M D M P X M P X - 127, 129 - 132, 244, 251, and 252 for the task being dumped Note that SUBPLST in the macro parameter list for a SYSABEND or SYSUDUMP dump overrides SPLS in the dump options list, but only for the dump being requested. M P X System queue area (SQA) allocated D M P X M P X SQA (that is, subpools 226, 239, 245, 247, 248) The control blocks for the failing task in the SQA include: Address space control block • (ASCB) • Job scheduler address space control block (JSAB) SUBTASKS Storage for the task being dumped M P X M P X D M and program data for all of its subtasks Summary dump, see “Default SUM D M P X D M P X D M P X contents of summary dumps in ABEND dumps” on page 131 Scheduler work area (SWA); that is, M P X M P X D M P X SWA subpools 236 and 237 System trace and generalized trace TRT M P X D M P X facility (GTF) trace, as available System trace, as available D M P X 130 z/OS: MVS Diagnosis: Tools and Service Aids

159 ABEND dumps Default contents of summary dumps in ABEND dumps If only a summary dump is requested, as in a SYSUDUMP dump that is not customized, the summary information is together, because it forms the entire dump. When a summary dump is combined with other dump options, the summary dump information is scattered throughout the dump. In Table 26 on page 131 , an S indicates that a summary dump is available with the dump type. Table 26: Default contents of summary dumps in ABEND dumps ABEND Dump ABEND Dump ABEND Dump to Summary Dump Contents to SYSUDUMP SYSMDUMP to SYSABEND Completion code S S : The system or user completion code if an S ABEND macro requested the dump and, if it exists, the accompanying reason code for the failing task, including: S S Control blocks • (address space control block) ASCB (contents directory entry) CDE • LLE (load list element) • RB (request block) • • TCB (task control block) (task input/output table) TIOT • XL (extent list) • for the recovery termination manager (RTM): S Control blocks S S EED (extended error descriptor) for RTM • from the system diagnostic work area (SDWA) • Registers RTM2WA • (RTM2 work area) (set task asynchronous exit (STAE) control block) SCB • Dump header , mapped by the AMDDATA macro S S S Dump index : The job and step being dumped, the time and date of Dump title S S S and the processor the dump, the dump identifier, , if the PSW points to an active load module: Load module S S S Name • S S Module Contents • S S into the load module of the failing instruction • Offset S S (program request block) • Module pointed to in the last PRB (program status word) at entry to ABEND, that is, when the PSW S S S dump was requested. The PSW includes the instruction length code and the interrupt code for the failing instruction. S S S at entry to ABEND, that is, when the dump was Registers requested S S Save areas of register contents : 4 kilobytes before and 4 kilobytes after the addresses in Storage S S S the PSW and the registers. The dump shows, by ascending address, only the storage that the user is authorized to access. Duplicate addresses are removed. System trace table entries for the dumped address space S S ABEND dump 131

160 ABEND dumps Table 26: Default contents of summary dumps in ABEND dumps (continued) ABEND Dump ABEND Dump to ABEND Dump Summary Dump Contents to SYSUDUMP SYSMDUMP to SYSABEND S S : Information from the task control blocks (TCB) in TCB summary the address space being dumped S Virtual storage map : The subpools in the address space being S dumped: • Subpool number • Subpool key • The owning or sharing task control block (TCB) • The beginning address and length of each allocated area • The beginning address and length of each free area Customizing ABEND dump contents The ddname of the data set for the ABEND dump determines how the contents can be customized. The system determines the contents of a particular ABEND dump from the options list the system maintains for the type of dump. The dump options list can be customized, cumulatively, by all the ways shown in the following tables; thus, for example, a SYSMDUMP ABEND dump written for an ABEND macro can be completely different from the default SYSMDUMP ABEND dump described in this document. • Table 27 on page 133 • Table 28 on page 135 • Table 29 on page 136 For more information about the topics described in this section, see the following references: • See z/OS MVS Initialization and Tuning Reference for parmlib members. • See z/OS MVS System Commands for the CHNGDUMP operator command. z/OS MVS Programming: Assembler Services Reference ABE-HSP and z/OS MVS Programming: • See for the ABEND, SETRP, SNAP, SNAPX, ESTAE, ESTAEX, and Assembler Services Reference IAR-XCT ATTACH or ATTACHX with ESTAI macros. z/OS MVS Programming: Authorized Assembler Services Reference SET-WTO z/OS MVS • See and Programming: Authorized Assembler Services Reference ALE-DYN for the SETRP and CALLRTM macros. for the IEAVTABX, IEAVADFM, and IEAVADUS installation exits. • See z/OS MVS Installation Exits How an installation customizes dumps should Recommendations for customizing ABEND dumps: depend on the usual use of each type of dump. The IBM-supplied dump options for ABEND dumps are designed for the following uses: • SYSABEND dumps: For diagnosis of complex errors in any program running under the operating system • SYSMDUMP dumps: For diagnosis of system problems when the dump is requested in a program • SYSUDUMP dumps: For diagnosis of program problems needing simple problem data specifies the default contents as only a For SYSUDUMP dumps, the IBM-supplied IEADMP00 member summary dump. An installation should consider using the IEADMP00 member as supplied, because it offers a small dump for simple problems. Program areas in dumps: To request a meaningful dump for a particular program, code an ABEND macro that points to a macro parameter list. Specify in the list the data areas that are needed to diagnose the specified in the parmlib member for the dump. Two examples abnormally ending program but that are not are: • If the task that is ending has subtasks and they might cause an error, specify PDATA=SUBTASKS in the macro parameter list to dump the subtasks. 132 z/OS: MVS Diagnosis: Tools and Service Aids

161 ABEND dumps • To see only the subpools used by the program, specify the subpool numbers in a SUBPLST option for a SYSABEND dump. The SPLS option, which is a default for SYSABEND dumps, writes all user subpools. Leaving SPLS in the dump options may make the dump bigger than needed. Note that SUBPLST in the macro parameter list overrides SPLS in the current dump options. Nucleus areas in dumps: Dump options control the parts of the nucleus that appear in a dump. A diagnostician seldom needs to analyze all of the nucleus. An installation can eliminate nucleus areas from dumps. If the IBM-supplied defaults are used, an SYSMDUMP ABEND dump contains the read/write DAT- on nucleus. An installation can obtain one copy of the DAT-off nucleus to use in any problem by entering a DUMP operator command. The ABEND dump options that control dumping of the nucleus areas are: Option Nucleus aArea SDATA=NUC Read/write DAT-on nucleus SDATA=ALLNUC All of the DAT-on nucleus: read/write and read-only Customizing SYSABEND dump contents Table 27 on page 133 summarizes how to customize the contents of SYSABEND dumps. Table 27: Customizing SYSABEND dump contents Effect Example SYSABEND Customization To add program call data and the link Replacing IEAABD00 : At system initialization parmlib member Change occurs (by using the IEBUPDTE utility). pack area to all SYSABEND dumps, : IEAABD00 contains the What changes while retaining the IBM-supplied IBM-supplied default dump options. options, use IEBUPDTE to change the Replacing IEAABD00 changes the IEAABD00 member to contain: dump options for SYSABEND. SDATA=(LSQA,CB,ENQ,TRT,ERR, DM,IO,SUM,PCDATA) PDATA=(PSW,REGS,SPLS,ALLPA, SA,LPA) To add program call data and the link Using a macro parameter list . : At dump request Change occurs pack area to this SYSABEND dump, What changes : The macro parameter The DUMPOPT or DUMPOPX parameter code in the program: on the ABEND or CALLRTM macro list options are added to the dump points to the parameter list. The list is options list, but only for the dump being ABEND 76,DUMP, requested. usually created by a list-form SNAP or SNAPX macro. DUMPOPT=PARMS Note that SUBPLST in the macro PARMS SNAP parameter list overrides SPLS in the SDATA=PCDATA, dump options list, but only for the dump being requested. PDATA=LPA,MF=L ABEND dump 133

162 ABEND dumps Table 27: Customizing SYSABEND dump contents (continued) Example Effect SYSABEND Customization Recovery routines invoked by the : Just before dumping To add program call data and the link Change occurs recovery termination manager: pack area to this SYSABEND dump, What changes : The SETRP macro code in the recovery routine: • FRRs (function recovery routines) for parameter list options are added to the dump options list, but only for the a system component SETRP ,DUMP=YES, dump being requested. • ESTAE/ESTAI recovery routines DUMPOPT=PARMS established by an ESTAE or ESTAEX PARMS SNAP macro or the ESTAI parameter of an SDATA=PCDATA, ATTACH or ATTACHX macro • ARRs (associated recovery routines) PDATA=LPA,MF=L These routines issue SETRP macros. To customize the dump contents, the DUMPOPT or DUMPOPX parameter on the SETRP macro points to a parameter list. The list is usually created by a list- form SNAP or SNAPX macro. Entering CHNGDUMP operator To add program call data and the link Change occurs : Immediately when entered pack area to all SYSABEND dumps until command with SYSABEND parameter changed by CHNGDUMP on a console with master authority. : What changes DEL,SYSABEND, enter: CHNGDUMP options are • For ADD: CHNGDUMP SET,ADD,SYSABEND, added to the IEAABD00 options, SDATA=PCDATA,PDATA=LPA previous CHNGDUMP options, and all macro parameter list options. The To return to the IEAABD00 options, options remain added until a enter: CHNGDUMP DEL,SYSABEND operator command is entered. CHNGDUMP DEL,SYSABEND • CHNGDUMP options For OVER: override all other dump options. • All CHNGDUMP options are For DEL: deleted and the dump options in IEAABD00 are used again. When more than one CHNGDUMP operator command with SYSABEND is entered, the effect is cumulative. installation exit z/OS MVS Installation Exits Change occurs : Just before dumping . Through IEAVTABX See name list. What changes : The routine can add or delete options from the dump options, but only for the current dump. . Change occurs See Through IEAVADFM or IEAVADUS z/OS MVS Installation Exits : During dumping. The routine runs during control block installation exits. IEAVADFM is a list of formatting of a dump with the CB installation routines to be run. IEAVADUS is one installation routine. option. : The routine can add What changes control blocks to the dump. Customizing SYSMDUMP dump contents Table 28 on page 135 contains a summary of how to customize the contents of SYSMDUMP dumps. 134 z/OS: MVS Diagnosis: Tools and Service Aids

163 ABEND dumps Table 28: Customizing SYSMDUMP dump contents Effect SYSMDUMP Customization Example : At system initialization parmlib member Change occurs To add the link pack area to all Replacing IEADMR00 (by using the IEBUPDTE utility). SYSMDUMP dumps, while retaining all : IEADMR00 contains the What changes the IBM-supplied defaults, use IBM-supplied default dump options. IEBUPDTE to change the IEADMR00 Replacing IEADMR00 changes the member to contain: dump options for SYSMDUMP. SDATA=(NUC,SQA,LSQA,SWA,TRT ,RGN, SUM,LPA) . Using a macro parameter list Change occurs : At dump request To add the link pack area to this SYSMDUMP dump, code in the The DUMPOPT or DUMPOPX parameter What changes : The macro parameter program: list options are added to the dump on the ABEND or CALLRTM macro options list, but only for the dump being points to the parameter list. The list is ABEND 76,DUMP, requested. usually created by a list-form SNAP or SNAPX macro. DUMPOPT=PARMS PARMS SNAP PDATA=LPA,MF=L invoked by the To add the link pack area to this : Just before dumping Change occurs Recovery routines recovery termination manager: SYSMDUMP dump, code in the recovery : The SETRP macro What changes routine: • FRRs (function recovery routines) for parameter list options are added to the a system component dump options list, but only for the SETRP ,DUMP=YES, dump being requested. • ESTAE/ESTAI recovery routines DUMPOPT=PARMS established by an ESTAE or ESTAEX PARMS SNAP macro or the ESTAI parameter of an PDATA=LPA,MF=L ATTACH or ATTACHX macro • ARRs (associated recovery routines) These routines issue SETRP macros. To customize the dump contents, the DUMPOPT or DUMPOPX parameter on the SETRP macro points to a parameter list. The list is usually created by a list- form SNAP or SNAPX macro. Entering CHNGDUMP operator To add the link pack area to all Change occurs : Immediately when SYSMDUMP dumps until changed by entered command with SYSMDUMP parameter CHNGDUMP DEL,SYSMDUMP, enter: on a console with master authority. What changes : CHNGDUMP For ADD: CHNGDUMP options are • SET,ADD,SYSMDUMP=(LPA) added to the IEADMR00 options, previous CHNGDUMP options, and To return to the IEADMR00 options, macro parameter list options. The enter: options remain added until a CHNGDUMP DEL,SYSMDUMP CHNGDUMP DEL,SYSMDUMP operator command is entered. • For OVER: CHNGDUMP options override all other dump options. All CHNGDUMP options are For DEL: • deleted and the dump options in IEADMR00 are used again. When more than one CHNGDUMP operator command with SYSMDUMP is entered, the effect is cumulative. ABEND dump 135

164 ABEND dumps Table 28: Customizing SYSMDUMP dump contents (continued) Effect SYSMDUMP Customization Example . : Just before dumping Through IEAVTABX installation exit Change occurs See z/OS MVS Installation Exits name list. : The routine can add or What changes delete options from the dump options, but only for the current dump. Customizing SYSUDUMP dump contents contains a summary of how to customize the contents of SYSUDUMP dumps. Table 29 on page 136 Table 29: Customizing SYSUDUMP dump contents SYSUDUMP Customization Effect Example : At system initialization Change occurs Replacing IEADMP00 parmlib member To add program call data and user subpool storage to all SYSUDUMP (by using the IEBUPDTE utility). What changes : IEADMP00 contains the dumps, while retaining the summary IBM-supplied default dump options. dump, use IEBUPDTE to change the Replacing IEADMP00 changes the IEADMP00 member to contain: dump options for SYSUDUMP. SDATA=(SUM,PCDATA) PDATA=SPLS To add program call data and user Using a macro parameter list . : At dump request Change occurs subpool storage to this SYSUDUMP What changes : The macro parameter The DUMPOPT or DUMPOPX parameter dump, code in the program: list options are added to the dump on the ABEND or CALLRTM macro options list, but only for the dump being points to the parameter list. The list is ABEND 76,DUMP, usually created by a list-form SNAP or requested. SNAPX macro. DUMPOPT=PARMS Note that SUBPLST in the macro PARMS SNAP parameter list overrides SPLS in the SDATA=PCDATA, dump options list, but only for the dump being requested. PDATA=SPLS,MF=L Change occurs : Just before dumping To add program call data and user Recovery routines invoked by the subpool storage to this SYSUDUMP recovery termination manager: What changes : The SETRP macro dump, code in the recovery routine: parameter list options are added to the • FRRs (function recovery routines) for dump options list, but only for the a system component SETRP ,DUMP=YES, dump being requested. • ESTAE/ESTAI recovery routines DUMPOPT=PARMS established by an ESTAE or ESTAEX PARMS SNAP macro or the ESTAI parameter of an SDATA=PCDATA, ATTACH or ATTACHX macro • ARRs (associated recovery routines) PDATA=SPLS,MF=L Theseroutines issue SETRP macros. To customize the dump contents, the DUMPOPT or DUMPOPX parameter on the SETRP macro points to a parameter list. The list is usually created by a list- form SNAP or SNAPX macro. 136 z/OS: MVS Diagnosis: Tools and Service Aids

165 ABEND dumps Table 29: Customizing SYSUDUMP dump contents (continued) Example SYSUDUMP Customization Effect : Immediately when To add program call data and user Entering CHNGDUMP operator Change occurs parameter entered command with SYSUDUMP subpool storage to all SYSUDUMP dumps until changed by CHNGDUMP on a console with master authority. : What changes DEL,SYSUDUMP, enter: For ADD: CHNGDUMP options are • CHNGDUMP SET,ADD,SYSUDUMP, added to the IEADMP00 options, SDATA=PCDATA,PDATA=SPLS previous CHNGDUMP options, and all macro parameter list options. The To return to the IEADMP00 options, options remain added until a enter: CHNGDUMP DEL,SYSUDUMP operator command is entered. CHNGDUMP DEL,SYSUDUMP CHNGDUMP options • For OVER: override all other dump options. All CHNGDUMP options are For DEL: • deleted and the dump options in IEADMP00 are used again. When more than one CHNGDUMP operator command with SYSUDUMP is entered, the effect is cumulative. installation exit Change occurs Through IEAVTABX : Just before dumping . z/OS MVS Installation Exits See name list. What changes : The routine can add or delete options from the dump options, but only for the current dump. Change occurs : During dumping. The Through IEAVADFM or IEAVADUS . z/OS MVS Installation Exits See routine runs during control block installation exits. IEAVADFM is a list of installation routines to be run and formatting of a dump with the CB IEAVADUS is one installation routine. option. What changes : The routine can add control blocks to the dump. Analyzing an ABEND dump To analyze a SYSMDUMP, see Note: A SYSMDUMP ABEND dump is always a synchronous SVC dump. . “Analyzing an SVC dump” on page 36 ABEND dumps written to SYSABEND and SYSUDUMP data sets are useful for analyzing problems in a program running under the operating system. This program can be called any of the following: • Installation-provided program • An application program • A non-authorized program • A problem program • A program in the private area ABEND dumps are written for problems detected in two ways: Software-detected problem , such as: • – A nonzero return code from a called module – A program check, abend code X'0Cx', that a recovery routine changes to another abend code – An erroneous control block queue – Not valid input to a system service ABEND dump 137

166 ABEND dumps • Hardware-detected problem , which is a program check, abend code X'0Cx', that a recovery routine does not change to another abend code Analysis Procedure To analyze a SYSABEND or SYSUDUMP, take the following steps: 1. Collect and analyze logrec error records. Check all logrec error records related to the abended task. Determine if any records show an earlier system problem; if so, continue diagnosis with that problem. Because of recovery and percolation, a SYSABEND or SYSUDUMP dump can be the end result of an earlier system problem. 2. Use time stamps to select messages related to Collect and analyze messages about the problem. the problem: • The job log • The system log (SYSLOG) or operations log (OPERLOG) Check the messages for earlier dumps written while the abended task was running. Determine if these earlier dumps indicate an earlier system problem; if so, continue diagnosis with that problem. , as described in the following steps. 3. Analyze the dump After the problem and before the dump, recovery tried to reconstruct erroneous control block Note: chains before ending the task. If the problem proves to be in a system component, a SYSABEND or SYSUDUMP dump cannot be used to isolate it because of the recovery actions; these dumps are useful only for problems in the private area. 4. Obtain the abend code, reason code, job name, step name, and program status word (PSW) from the dump title at the beginning of the dump. If the completion code is USER=dddd, an application program issued an ABEND macro to request the dump and to specify the completion code. If the completion code is SYSTEM=hhh, a system component ended the application program and a recovery routine in the program requested the dump. The application program probably caused the abend. Reference See z/OS MVS System Codes for an explanation of the abend code. Analyze the RTM2WA 5. , as follows: the task control block (TCB) for the failing task. This TCB has the abend • In the TCB summary, find field. In the TCB summary, obtain the address of the code as its completion code in the CMP recovery termination manager 2 (RTM2) work area (RTM2WA) for the TCB. • In the RTM2WA summary, obtain the registers at the time of the error and the name and address of the abending program. • If the RTM2WA summary does not give the abending program name and address, probably an SVC instruction abnormally ended. • If the RTM2WA summary gives a previous RTM2WA for recursion, the abend for this dump occurred while an ESTAE or other recovery routine was processing another, original abend. In recursive abends, more than one RTM2WA may be created. Use the previous RTM2WA to diagnose the original problem. z/OS MVS Data Areas in the z/OS For information about the RTM2WA, SDWA, and TCB data areas, see . Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) Analyze the dump for the program name . Obtain the program name from the RTM2WA summary. If 6. the name field is zero, do the following: • Find the control blocks for the task being dumped. field in an SVRB, find the following SVC interruption • The last request blocks are SVRBs. In the WLIC codes: 138 z/OS: MVS Diagnosis: Tools and Service Aids

167 ABEND dumps – X'33' for a SNAP SVC interruption – X'0C' for a SYNCH SVC interruption • The program request block (PRB) for the abending program immediately precedes these SVRBs. first • When the dump contains more than one CDE, determine the and last address for each CDE. address. Add the length to the entry point address to obtain the The entry point address is the first last address. Compare these addresses to the address in the right half of the PSW in the dump first and last addresses of the correct CDE. header; the PSW address falls between the Note that the leftmost digit in the PSW address denotes addressing mode and is not part of the address. gives the program name. • In that CDE, the NAME field 7. Locate the failing program module in the hexadecimal dump. 8. Find the instruction that caused the abend. The PSW in the dump header is from the time of the error. Obtain the address in the right half of the PSW. The leftmost digit denotes addressing mode and is not part of the address. of the dump header from the PSW For most problems, subtract the instruction length in the ILC field address to obtain the address of the failing instruction. Do not subtract the instruction length in the following cases; the failing instruction is at the PSW address. • Page translation exception. • Segment translation exception. • Vector operation interruption. by the old PSW is • Other interruptions for which the processing of the instruction identified nullified. z/Architecture Principles of Operation for the interruption action. See • If access registers were being used at the time of the error, so that the access list entry token (ALET) may be incorrect. find Subtract the failing instruction address from the failing module address. Use this offset to the matching instruction in the abending program's assembler listing. For an abend from an SVC or system I/O routine, the last program instruction. find 9. If the abend occurred in a system component running on behalf of the dumped program, find the last instruction that ran in the program, as follows: • For an abend from an SVC routine, look in the last PRB in the control blocks for the task being contains the address of the instruction field dumped. The right half of the PSW in the RTPSW1 following the SVC instruction. • For an abend from a system I/O routine, look in the save area trace. This trace gives the address of the I/O routine branched to. The return address in that save area is the last instruction that ran in the failing program. For an abend from an SVC or system I/O routine, determine the cause of the abend , using the 10. following: • For an abend from an SVC, look in the system trace table for SVC entries matching the SVRBs in the control blocks for the task being dumped. • For an abend from an I/O routine, look in the system trace table for I/O entries issued from addresses in the failing program. The addresses are in the PSW ADDRESS column. If SVC entries match the dumped blocks or the I/O entries were issued from the failing program, the system trace table was not overlaid between the problem and the dump. In this case, start with the most recent entries at the end of the trace. Back up to the last SVC entry with the TCB address of the abending task. Go toward the end of the trace, looking for indications of the problem. See Chapter 8, “System trace,” on page 153 for more information. 11. For a program interrupt, determine the cause of the abend , using the registers at the time of the error in the RTM2WA and in the SVRB following the PRB for the abending program. ABEND dump 139

168 ABEND dumps Also, look at the formatted save area trace for input to the failing module. , do the following to analyze the dump. 12. For an abend in a cross memory environment Many services are requested by use of the Program Call (PC) instruction, rather than by SVCs or SRBs. in the RB contains the instruction address When an abend is issued by the PC routine, the OPSW field of the PC routine that issued the abend. The SVRB contains the registers of the PC routine. Do the following to look for the registers and PSW at the time the PC instruction was issued: find the registers in the linkage stack. Any entries on the linkage stack are before • For a stacking PC, the RBs in the dump. the registers in the PCLINK stack. Any entries on the PCLINK stack are after the • For a basic PC, find RBs in the dump. For a stacking PC, find the linkage stack entry that corresponds to the RB/XSB for the program. The LSED field of the linkage stack entry and the XSBLSCP field in the corresponding XSB have the same value. From the linkage stack entry, obtain the registers and the PSW at the time the stacking PC was issued. The address in the PSW points to the instruction following the PC instruction in the abending program. For a basic PC, determine the caller from the PCLINK stack. To locate the PCLINK stack element (STKE): • The STKEs appear in the dump following all of the RBs. If the dump contains more than one STKE, the pointer to the STKE for the PC involved in the problem is in the XSBSTKE field of the XSB associated with the RB for the abending program. • The RBXSB field in the RB points to the XSB. field in the XSB points to the current STKE. • The XSBSEL field contains the return address of the caller of the PCLINK service. In the STKE, the STKERET For information about the STKE and XSB data areas, see z/OS MVS Data Areas in the z/OS Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) . 140 z/OS: MVS Diagnosis: Tools and Service Aids

169 SNAP dumps Chapter 6. SNAP dump This topic (SNAP Dump) contains programming interface information. A SNAP dump shows virtual storage areas that a program, while running, requests the system to dump. A SNAP dump, therefore, is written while a program runs, rather than during abnormal end. The program field to as much as all of the storage assigned to the current can ask for a dump of as little as a one byte job step. The program can also ask for some system data in the dump. A SNAP dump is especially useful when testing a program. A program can dump one or more fields repeatedly to let the programmer check intermediate steps in calculations. For example, if a program being developed produces incorrect results, requests for SNAP dumps can be added to the program to time that incorrect storage is encountered should narrow down the dump individual variables. The first section of code causing the error. Obtaining SNAP dumps Provide a data set to receive the dump, then arrange to print the dump. The SNAP or SNAPX macros in a program can place their dumps in the same or different data sets; the DCB parameter in each SNAP or SNAPX macro indicates the data set. When setting up a dump data set, determine if the data set will contain privileged data. If so, protect it with passwords or other security measures to limit access to it. You can use extended format sequential data sets as dump data sets for SNAP dumps. Extended format sequential data sets have the following features: • Have a greater capacity than sequential data sets • Support striping • Support compression In z/OS V1R7 and later releases, sequential data sets that use Using DSNTYPE=LARGE: DSNTYPE=LARGE are allowable for ABEND dumps when the systems that are involved in processing a DSNTYPE=LARGE data set are migrated to V1R7 prior to their use. If analysis using an earlier release is required, use z/OS V1R7 to transcribe the dump into a data set supported by the earlier release. In z/OS V1R11 and later releases, extended format Placing dump data sets in cylinder-managed space: sequential data sets can be placed in either track-managed space or cylinder-managed space. SNAP dump fully supports placement of dump data sets in cylinder-managed space. Obtain a SNAP dump by taking the following steps: 1. Code a DD statement in the JCL for the job step that runs the problem program to be dumped with a ddname other than SYSUDUMP, SYSABEND, SYSMDUMP, or another restricted ddname. The statement can specify that the output of the SNAP dump should be written to one of the following: • Direct access. ® , because the • Printer. Note that a printer is not recommended, except when running under z/VM printer cannot be used for anything else while the job step is running, whether a dump is written or not. Under z/VM you can use a virtual printer. This allows you to see or print the partial output on a real printer while the program is running while only using a small amount of system resources. • SYSOUT. SNAP dumps usually use SYSOUT. • Tape. © Copyright IBM Corp. 1988, 2017 141

170 SNAP dumps Example: SYSOUT DD Statement for SNAP Dump: The following example places a SNAP dump in sysout output class A. In the example, output class A is a print class. When the system prints the output class, the system will print any dumps written to the class. //SNAP1 DD SYSOUT=A Example: Tape DD Statement for SNAP Dump: The following example places a SNAP dump on a tape. In the example, TAPE is a group name established by the installation. //SNAP2 DD DSN=DUMPDS,UNIT=TAPE,DISP=(,KEEP,KEEP) The system keeps the data set when the job step ends, whether normally or abnormally. In either case, SNAP dumps are taken throughout processing, regardless of the way the step ends. The following example places a SNAP dump Example: Direct Access DD Statement for SNAP Dump: on direct access, for example, the 3350 direct access storage. //SNAP3 DD DSN=SNAPSHOT,UNIT=3350,DISP=(,KEEP,KEEP), // VOLUME=SER=12345,SPACE=(1680,(160,80)) The system writes the dump in a sequential data set using the basic sequential access method (BSAM). The dump data set can be on any device supported by BSAM. 2. In the problem program: a. Specify a data control block (DCB) for the data set to receive the dump. For a standard dump, which has 120 characters per line, the DCB must specify: • BLKSIZE=882 or 1632 • DSORG=PS • LRECL=125 • MACRF=(W) • RECFM=VBA For a high-density dump, which has 204 characters per line and will be printed on an APA 3800 printer, the DCB must specify: • BLKSIZE=1470 or 2724 • DSORG=PS • LRECL=209 • MACRF=(W) • RECFM=VBA b. Code an OPEN macro to open the DCB. Before you issue the SNAP or SNAPX macro, you must open the DCB that you designate on the DCB parameter, and ensure that the DCB is not closed until the macro returns control. To open the DCB, issue the DCB macro with the following parameters, and issue an OPEN macro for the data set: DSORG=PS,RECFM=VBA,MACRF=(W),BLKSIZE=nnn,LRECL=xxx, and DDNAME=any name but SYSABEND, SYSMDUMP or SYSUDUMP If the system loader processes the program, the program must close the DCB after the last SNAP or SNAPX macro is issued. c. Code a SNAP or SNAPX assembler macro to request the dump. Example: Coding the SNAP Macro: In the following example, the SNAP macro requests a dump of a storage area, with the DCB address in register 3, a dump identifier of 245, the storage area's starting address in register 4, and the ending address in register 5: SNAP DCB=(3),ID=245,STORAGE=((4),(5)) 142 z/OS: MVS Diagnosis: Tools and Service Aids

171 SNAP dumps Repeat this macro in the program as many times as wanted, changing the dump identifier for a unique dump. The system writes all the dumps that specify the same DCB to the same data set. The following example shows a problem Example: Two SNAP Dump Requests in a Program: program that requests two SNAP dumps. Both SNAP macros in the example specify the same data control block (DCB) to place both dumps in the same data set. Each dump has a different identifier: first dump, PIC4 for the second. Both dumps show the same areas: the control blocks. PIC3 for the Thus, the programmer can see these areas at two points in the program's processing. SNAPDCB DCB BLKSIZE=882,DSORG=PS,LRECL=125,MACRF=(W),RECFM=VBA . . . OPEN SNAPDCB,OUTPUT LA 3,SNAPDCB SNAP DCB=(3),ID=PIC3,SDATA=CB . . . SNAP DCB=(3),ID=PIC4,SDATA=CB CLOSE SNAPDCB d. Close the DCB with a CLOSE assembler macro. For more information, see the following references: • See z/OS DFSMS Macro Instructions for Data Sets for coding the DCB, OPEN, and CLOSE macros. z/OS MVS Programming: Assembler Services Reference ABE-HSP and z/OS MVS Programming: • See for required parameters on the DCB macro and for coding the Assembler Services Reference IAR-XCT SNAP or SNAPX macro. 3. Print or view the data set. The output of the SNAP or SNAPX macro is a standard EBCDIC data set with ANSII characters in column one. This data set can be edited. The dumps are formatted as they are created. Printing depends on the location of the dump when it is created: Location Printing SYSOUT The system prints the dump(s) when printing the output class. On a tape or direct access data set Print the dump(s) in a separate job or job step. Printer The system prints the dump(s) as they are created. To view SNAP dumps at a terminal, browse the data set containing the dump. Example: Printing a SNAP Dump The following JCL prints a SNAP dump. Because the system formats the dump when creating it, the IEBPTPCH utility program can print the dump. The dump is in the SNAPSHOT data set. . . . //PRINT EXEC PGM=IEBPTPCH //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=SNAPSHOT,UNIT=3350,DISP=(OLD,DELETE), // VOLUME=SER=12345 //SYSUT2 DD SYSOUT=A //SYSIN DD * PRINT TYPORG=PS /* SNAP dump 143

172 SNAP dumps Customizing SNAP dump contents You can customize the contents of SNAP dumps in one of the following ways: • Through installation exits. • Through parameters on the SDUMP or SDUMPX macro. Customizing through installation exits An installation can customize the contents of SNAP dumps through the IEAVADFM or IEAVADUS installation exits. IEAVADFM is a list of installation routines to be run and IEAVADUS is one installation routine. The installation exit routine runs during control block formatting of a dump when the CB option is on the SNAP or SNAPX macro. The routine can format control blocks and send them to the data specified z/OS MVS Installation Exits set for the dump. See for more information. Customizing through the SNAP or SNAPX macro The parameters on the SNAP or SNAPX macro determine the dump contents. The macro can specify any or all of the areas listed in Table 30 on page 144 . Note that the parameters cannot request that a Hiperspace be included in the dump. To include Hiperspace data in a SNAP dump, read the data from the Hiperspace into address space storage that is for more information about being dumped. See z/OS MVS Programming: Extended Addressability Guide manipulating data in Hiperspace storage. Table 30: Customizing dumps using through the SNAP or SNAPX macro Dump Contents Parameter ALLPA All link pack areas, as follows: • Job pack area (JPA) • Link pack area (LPA) active for the task being dumped • Related supervisor call (SVC) modules The entire virtual control program nucleus ALLVNUC CB Control blocks for the task being dumped DM Data management control blocks for the task being dumped: • Data control block (DCB) • Data extent block (DEB) • Input/output block (IOB) Recovery termination manager (RTM) control blocks for the task being dumped: ERR • Extended error descriptor (EED) for RTM • Registers from the system diagnostic work area (SDWA) • RTM2 work area (RTM2WA) • Set task asynchronous exit (STAE) control block (SCB) Input/output supervisor (IOS) control blocks for the task being dumped: IO • Execute channel program debug area (EXCPD) • Unit control block (UCB) Job pack area (JPA): module names and contents JPA Link pack area (LPA) active for the task being dumped: module names and contents LPA 144 z/OS: MVS Diagnosis: Tools and Service Aids

173 SNAP dumps Table 30: Customizing dumps using through the SNAP or SNAPX macro (continued) Parameter Dump Contents Local system queue area (LSQA) allocated for the address space (that is, subpools 203 - 205, 213 - 215, LSQA 223 - 225, 229, 230, 233 - 235, 249, 253 - 255) Read/write portion of the control program nucleus (that is, only non-page-protected areas of the DAT-on NUC nucleus), including: • Communication vector table (CVT) • Local system queue area (LSQA) Prefixed save area (PSA) • • System queue area (SQA) PCDATA Program call information for the task Program status word (PSW) when the dump is requested PSW Q Global resource serialization control blocks for the task being dumped: • Global queue control blocks • Local queue control blocks REGS Registers when the dump is requested: • Access registers • Floating-point registers • General registers • Vector registers, vector status register, and vector mask register for a task that uses the Vector Facility Save area linkage information, program call linkage information, and backward trace of save areas SA or SAH Storage allocated in user subpools 0 - 127, 129 -132, 244, 251, and 252 for the task being dumped SPLS SQA System queue area (SQA) allocated (that is, subpools 226, 239, 245, 247, 248) SUBTASKS Storage for the task being dumped and program data for all of its subtasks Scheduler work area (SWA) (that is, subpools 236 and 237) SWA TRT System trace and generalized trace facility (GTF) trace, as available One or more data spaces identified on the SNAPX macro — One or more storage areas, identified by beginning and ending addresses on the SNAP or SNAPX macro — — One or more subpools, identified by subpool number on the SNAP or SNAPX macro SNAP dump 145

174 SNAP dumps 146 z/OS: MVS Diagnosis: Tools and Service Aids

175 Dump grab bag Chapter 7. The dump grab bag A dump contains information about an error that can help you identify a problem type. Using interactive problem control system (IPCS), the information about the error is formatted to provide a quick and effective method of retrieval. The hints that follow apply to processing all kinds of dumps: SVC dumps, stand-alone dumps, and SYSMDUMP dumps. This section covers the following topics: • “Problem data for storage overlays” on page 147 • “Problem data from the linkage stack” on page 148 • “Problem data for modules” on page 149 • “Problem data from recovery work areas” on page 150 • “Problem data for ACR” on page 150 . • “Problem data for machine checks” on page 151 Problem data for storage overlays Always be aware of the possibility of a storage overlay when analyzing a dump. System problems in MVS are often caused by storage overlays that destroy data, control blocks, or executable code. The results of such an overlay vary. For example: • The system detects an error and issues an abend code, yet the error can be isolated to an address space. Isolating the error is important in discovering whether the overlay is in global or local storage. specification exception • Referencing the data or instructions can cause an immediate error such as a (abend X'0C4') or operation code exception (abend X'0C1'). • The bad data is used to reference a second location, which then causes another error. When you recognize that the contents of a storage location are not valid and subsequently recognize the bit pattern as a certain control block or piece of data, you generally can identify the erroneous process/ component and start a detailed analysis. Analyzing the damaged area Once you determine that storage is bad or overlaid, try to identify the culprit. First, determine the extent of the bad data. Look for EBCDIC data or module addresses in storage to identify the owner. Any type of pattern in storage can indicate an error and identify the program that is using the damaged storage. Look at the data on both sides of the obviously bad areas. See if the length of the bad area is familiar; that is, can you relate the length to a known control block length, data size, MVC length? If so, check various offsets to determine their contents and, if you recognize some, try to determine the exact control block. In Figure 69 on page 148 , for example, storage from CSA shows a pattern of allocated blocks. © Copyright IBM Corp. 1988, 2017 147

176 Dump grab bag 00CFD000 00000000 00000000 E5C7E3E3 080000F1 | ...VGTT... 00CFD010 00000020 00000000 0000E3D8 00000000 | ...TQ... 00CFD020 00BE3D30 00000000 E5C7E3E3 080000F1 | ...VGTT... 00CFD030 00000020 00CFD008 0000E260 00000000 | ...}...S-... 00CFD040 00CA6A60 00000000 17000080 E5E2C90F | ...-...VSI 00CFD050 00CFE018 00CFD0B8 C8E2D4D3 4BD4C3C4 | ..\...}.HSML.MC 00CFD060 E24BC4C1 E3C14040 40404040 40404040 | S.DATA 00CFD070 TO 00CFD07F (X'00000010' bytes)--All bytes contain X'40', C' ' 00CFD080 40404040 000E0042 00000000 00000000 | ... 00CFD090 00000000 00000000 00000000 17CA0000 | ... 00CFD0A0 1FFE0000 C2C3E3F3 D3C90001 00000000 | ...BCT3LI... 00CFD0B0 00000000 40080000 E2E8E2F1 4BE4C3C1 | ... ...SYS1.UC 00CFD0C0 E34BC5D5 E5F2F600 00000168 00CFD0C8 | T.ENV26...} 00CFD0D0 F1000000 00CFD230 00CFD22C 13C9C4C1 | 1...K...K..ID 00CFD0E0 C8C5C240 00100150 00CFD244 00000160 | HEB ...&;.K... Figure 69: Example: Recognizing a pattern Even if you do not recognize the pattern, take one more step. Can you determine the offset from some base that would have to be used in order to create the bit pattern? If so, the fact that there is a certain bit pattern at a certain offset can be helpful. For example, a BALR register value (X'40D21C58') at an offset X'C' can indicate that a program is using in the same this storage for a register save area (perhaps caused by a bad register 13). Another field overlaid area might trigger recognition. Repetition of a pattern can indicate a bad process. If you can recognize the bad data you might be able to relate that data to the component or module that is causing the error. This provides a starting point for further analysis. Common bad addresses The following are commonly known as bad addresses. If you recognize these in the code you are identification on these areas: diagnosing, focus your problem source • X'000C0000', X'040C0000', or X'070C0000', and one of these addresses plus some offset. These are generally the result of some code using 0 as the base register for a control block and subsequently half of a PSW in the PSA. first loading a pointer from 0 plus an offset, thereby picking up the Look for storage overlays in code pointed to by an old PSW. These overlays result when 0 plus an offset cause the second half of a PSW to be used as a pointer. in the normal functional recovery • X'C00', X'D00', X'D20', X'D28', X'D40', and other pointers to fields routine (FRR) stack. Routines often lose the contents of a register during a SETFRR macro expansion and incorrectly use the address of the 24-byte work area returned from the expansion. • Register save areas. Storage might be overlaid by code doing a store multiple (STM) instruction with a bad register save area address. In this case, the registers saved are often useful in determining the component or module at fault. Problem data from the linkage stack The linkage stack is used to identify a program that requested a system service, if the service was entered by a branch instruction. identifier (ASID) X'1A', For example, to see the linkage stack entry that is associated with address space use the IPCS subcommand: SUMMARY FORMAT ASID(X'1a') ) The resulting dump for the linkage stack associated with the address space (see Figure 70 on page 149 shows one entry, as follows: 148 z/OS: MVS Diagnosis: Tools and Service Aids

177 Dump grab bag BAKR STATE ENTRY A Branch and Stack (BAKR) instruction caused this entry. SASN..1A and PASN..1A At the time of the BAKR, the program was not in cross memory mode. When the branching program is not in cross memory mode, secondary address space number (SASN) and primary address space (PASN) are identical. If the program had been in cross memory mode, SASN and PASN would not have been identical. PSW..070C0000 80FD7618 The return address of the branch caused by the BAKR is FD7618. This address is in the right half of the program status word (PSW). LINKAGE STACK ENTRY 01 LSED: 7F7490B0 LSE: 7F749010 GENERAL PURPOSE REGISTER VALUES 00-03... 7FFEB410 04504DF4 04532000 04541FFF 04-07... 04504CE4 81150380 00000028 04504B50 08-11... 04503A75 04502A76 04501A77 04504630 12-15... 84500A78 00000000 80FD7618 8450FAF8 ACCESS REGISTER VALUES 00-03... 00000000 00000000 00000000 00000000 04-07... 00000000 00000000 00000000 00000000 08-11... 00000000 00000000 00000000 00000000 12-15... 00000000 00000000 00000000 00000000 1S/A ON AQFT PER SYSTEM HUNG 22:30 08/30/88 24 09:42:48 10/14/88 EAX..0000 PSW..070C0000 80FD7618 PKM..8000 SASN..001A PASN..001A TARG... 8450FB12 MSTA... 0451E300 00000000 TYPE... 84 BAKR STATE ENTRY RFS... 0F38 NES... 0000 Figure 70: Example: Viewing a linkage stack entry Many system services are called through branches. For branch entry services, use register 14 to identify z/OS MVS Programming: Extended the calling program. Look for the problem in the calling program. See for more information about the linkage stack. Addressability Guide Problem data for modules For a module, the system saves and restores status from different locations, depending on the processing mode of the module when it lost control. Use the IPCS STATUS CPU subcommand to find out the mode of the module that had been currently running for each processor. Use the saved status as problem data for diagnosis. Processing modes The processing modes follow. Code always runs in one or more of these modes. For example, code running in task or service request block (SRB) mode can also be either locally locked or physically disabled. • Task mode is the most common processing mode. All programs given control by ATTACH, ATTACHX, LINK, LINKX, XCTL, and XCTLX macros run in task mode. SRB mode is code that runs from one of the service request block (SRB) queues. • • Physically disabled mode is reserved for high-priority system code that manipulates critical system queues and data areas. This mode is usually combined with supervisor state and key 0 in the PSW. The combination ensures that the routine can complete its function before losing control. The mode is restricted to just a few modules in the system, for example, interrupt handlers, the dispatcher, and programs that are holding a global spin lock. • Locked mode is for code that runs in the system while holding a lock. The dump grab bag 149

178 Dump grab bag • defined by: Cross memory mode . Cross memory mode is : Address space identifier – Primary address space (ASID) in control register 3 : ASID in control register 4 Secondary address space – – : Address of the address space control block (ASCB) in the PSAAOLD field Home address space (bit 16 of the PSW): Indicator of current addressability: – PSW S-bit - S-bit=0 - To the primary address space - S-bit=1 - To the secondary address space When primary addressability and secondary addressability are to the home address space and the S- bit=0, the work is not in cross memory mode. Access register (AR) mode , where a program can use the full set of assembler instructions (except • MVCP and MVCS) to manipulate data in another address space or in a data space. Unlike cross memory, access registers allow full access to data in many address spaces or data spaces. Problem data from recovery work areas You can use the recovery work area (RWA) to find the failing module. In most cases, you would use the find the failing module instead of the RWA. Use the RWA in the following TCB and RB structure to situations: • When an SVC dump is requested in a SLIP trap. In this dump, the current status at the time of the problem is in the recovery save areas or in the SDUMP SQA 4K buffer. See “Reading the SDUMPX 4K for more information. SQA buffer” on page 47 • When the problem is in the recovery process itself. • When a stand-alone dump is written because of a suspected loop. The recovery work areas are: • Logrec records • Logrec buffer in the system: obtained by a VERBEXIT LOGDATA subcommand • System diagnostic work area (SDWA), including the variable recording area (VRA) formatted in logrec records and in the logrec buffer. • Functional recovery routine (FRR) stacks: described in the next topic. • Recovery termination manager (RTM) data areas, including the RTM2 work area (RTM2WA): formatted by a SUMMARY FORMAT subcommand or obtained in a formatted ABEND or SNAP dump by the ERR option. The RTM2WA and SDWA blocks contain registers, PSW, and other time of problem information. Use these blocks in diagnosis when they are associated with a task control block (TCB). for more information. For information See Chapter 15, “Recording logrec error records,” on page 509 z/OS MVS Data Areas in the z/OS Internet library (www.ibm.com/servers/ about the control blocks, see resourcelink/svc00100.nsf/pages/zosInternetLibrary) . For details about the IPCS commands, see z/OS MVS IPCS Commands . Problem data for ACR When alternate CPU recovery (ACR) is active at the time of the dump, the search argument in IPCS STATUS WORKSHEET output contains the symptom: FLDS/CSDACR 150 z/OS: MVS Diagnosis: Tools and Service Aids

179 Dump grab bag Pre-Processing phase data If ACR is active, problem data for the pre-processing phase are: field of the common system data (CSD) indicates which processor failed and which is • The CSDCPUAL still running the • A system trace table entry with ACR in the Ident column indicates that ACR began and identifies failing processor • Use the CSD online mask to determine which CPU's LCCA to examine. Use the IPCS subcommand CBFORMAT to examine the failing CPU's LCCA. • The WSACACR in the CPU work save area vector table (WSAVTC) for both processors' logical configuration communication areas (LCCA) points to a copy of the PSAs and FRR stacks for both processors. • The LCCADCPU in both processors points to the LCCA of the failing processor and the LCCARCPU points to the LCCA of the running processor Note that a dump shows the PSA of the failed processor when the running processor initiated ACR. The normal FRR stack, pointers to other FRR stacks, locks, PSA super bits, and other data reflect the processor at the time of the failure. Post-Processing phase data ACR issues message IEA858E when it completes and resets the CSDACR flag to X'00'. Data obtained by IPCS Use the following IPCS subcommand to see all the LCCAs and the CSD: STATUS CPU DATA WORKSHEET z/OS MVS Data Areas in the z/OS Internet library For more information about control blocks, see (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) . For information about the z/OS MVS IPCS Commands . IPCS commands, see Problem data for machine checks The hardware uses a machine check interruption to tell the control program that it has detected a hardware malfunction. Machine checks vary considerably in their impact on software processing: Soft errors • : Some machine checks notify software that the processor detected and corrected a hardware problem that required no software recovery action. • Hard errors : Other hardware problems detected by a processor require software-initiated action for damage repair. Hard errors also require software recovery to verify the integrity of the process that experienced the failure. field describes the error causing the The machine check interrupt code (MCIC) in the PSA FLCMCIC interrupt. An MCIC can have more than one bit on to indicate more than one failing condition. For a machine check, the system writes a logrec error record. The error record contains the MCIC, except when: field LRBMTERM of the logrec buffer (LRB) is ON to indicate that the machine • The LRBMTCKS bit in check old PSW and the MCIC are both zero. • The LRBMTINV bit in field LRBMTERM is ON to indicate that the machine check old PSW is nonzero but the MCIC is zero. Hard errors cause FRR and ESTAE processing. z/Architecture Principles of Operation for a complete description of the MCIC. See The dump grab bag 151

180 Dump grab bag 152 z/OS: MVS Diagnosis: Tools and Service Aids

181 System trace Chapter 8. System trace System trace provides an ongoing record of hardware events and software events that occurs during system initialization and operation. The system activates system tracing at initialization, which runs continuously, unless your installation has changed the IBM-supplied system tracing. After system initialization, you can use the TRACE operator command on a console with master authority to customize system tracing. System trace writes trace data in system trace tables in the trace address space. System trace maintains a trace table for each processor. Because system trace usually runs all the time, it is useful for problem determination. While system trace and the generalized trace facility (GTF) lists many of the same system events, system trace also lists events occurring during system initialization, before GTF tracing can be started. System trace also traces branches and cross-memory instructions, which GTF cannot do. The following topics explain system trace in detail: • “Customizing system tracing” on page 153 • “Receiving system trace data in a dump” on page 154 • “Formatting system trace data in a dump” on page 155 • “Reading system trace output” on page 155 . Customizing system tracing The system starts system tracing during system initialization and the trace runs continually. There are, however, a few things you can do to alter system tracing: • “Increasing the size of the system trace table” on page 153 . . • “Tracing branch instructions” on page 154 Increasing the size of the system trace table System trace tables reside in fixed storage on each processor. The default trace table size is 1 MB per processor, but you can change it using the TRACE ST command. You might, however, want to increase the size of the system trace table from the default 1 MB when: • You find that the system trace does not contain tracing from a long enough time period. • You want to trace branch instructions (using the BR=ON option on the TRACE ST command when you start tracing). Do the following to increase the size of the trace table: • Enter the TRACE ST command to change the size of the system trace table. For example, to increase the size of the trace table from the default 1 megabyte per processor to 2 megabytes per processor: TRACE ST,2M • Enter the TRACE ST command with the BUFSIZE (or BUFSIZ) parameter to change the total size of the system trace table allocated. For example, in a system that has 10 processors, to restart system tracing and increase the size of the trace table from the default of 10 megabytes (1 megabytes per processor) to 20 megabytes (2 megabytes per processor): TRACE ST,BUFSIZ=20M © Copyright IBM Corp. 1988, 2017 153

182 System trace Remember: Choose a reasonable value for the system trace storage after considering the available central storage and the actual storage required for system trace. Increasing the system trace storage to a large value amount may cause shortage of pageable storage in the system. Tracing branch instructions System tracing allows you the option of tracing branch instructions, such as BALR, BASR, BASSM and BAKR, along with other system events. The mode tracing option is separate from branch tracing. Branch tracing ON can affect your system performance and use very large amounts of Attention: storage. Do not use branch tracing as the default for system tracing on your system. Only use it for short periods of time to solve a specific problem. The default system tracing does not include branch instructions. IBM provides two health checks, SYSTRACE_BRANCH and SYSTRACE_MODE, to help identify when branch tracing may be affecting your system performance. For example, if branch tracing has been set on for a long time, you will receive message IEAH801E. For more information, see System trace checks (IBMSYSTRACE) . For information about in IBM Health Checker for z/OS User's Guide z/OS MVS System Messages, Vol 6 (GOS-IEA) related messages, see . When you want to trace branch instructions such as BALR, BASR, BASSM and BAKR, do the following: • Turn on system tracing with branch tracing using the TRACE command from a console with master authority: TRACE ST,BR=ON significantly increase the number of trace entries being Because tracing branch instructions tends to generated, you can increase the size of the trace tables when you turn tracing on. – To increase the size of the trace tables for each processor from the default 1 MB to 2 MB, issue: TRACE ST,2M,BR=ON – To increase the size of total storage for trace buffers (that is, the sum of the storage set aside for trace table entries on all the installed processors) to 2 megabytes: TRACE ST,BUFSIZ=2M,BR=ON For more information, see the following documentation: z/Architecture Principles of Operation describes the branch instruction trace entries and the mode trace • entries that MVS combines with them (and are generated by the hardware). MVS enables or disables the production of these entries by manipulating control register bits. The trace table entries that are not 'branch (or mode)' entries that are generated by MVS software through the TRACE or TRACG instructions. See the Tracing topic for information. • For a description of the TTE from mapping macro IHATTE, see z/OS MVS Data Areas in the z/OS Internet . library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) Receiving system trace data in a dump System trace writes trace data in system trace tables in the trace address space. System trace maintains a trace table for each processor. Obtain the trace data in a dump that included option SDATA=TRT. Table 31 on page 155 shows the dumps that have TRT in their default options and how to request trace data for dumps that do not include the data by default. System trace data that are requested by RTM and ABDUMPs will only receive the most current 64K of data for each CPU when the number of concurrent snapshots could affect system availability. This is referred to as a mini-trace table snapshot. For more information about working with system trace tables, see the z/OS MVS IPCS Commands . SYSTRACE section in 154 z/OS: MVS Diagnosis: Tools and Service Aids

183 System trace Table 31: Dumps that have TRT in their default options Dump How to obtain trace data Default ABEND dump to SYSABEND ABEND dump to SYSMDUMP Default Default ABEND dump to SYSUDUMP SNAP dump Request SDATA=TRT Default Stand-alone dump SVC dump for SDUMP or SDUMPX macro Default SVC dump for DUMP operator command Default Default SVC dump for SLIP operator command with ACTION=SVCD, ACTION=STDUMP, ACTION=SYNCSVCD, or ACTION=TRDUMP Request SDATA=TRT Any dump customized to exclude trace data Formatting system trace data in a dump • For formatted dumps, system trace formats the system trace data and the system prints it directly. • For unformatted dumps, use the IPCS SYSTRACE subcommand to format and print or view the trace data in the dump. Reading system trace output The following topics describe system trace table entries (TTE) as they appear in a dump formatted with the IPCS SYSTRACE subcommand. • “Example of a system trace in a dump” on page 155 identifiers” on page 156 shows a table of the system trace identifiers • “Summary of system trace entry find for each system trace entry in a dump and shows where you can the format of the entry in this section. If you are looking for a particular entry start with this table, because many of the entries are similar and are grouped together. • “ACR trace entries” on page 158 shows the format for each through “USRn trace entries” on page 203 type of trace entry. For the detailed format of TTEs, see z/OS MVS Data Areas in the z/OS Internet library . (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) Example of a system trace in a dump shows system trace entries. IPCS formatted the entries from an example SVC Figure 71 on page 156 dump. Note that system trace data in an ABEND dump has the same format. The subcommand issued from the IPCS Subcommand Entry panel was: SYSTRACE TIME(LOCAL) The oldest trace entries appear first in the trace; the newest entries are at the end. An asterisk (*) before identifier indicates an unusual condition; see the format of the entry for an explanation. an System trace 155

184 System trace --------------------------------------------------- System Trace Table ---------------------------------------------------------- -- ------------------ -- -- ------------------ -- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Local-------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE Date-02/19/2016 001C-000A 006D9E88 SSCH 03B92 00 03 237DC020 02380448 53C2A041 6D83A8E8 15:54:49.794644583 0048 3B4D 001C-000A 006D9E88 SSCH 03B4D 00 03 02475020 0237DD90 53C2A001 6D83A868 15:54:49.986753500 0046 001C-000A 006D9E88 SSCH 03A3D 00 03 03A239B0 02374EE0 53C2A001 6D83AD68 15:54:50.010469553 0030 001C-000A 20D8B900 SRB 00000000_016206A8 0000000A 02069F40 02069F6C 00 000A 000A 15:54:50.012521911 0030 07040000 80000000 006D9E88 20 001C-000A 20D8B900 PC ... 0 07464E4A 00318 Resume SRB 001C-000A 20D8B900 SSRV 119 8745F3C8 207DD318 8005216B 20792828 Resume 15:54:50.012538814 0030 00000000 001C-000A 20D8B900 PR ... 0 07464E4A 01408F44 000A 001C-000A 006D9E88 SSCH 03A3D 00 03 02411568 02374EE0 53C2A001 6D83AC68 15:54:50.013370673 0030 001C-000A 006D9E88 SSCH 03AAE 00 03 031A38B0 02378AA8 53C2A001 6D83A7E8 15:54:50.014232347 0030 3A3D 001C-000A 006D9E88 SSCH 03AAE 00 03 237DC020 02378AA8 53C2A001 6D83ACE8 15:54:50.015341827 002B 3A3D 001C-000A 21061E00 SRB 00000000_016206A8 0000000A 20DFCF78 20DFCFA4 00 000A 000A 15:54:50.058874719 0032 07040000 80000000 006D9E88 20 001C-000A 031AC800 SRB 00000000_016206A8 0000000A 20DFCF78 20DFCFA4 00 000A 000A 15:54:50.059031815 0032 07040000 80000000 006D9E88 20 0023-000A 006D9E88 SSCH 03A3D 00 03 03A23020 02374EE0 53C2A001 6B28FCE8 16:25:35.116331493 004C 0022-000A 006D9E88 SSCH 03B6D 00 03 03A23020 0237F310 53C2A001 6FA1DBE8 16:25:35.135359104 0015 0022-000A 20700980 SRB 00000000_016206A8 0000000A 20DFCF78 20DFCFA4 00 000A 000A 16:25:35.149944230 0015 47040000 80000000 006D9E88 20 0022-000A 20700980 PC ... 0 07464E4A 00318 Resume SRB 0022-000A 20700980 SSRV 119 8745F3C8 03A87AA8 80076F4A 2293FEE8 Resume 16:25:35.149963318 0015 00000000 0022-000A 20700980 PR ... 0 07464E4A 01408F44 000A 001D-000A 21451D80 SRB 00000000_016206A8 0000000A 20DFCF78 20DFCFA4 00 000A 000A 16:25:35.200529334 0027 47040000 80000000 006D9E88 20 001D-000A 21451D80 PC ... 0 07464E4A 00318 Resume SRB 001D-000A 21451D80 SSRV 119 8745F3C8 206ECAD0 800E713F 21A941F8 Resume 16:25:35.200544172 0027 00000000 001D-000A 21451D80 PR ... 0 07464E4A 01408F44 000A 001D-000A 03A35100 SRB 00000000_01223632 0000000A 02D1614C 82D16120 FF 000A 000A 16:25:35.247026387 0015 47040000 80000000 006D47E8 00 001D-000A 03A35100 SSRV 129 81223776 02D1613C 00000000 00000000 Post 16:25:35.247027125 0015 00000000 001D-000A 006D47E8 DSP 00000000_01407008 00000000 00000080 02D1613C 00000000 00000000 000A 000A 16:25:35.247030291 0015 47040000 80000000 001D-000A 006D47E8 SSRV 78 81407106 0000F503 00000080 02D16120 Freemain 16:25:35.247036644 0015 000A0000 001D-000A 006D47E8 SVCR 2F 00000000_290F8C3A 00000000 91000000 290F9598 16:25:35.247037242 0015 47540000 80000000 0015 001D-000A 006D47E8 SVC 2F 00000000_290F8C3A 00000000 91000000 290F9598 STimer Set 16:25:35.247039829 0015 47540000 80000000 0015 Figure 71: Example: system trace in an SVC dump identifiers Summary of system trace entry identifier. This topic summarizes all the system trace entries by Because many trace entries are similar, to locate the format for a particular entry. they are described together. Use Table 32 on page 156 For example, in the trace entry shown in Figure 72 on page 156 identifier is SVC. Look , the system trace up SVC in Table 32 on page 156 to find where the SVC trace entry format is described. In this case, the SVC trace entry is described in “SVC, SVCE, and SVCR trace entries” on page 198 . 1 070C2000 00EB19CC 00000000 00000001 00C13340 01 000C 00AFF090 SVC Figure 72: Example: Finding the format for an SVC entry Table 32: References for system trace entry format description Identifie Description For format, see: r (Ident) Alternate CPU recovery “ACR trace entries” on page 158 ACR Adapter interruption “AINT trace entries” on page 159 AINT ALTR Alteration of trace option “ALTR trace entries” on page 160 BR Branch through a BAKR, BALR, BASR, or BASSM “BR trace entries” on page 161 instruction Branch on subspace group “BSG, PC, PR, PT, PTI, SSAR and SSIR trace entries” on BSG page 162 CSCH Clear subchannel operation “CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH trace entries” on page 167 DSP Task dispatch “DSP, SRB, SSRB, and WAIT trace entries” on page 170 156 z/OS: MVS Diagnosis: Tools and Service Aids

185 System trace Table 32: References for system trace entry format description (continued) Identifie Description For format, see: r (Ident) EXT General external interruptions: “CALL, CLKC, EMS, EXT, I/O, MCH, RST, SS, TIMR, and WTI trace entries” on page 164 • CALL - external call interruption • CLKC - clock comparator interruption • EMS - emergency signal interruption • SS - service signal interruption • TIMR - timer interruption • WTI - warning track interruption Halt subchannel operation “CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH HSCH trace entries” on page 167 “CALL, CLKC, EMS, EXT, I/O, MCH, RST, SS, TIMR, and I/O Input/output interruption WTI trace entries” on page 164 “CALL, CLKC, EMS, EXT, I/O, MCH, RST, SS, TIMR, and MCH Machine check interruption WTI trace entries” on page 164 Change of addressing mode along with a change of “MODE and MOBR trace entries” on page 172 MOBR instruction address Change of addressing mode “MODE and MOBR trace entries” on page 172 MODE MSCH Modify subchannel operation “CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH trace entries” on page 167 “BSG, PC, PR, PT, PTI, SSAR and SSIR trace entries” on PC Program Call control instruction page 162 PCI load instruction “PCIL trace entries” on page 173 PCIL PCIS PCI store instruction “PCIS trace entries” on page 174 PCIE adapter interruption de-multiplexing event “PDMX trace entries” on page 175 PDMX Program interruption PGM “PGM, SPER and SPR2 trace entries” on page 176 “BSG, PC, PR, PT, PTI, SSAR and SSIR trace entries” on PR Program Return control instruction page 162 PT Program Transfer control instruction “BSG, PC, PR, PT, PTI, SSAR and SSIR trace entries” on page 162 “RCVY trace entries” on page 177 RCVY Recovery event “CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH Resume subchannel operation RSCH trace entries” on page 167 RST Restart interruption “CALL, CLKC, EMS, EXT, I/O, MCH, RST, SS, TIMR, and WTI trace entries” on page 164 Signal adapter operation “CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH SIGA trace entries” on page 167 SPER SLIP program event recording “PGM, SPER and SPR2 trace entries” on page 176 “SPIN trace entries” on page 182 Starting, middle, or stopping of a system spin. SPIN SLIP program event recording, when STDATA is “PGM, SPER and SPR2 trace entries” on page 176 SPR2 specified Initial service request block dispatch “DSP, SRB, SSRB, and WAIT trace entries” on page 170 SRB Set Secondary Address Space Number control “BSG, PC, PR, PT, PTI, SSAR and SSIR trace entries” on SSAR instruction page 162 System trace 157

186 System trace Table 32: References for system trace entry format description (continued) Identifie Description For format, see: r (Ident) “CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH SSCH Start subchannel operation trace entries” on page 167 Suspended service request block dispatch “DSP, SRB, SSRB, and WAIT trace entries” on page 170 SSRB SSRV System service entered by a Program Call (PC) “SSRV trace entries” on page 187 instruction or a branch “SUSP trace entries” on page 197 Lock suspension SUSP SVC Supervisor call interruption “SVC, SVCE, and SVCR trace entries” on page 198 “SVC, SVCE, and SVCR trace entries” on page 198 SVCE SVC error SVC return SVCR “SVC, SVCE, and SVCR trace entries” on page 198 “SYNS and SYNE trace entries” on page 200 Synchronous (zHyperLink) I/O start SYNS Synchronous (zHyperLink) I/O end “SYNS and SYNE trace entries” on page 200 SYNE “TIME trace entries” on page 202 TIME Timer services “USRn trace entries” on page 203 User event USRn WAIT Wait task dispatch “DSP, SRB, SSRB, and WAIT trace entries” on page 170 Cancel subchannel operation “CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH XSCH trace entries” on page 167 ?EXPL N/A The SYSTRACE subcommand cannot identify the system trace entry ACR trace entries An ACR trace entry represents failure of a processor and subsequent entry into the alternate CPU recovery component. PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr fail wu-addr- *ACR cpu psaeepsw flg-crex psacstk- psaclhs- psalocal timestamp--------- cp-- psasuper psamodew psaclhse PR pr : Identifier of the processor that produced the TTE. ASID : Home address space identifier (ASID) of the failing processor fail WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident The TTE identifier, as follows: ACR Alternate CPU recovery. CD/D cpu : The failing processor address from the PSACPUPA field of the PSA 158 z/OS: MVS Diagnosis: Tools and Service Aids

187 System trace PSW----- Address- Blank Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 field configuration communication area (LCCA) for the failing flg-crex of the logical • : LCCACREX processor. field from the • save area (PSA) from the failing processor. psacstk- : PSACSTK prefix : PSAEEPSW field in the PSA. Bytes 1 and 2 contain the failing processor's address. Bytes psaeepsw • 3 and 4 contain the external interruption code. : PSAMODEW field in the PSA • psamodew psasuper field in the PSA • : PSASUPER PSACLHS- : String for the current lock held, from the PSACLHS of the PSA from the failing psaclhs- field processor. PSACLHSE psaclhse field of the PSA from the : Extended string for the current lock held, from the PSACLHSE failing processor. PSALOCAL : Locally locked address space indicator, from the PSALOCAL field of the PSA from the psalocal failing processor. PASD : Primary ASID (PASID) at trace entry. pasd SASD : Secondary ASID (SASID) at trace entry. sasd Time Format timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. for TIME. If TIME was not specified, The value is in the format that was specified the default format is TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. AINT trace entries An AINT trace entry represents an adapter interruption. Format ------- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- AINT aism i/o-old-pswaddr isc psaclhs- psalocal timestamp--------- cp-- i/o-old-pswcntl desc desc desc psaclhse PR pr Identifier of the processor that produced the TTE. : ASID : Home address space identifier (ASID) associated with the TTE. home WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). System trace 159

188 System trace Ident as follows: The TTE identifier, AINT Adapter interruption. CD/D aism : The adapter interruption source mask. PSW----- Address- i/o-old-pswaddr / i/o-old-pswcntl : I/O old PSW. Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 isc • : Interruption subclass. : Description of the adapter types represented by the adapter interruption source mask (IQP, desc • PCIE, Crypto, CF). PSACLHS- field of the PSA. psaclhs- : String for the current lock held, from the PSACLHS PSACLHSE field of the PSA. psaclhse : Extended string for the current lock held, from the PSACLHSE PSALOCAL : Locally locked address space indicator, from the PSALOCAL psalocal of the PSA. field PASD pasd : Primary ASID (PASID) at trace entry. SASD sasd : Secondary ASID (SASID) at trace entry. Format Time : Time-of-day (TOD) clock value when system trace created the trace entry. timestamp--------- for TIME. If TIME was not the default format is specified specified, The value is in the format that was TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. ALTR trace entries An ALTR trace entry represents alteration of the system trace options. Alter the options with a TRACE ST operator command. PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- *ALTR tobtropt gpr0---- gpr1---- pasd sasd timestamp--------- cp-- pol-buf- PR pr : Identifier of the processor that produced the TTE. ASID : Home address space identifier (ASID) associated with the TTE. home WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). 160 z/OS: MVS Diagnosis: Tools and Service Aids

189 System trace Ident as follows: The TTE identifier, ALTR Alteration of the trace option. An asterisk (*) always appears before ALTR to indicate an unusual condition. CD/D Blank PSW----- Address- Blank Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • of the system trace tobtropt : Trace options in control register 12 format, from the TOBTROPT field option block (TOB) gpr0---- : General register 0 • : General register 1 • gpr1---- pol- field of the • : The number of processor with tracing active or suspended, from the TOBTRPOL TOB buf- field • of the TOB : The number of trace buffers per processor, from the TOBTRBUF PSACLHS- Blank PSACLHSE Blank PSALOCAL Blank PASD : Primary ASID (PASID) at trace entry. pasd SASD : Secondary ASID (SASID) at trace entry. sasd Format Time timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. for TIME. If TIME was not specified, The value is in the format that was specified the default format is TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. BR trace entries A BR trace entry represents processing of a Branch and Link (BALR), Branch and Save (BASR), Branch and field in the instruction Save and Set Mode (BASSM), or Branch and Stack (BAKR) instruction, when the R₂ is not zero. These branches are traced only when a TRACE operator command requests branch tracing by BR=ON. PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr last wu-addr- BR address- address- address- address- address- address- etc. PR pr : Identifier of the processor that produced the TTE. System trace 161

190 System trace ASID identifier last (ASID) in the trace buffer. : Last home address space WU-Addr- : Address of the task control block (TCB) for the current task or the work element block wu-addr- (WEB). Ident The TTE as follows: identifier, BR Branch instruction CD/D Blank PSW----- Address- Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 PSACLHS- PSACLHSE PSALOCAL PASD SASD address- : Successful branch address, repeated for consecutive branches on the BR entry. Addresses appear in the following formats: Appearance Addressing mode and location xxxxxx 24-bit address 31-bit address xxxxxxxx 64-bit address with zeros in high order bits 00_xxxxxxxx 64-bit address with non-zero high order bits xxxxxxxx_xxxxxxxx Format Time Blank CP-- Blank BSG, PC, PR, PT, PTI, SSAR and SSIR trace entries These trace entries represent processing of a cross memory instruction: • A BSG trace entry represents a Branch on Subspace group (BSG) control instruction • A PC trace entry represents a Program Call (PC) control instruction • A PR trace entry represents a Program Return (PR) control instruction • A PT trace entry represents a Program Transfer (PT) control instruction • A PTI trace entry represents a Program Transfer with Instance (PTI) control instruction • An SSAR trace entry represents a Set Second Address Space Number (SSAR) control instruction 162 z/OS: MVS Diagnosis: Tools and Service Aids

191 System trace • An SSIR trace entry represents a Set Secondary Address Space Number with Instance (SSAIR) control instruction Format ------- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr last wu-addr- PC pkey-flg pc-addr- pc#----- pr last wu-addr- PR psw-key- pr-addr- pr-faddr pasd pr last wu-addr- PT psw-key- pt-addr- pt-asid- pr last wu-addr- PTI psw-key- pt-addr- pt-asid- pr last wu-addr- SSAR newsasid sasd pr last wu-addr- SSSR newsasid sasd pr last wu-addr- BSG alet bsg-addr PR Identifier of the processor that produced the TTE. : pr ASID identifier last : Last home address space (ASID) associated with the TTE. WU-Addr- : Address of the task control block (TCB) for the current task or the work element block wu-addr- (WEB). Ident The TTE identifier, as follows: PC Program Call control instruction PR Program Return control instruction PT Program Transfer control instruction PTI Program Transfer with Instance (PTI) control instruction SSAR Set Secondary Address Space Number control instruction SSIR Set Secondary Address Space Number with Instance (SSAIR) control instruction BSG Branch on Subspace Group control instruction CD/D Blank PSW----- Address- • alet : ALET word during BSG execution newsasid : New SASID from the SSAR instruction • return-- : Caller's return address • • psw-key- : Program status word (PSW) key pkey-flag : Program status word (PSW) key and flags. The flag value is either blank or a • hexadecimal value of 1-3: – 0 - PSW bit 31 was replaced by a zero and PSW bit 31 was a zero before being replaced. – 1 - PSW bit 31 was replaced by a one and PSW bit 31 was a zero before being replaced. System trace 163

192 System trace – 2 - PSW bit 31 was replaced by a zero and PSW bit 31 was a one before being replaced. – 3 - PSW bit 31 was replaced by a one and PSW bit 31 was a one before being replaced. pc-addr- : Return address from the PC instruction • • pr-addr- : New instruction address as updated by the PR instruction • : New instruction address as updated by the PT instruction pt-addr- • bsg-addr : New instruction address as updated by the BSG instruction Addresses appear in the following formats: Addressing mode and location Appearance xxxxxx 24-bit address 31-bit address xxxxxxxx 64-bit address with zeros in high order bits 00_xxxxxxxx xxxxxxxx_xxxxxxxx 64-bit address with non-zero high order bits Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • : PC number from the PC instruction pc#----- : Address of the location following the PR instruction • pr-faddr : New ASID specified on the PT instruction • pt-asid- PSACLHS- field will contain descriptive text for some PC trace entries. The descriptive text will not appear in This SNAP, SYSUDUMP, or SYSABEND output. PSACLHSE Blank PSALOCAL This will contain descriptive text for some PC trace entries. The descriptive text will not appear in field SNAP, SYSUDUMP, or SYSABEND output. PASD field pasd : Primary ASID (PASID) at trace entry. This will contain descriptive text for some PC trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. SASD sasd : Secondary ASID (SASID) at trace entry. This field will contain descriptive text for some PC trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. Format Time Blank CP-- Blank CALL, CLKC, EMS, EXT, I/O, MCH, RST, SS, TIMR, and WTI trace entries The following trace entries represent an interruption: • These entries represent external interruptions: – A CALL trace entry is for an external call – A CLKC trace entry is for a clock comparator – An EMS trace entry is for an emergency signal – An EXT trace entry is for a general external interruption – An SS trace entry is for a service signal – A TIMR trace entry is for a timer interruption 164 z/OS: MVS Diagnosis: Tools and Service Aids

193 System trace – A WTI trace entry is for a warning track interruption – A Key entry for an interrupt key interruption – A TimA entry for a timing alert interruption • An I/O trace entry is for an I/O interruption • An MCH trace entry is for a machine check • An RST trace entry is for a restart Format ------- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- EXT CALL ext-old- psw----- psaeepsw pccarph- psaclhs- psalocal pasd sasd timestamp--------- cp-- ext-old- pswctrl- psaclhse pr home wu-addr- EXT CLKC ext-old- pswaddr- psaeepsw tqe-addr tqe-asid psaclhs- psalocal pasd sasd timestamp--------- cp-- ext-old- pswctrl- psaclhse pr home wu-addr- EXT EMS ext-old- pswaddr- psaeepsw pccaemsi pccaemsp psaclhs- psalocal pasd sasd timestamp--------- cp-- ext-old- pswctrl- pccaemse psaclhse pr home wu-addr- EXT code ext-old- pswaddr- psaeepsw psaclhs- psalocal pasd sasd timestamp--------- cp-- ext-old- pswctrl- psaclhse pr home wu-addr- I/O dev i/o-old- pswaddr- flg-ctl- ccw-addr dvch-cnt psaclhs- psalocal pasd sasd timestamp--------- cp-- dev i/o-old- pswctrl- ucb-addr ext-stat psaclhse pr home wu-addr- *MCH mch-old- pswaddr- machine- chk-code psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- mch-old- pswctrl- psaclhse pr home wu-addr- *RST rst-old- pswaddr- gpr15--- gpr0---- gpr1---- psaclhs- psalocal pasd sasd timestamp--------- cp-- rst-old- pswctrl- psasuper psamodew pr home wu-addr- EXT SS ext-old- pswaddr- psaeepsw psaeparm msf-bcmd psaclhs- psalocal pasd sasd timestamp--------- cp-- ext-old- pswctrl- flg-brsp mssfasid mssfatcb psaclhse pr home wu-addr- EXT TIMR ext-old- psw----- psaeepsw pccarph- psaclhs- psalocal pasd sasd timestamp--------- cp-- ext-old- pswctrl- psaclhse pr home wu-addr- EXT WTI ext-old- psw----- psaeepsw pccarph- psaclhs- psalocal pasd sasd timestamp--------- cp-- ext-old- pswctrl- psaclhse PR pr Identifier of the processor that produced the TTE. : ASID identifier home : Home address space (ASID) associated with the TTE. WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident identifier, as follows: The TTE EXT General external interruption. An asterisk before EXT indicates that the interrupt is a malfunction alert (MFA) or is the result of pressing the External Interrupt key. I/O I/O interruption. An asterisk before I/O indicates that one of the following bits in IRBFLAGS field of field is in the Unique-1 column of the I/O the interrupt request block (IRB) is ON. The IRBFLAGS entry. • IRBN for path not operational • IRBSALRT for alert status System trace 165

194 System trace MCH Machine check interruption. RST Restart interruption. CD/D CALL External call external interruption CLCK Clock comparator external interruption EMS Emergency signal external interruption SS Service signal external interruption TIMR Timer interruption WTI Warning track interruption code External interruption code dev Device number associated with the I/O or, for a co-processor device, the I/O co-processor identifier, for example, ADM PSW----- Address- The z/Architecture 128-bit PSW address appears on two lines: : Two words, containing the 64-bit address portion of the PSW • pswaddr- : Two words, containing the 64-bit "control" portion of the PSW • pswctrl- The PSW represents different data, depending on the type of interrupt that was traced: • ext-old- pswaddr- / ext-old- pswctrl- : External old program status word (PSW) : I/O old PSW • i/o-old- pswaddr- / i/o-old- pswctrl- : Machine check old PSW mch-old- pswaddr- / mch-old- pswctrl- • • rst-old- pswaddr- / rst-old- pswctrl- : Restart old PSW Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 ccw-addr • : Address of the channel command word (CCW) for the I/O : Residual count • -cnt dvch : Device status and subchannel status • • ext-stat : Extended status word • flg-brsp : Maintenance and service support facility (MSSF) hardware flags and MSSF response code • flg-ctl- : IRBFLAGS field in the IRB and the subchannel control bytes gpr15--- gpr0---- gpr1---- : General registers 15, 0, and 1 • machine- chk-code filed in the prefix save : Machine check interruption code from the FLCMCIC • area (PSA) msf-bcmd : Service processor command word • mssfasid : Service processor address space ID • • mssfatcb : Service processor TCB address 166 z/OS: MVS Diagnosis: Tools and Service Aids

195 System trace • field from the physical configuration communication area (PCCA) pccaemse : PCCAEMSE : PCCAEMSI field • pccaemsi from the PCCA field from the PCCA : PCCAEMSP pccaemsp • pccarph- : PCCARPB field from the PCCA • : PSAEEPSW field in the PSA. For CALL and EMS, bytes 1 and 2 contain the issuing • psaeepsw processor's address. For all entries, bytes 3 and 4 contain the external interruption code. psaeparm field in the PSA, containing the MSSF buffer address : PSAEPARM • : PSAMODEW in the PSA psamodew field • : PSASUPER field in the PSA • psasuper : ASID of the associated timer queue element (TQE) tqe-asid • • tqe-addr : TQE address ucb-addr : Unit control block (UCB) address • PSACLHS- psaclhs- of the PSA. : String for the current lock held, from the PSACLHS field PSACLHSE : Extended string for the current lock held, from the PSACLHSE of the PSA. psaclhse field PSALOCAL field of the PSA. psalocal : Locally locked address space indicator, from the PSALOCAL PASD : Primary ASID (PASID) at trace entry. pasd SASD sasd : Secondary ASID (SASID) at trace entry. Time Format : Time-of-day (TOD) clock value when system trace created the trace entry. timestamp--------- specified The value is in the format that was the default format is for TIME. If TIME was not specified, TIME(HEX). CP-- : Four hex digits of the processor model dependent information, which is intended to identify the cp-- physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. CSCH, HSCH, MSCH, RSCH, SSCH, SIGA and XSCH trace entries These trace entries represent an input/output operation: • A CSCH trace entry represents a clear subchannel operation • An HSCH trace entry represents a halt subchannel operation • An MSCH trace entry represents a modify subchannel operation • An RSCH trace entry represents a resume subchannel operation • An SSCH trace entry represents a start subchannel operation • An SIGA trace entry represents a signal adapter operation System trace 167

196 System trace • An XSCH trace entry represents a cancel subchannel operation ------- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr asid wu-addr- CSCH dev cc di iosbaddr ucb-addr ioq-addr asc-iosb timestamp--------- cp-- pr asid wu-addr- HSCH dev cc di iosbaddr ucb-addr ioq-addr asc-iosb timestamp--------- cp-- pr asid wu-addr- MSCH dev cc iosbaddr ucb-addr f1f2pmom mbi-t2lb timestamp--------- cp-- pr asid wu-addr- RSCH dev cc di iosbaddr ucb-addr timestamp--------- cp-- pr asid wu-addr- SSCH dev cc di iosbaddr ucb-addr orb-wrd2 orb-wrd3 timestamp--------- cp-- orb-wrd4 cap-addr bdev pr asid wu-addr- XSCH dev cc di iosbaddr ucb-addr ioq-addr bdev timestamp--------- cp-- pr asid wu-addr- SIGA dev cc fc qib-addr subsysid q-mask-1 q-mask-2 timestamp--------- cp-- ucb-addr PR : of the processor that produced the TTE. Identifier pr ASID identifier (ASID) related to the I/O. asid : Address space WU-Addr- : Address of the task control block (TCB) for the current task or the work element block wu-addr- (WEB). Ident as follows: identifier, The TTE CSCH Clear subchannel operation HSCH Halt subchannel operation MSCH Modify subchannel operation RSCH Resume subchannel operation SSCH Start subchannel operation XSCH Cancel subchannel operation SIGA Signal adapter operation An asterisk before RSCH, SSCH, or SIGA indicates that the condition code associated with the I/O was not 0. CD/D dev : One of the following: identifier when • The device number associated with the I/O, which will include the subchannel set appropriate. • ADMF, if the IOSADMF macro was transferring data 168 z/OS: MVS Diagnosis: Tools and Service Aids

197 System trace PSW----- Address- : Condition code in bits 2 and 3 associated with the I/O • cc identifier : Driver • associated with the I/O di • : Function code associated with the I/O fc : I/O supervisor block (IOSB) address associated with the I/O • iosbaddr identification • qib-addr : Queue block (QIB) address associated with the I/O Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • asc-iosb : IOSB address for the associated SSCH request for the I/O • bdev : The base device number if the I/O is associated with an alias device. : Captured unit control block (UCB) address associated with the SSCH I/O. This field is • cap-addr blank if a below 16 megabyte UCB or actual above 16 megabyte UCB address was used for the start subchannel (SSCH) operation. The address of the actual above 16 megabyte UCB is in the ucb- field. addr f1f2pmom : From the subchannel information block (SCHIB) associated with the I/O, as follows: • f1 SCHFLG1 flag field f2 SCHFLG2 flag field pm SCHLPM field om SCHPOM field ioq-addr : I/O queue (IOQ) address associated with the I/O • mbi-t2lb • : mbi- field from the SCHIB SCHMBI t2 IOSOPT2 field from the IOSB lb from the IOSB IOSFLB field : Word 2 of the operation request block (ORB) associated with the I/O orb-wrd2 • • orb-wrd3 : Word 3 of the operation request block (ORB) associated with the I/O • orb-wrd4 : Word 4 of the operation request block (ORB) associated with the I/O q-mask-1 : Read or write queue mask associated with the I/O • q-mask-2 : Read queue mask associated with the I/O • • subsysid : Subsystem ID associated with the I/O • ucb-addr : Unit control block (UCB) address associated with the I/O PSACLHS- field contains descriptive text for some SVC, SSRV, and PC trace entries. The descriptive text will This not appear in SNAP/SYSUDUMP/SYSABEND output. PSACLHSE Blank PSALOCAL This field contains descriptive text for some SVC, SSRV, and PC trace entries. The descriptive text will not appear in SNAP/SYSUDUMP/SYSABEND output. System trace 169

198 System trace PASD contains descriptive text for some SVC, SSRV, and PC trace entries. The descriptive text will This field not appear in SNAP/SYSUDUMP/SYSABEND output. SASD field contains descriptive text for some SVC, SSRV, and PC trace entries. The descriptive text will This not appear in SNAP/SYSUDUMP/SYSABEND output. Time Format : Time-of-day (TOD) clock value when system trace created the trace entry. timestamp--------- specified, the default format is for TIME. If TIME was not The value is in the format that was specified TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. DSP, SRB, SSRB, and WAIT trace entries These trace entries represent the dispatch of a unit of work: • A DSP trace entry represents dispatch of a task • An SRB trace entry represents the initial dispatch of a service request • An SSRB trace entry represents dispatch of a suspended service request • A WAIT trace entry represents dispatch of the wait task ------- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- DSP dsp-new- pswaddr- psamodew gpr0---- gpr1---- psaclhs- psalocal pasd sasd timestamp--------- cp-- dsp-new- pswctrl- pr home wu-addr- SRB srb-new- pswaddr- safnasid gpr0---- gpr1---- srbhlhi- pasd sasd timestamp--------- cp-- srb-new- pswctrl- purgetcb flg-srb- pr home wu-addr- SSRB ssrb-new- pswaddr- safnasid gpr1---- psaclhs4 psalocal pasd sasd timestamp--------- cp-- ssrb-new- pswctrl- purgetcb pr home wu-addr- WAIT timestamp--------- cp-- PR Identifier of the processor that produced the TTE. : pr ASID : Home address space identifier (ASID) associated with the TTE. home WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident The TTE identifier, as follows: DSP Task dispatch SRB Initial service request dispatch SSRB Suspended service request dispatch 170 z/OS: MVS Diagnosis: Tools and Service Aids

199 System trace WAIT Wait task dispatch CD/D Blank PSW----- Address- The z/Architecture 128-bit PSW address appears on two lines: pswaddr : Two words, containing the 64-bit address portion of the PSW • • : Two words, containing the 64-bit "control" portion of the PSW pswctrl The PSW represents different data, depending on the type of work that was dispatched: • : Program status word (PSW) to be dispatched dsp-new- pswaddr / dsp-new- pswctrl srb-new- pswaddr / srb-new- pswctrl • : PSW to receive control on the SRB dispatch : PSW to receive control on the SSRB redispatch ssrb-new pswaddr / ssrb-new pswctrl • Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • gpr0---- : General register 0 • gpr1---- : General register 1 psamodew field in the PSA • : PSAMODEW : LCCASAFN in the logical configuration communication area (LCCA) and the related safnasid field • ASID : SRBFLGS • from the SRB flg-srb field purgetcb : TCB (located in address space of the scheduler of the SRB or SSRB) that gets control if • the SRB or SSRB abends and percolates PSACLHS- psaclhs- : String for the current lock held, from the PSACLHS field of the PSA. • psaclhs4 • of the PSA : PSACLHS4 field : SRBHLHI in the SRB srbhlhi- • field This field will contain descriptive text for some SVC, SSRV, and PC trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. PSACLHSE Blank PSALOCAL : Locally locked address space indicator, from the PSALOCAL field of the PSA. This field will psalocal contain descriptive text for some SVC, SSRV, and PC trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. PASD : Primary ASID (PASID) at trace entry. This field will contain descriptive text for some SVC, SSRV, pasd and PC trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. SASD : Secondary ASID (SASID) at trace entry. This field will contain descriptive text for some SVC, sasd SSRV, and PC trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. Time Format : Time-of-day (TOD) clock value when system trace created the trace entry. timestamp--------- specified for TIME. If TIME was not specified, the default format is The value is in the format that was TIME(HEX). System trace 171

200 System trace CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. MODE and MOBR trace entries These trace entries represent a change of addressing mode: • A MODE trace entry represents a change into or out of 64-bit addressing mode • A MOBR trace entry represents a change into or out of 64-bit addressing mode along with a change of instruction address PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr last wu-addr- MODE target address- address- address- address- address- etc. pr last wu-addr- MOBR target address- address- address- address- address- etc. PR Identifier pr : of the processor that produced the TTE. ASID : Last home address space identifier (ASID) in the trace buffer. last WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident identifier, as follows: The TTE MODE Addressing mode change instruction MOBR Addressing mode change combined with a branch instruction CD/D Blank PSW----- target : Target addressing mode. 24 OR 31 Target addressing mode is either 24-bit or 31-bit. 64 Target addressing mode is either 64-bit. Address- Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 PSACLHS- PSACLHSE PSALOCAL PASD SASD address- : Target address. Addresses appear in the following formats: Addressing mode and location Appearance 24-bit address xxxxxx 172 z/OS: MVS Diagnosis: Tools and Service Aids

201 System trace Addressing mode and location Appearance xxxxxxxx 31-bit address 64-bit address with zeros in high-order bits 00_xxxxxxxx 64-bit address with nonzero high-order bits xxxxxxxx_xxxxxxxx Format Time Blank CP-- Blank PCIL trace entries A PCIL trace represents a PCI load instruction. Format PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- PCIL pfid cc reqaddr- traceid operand1_operand1 psaclhs- psalocal timestamp--------- cp-- operand2_operand2 psaclhse operand3_operand3 PR : of the processor that produced the TTE. pr Identifier ASID : Home address space (ASID) associated with the TTE. home identifier WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident The TTE identifier, as follows: PCIL PCI load instruction. CD/D : The PCIE function pfid identifier for the PCIE device. PSW----- Address- cc • : Condition code from the PCI load instruction. • reqaddr : Address of the program that requested the PCI load instruction to be issued. Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 : Program defined trace identifier that can be used to determine why the PCI load • traceid instruction is being issued. operand1_operand1 : First operand on the PCI load instruction. • operand2_operand2 : Second operand on the PCI load instruction. • • operand3_operand3 : Third operand on the PCI load instruction. PSACLHS- : String for the current lock held, from the PSACLHS field of the PSA. psaclhs- PSACLHSE psaclhse : Extended string for the current lock held, from the PSACLHSE field of the PSA. System trace 173

202 System trace PSALOCAL field psalocal of the PSA. : Locally locked address space indicator, from the PSALOCAL PASD pasd : Primary ASID (PASID) at trace entry. SASD : Secondary ASID (SASID) at trace entry. sasd Time Format : Time-of-day (TOD) clock value when system trace created the trace entry. timestamp--------- specified, the default format is for TIME. If TIME was not The value is in the format that was specified TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. PCIS trace entries A PCIS trace represents a PCI store instruction. Format PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- PCIS pfid cc reqaddr- traceid operand1_operand1 psaclhs- psalocal timestamp--------- cp-- operand2_operand2 psaclhse operand3_operand3 PR pr : Identifier of the processor that produced the TTE. ASID : Home address space identifier (ASID) associated with the TTE. home WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident The TTE as follows: identifier, PCIS PCI store instruction. CD/D identifier pfid : The PCIE function for the PCIE device. PSW----- Address- • cc : Condition code from the PCI store instruction. • reqaddr : Address of the program that requested the PCI store instruction to be issued. Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • : Program defined trace identifier that can be used to determine why the PCI store traceid instruction is being issued. operand1_operand1 : First operand on the PCI store instruction. • operand2_operand2 : Second operand on the PCI store instruction. • • operand3_operand3 : Third operand on the PCI store instruction. 174 z/OS: MVS Diagnosis: Tools and Service Aids

203 System trace PSACLHS- field psaclhs- of the PSA. : String for the current lock held, from the PSACLHS PSACLHSE field psaclhse of the PSA. : Extended string for the current lock held, from the PSACLHSE PSALOCAL psalocal : Locally locked address space indicator, from the PSALOCAL field of the PSA. PASD pasd : Primary ASID (PASID) at trace entry. SASD sasd : Secondary ASID (SASID) at trace entry. Time Format timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. for TIME. If TIME was not The value is in the format that was the default format is specified specified, TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. PDMX trace entries A PDMX trace represents a PCIE adapter interruption de-multiplexing event. ------- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- PDMX pfid pdmxaddr devtype [email protected] cbparm1 psaclhs- psalocal timestamp--------- cp-- cbparm2 psaclhse PR pr of the processor that produced the TTE. : Identifier ASID : Home address space (ASID) associated with the TTE. home identifier WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident identifier, as follows: The TTE PDMX PCIE adapter interruption de-multiplexing event. CD/D : PCIE function identifier for the PCIE device. pfid PSW----- Address- pdmxaddr : Address of the program that is performing the de-multiplexing. Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • devtype : PCIE device type. [email protected] : Callback routine address. • cbparm1 : First word of callback routine parameters. • • cbparm2 : Second word of callback routine parameters. System trace 175

204 System trace PSACLHS- field psaclhs- of the PSA. : String for the current lock held, from the PSACLHS PSACLHSE field psaclhse of the PSA. : Extended string for the current lock held, from the PSACLHSE PSALOCAL of the PSA. psalocal : Locally locked address space indicator, from the PSALOCAL field PASD : Primary ASID (PASID) at trace entry. pasd SASD sasd : Secondary ASID (SASID) at trace entry. Time Format timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. for TIME. If TIME was not specified, the default format is The value is in the format that was specified TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. PGM, SPER and SPR2 trace entries These trace entries represent a program event: • A PGM trace entry is for a program interrupt • An SPER trace entry is for a PER event requested in a SLIP trap • An SPR2 trace entry is for a PER event requested in a SLIP trap, when the STDATA keyword is specified on the trap Format PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- PGM code pgm-old- pswaddr- ilc-code tea----- psaclhs- psalocal pasd sasd timestamp--------- cp-- pgm-old- pswctrl- tea----- psaclhse pr home wu-addr- SPER code pgm-old- pswaddr- ilc-code trap---- psaclhs- psalocal pasd sasd timestamp--------- cp-- pgm-old- pswctrl- per-addH per-addL psaclhse pr home wu-addr- SPR2 code pgm-old- pswaddr- var1 var2 var3 psaclhs- psalocal pasd sasd timestamp--------- cp-- pgm-old- pswctrl- var4 var5 spc-exc PR pr : Identifier of the processor that produced the TTE. ASID : Home address space (ASID) associated with the TTE. identifier home WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident identifier, as follows: The TTE PGM Program interruption. An asterisk (*) before PGM indicates an unusual condition. PGM trace entries for program interrupts that may be resolved are not flagged. If the program interrupt is not resolved, then a subsequent RCVY trace entry is created and flagged with an asterisk. 176 z/OS: MVS Diagnosis: Tools and Service Aids

205 System trace SPER SLIP program event recording CD/D code • for PGM entry: Program interruption code for SPER entry: PER number • code PSW----- Address- The z/Architecture 128-bit old PSW appears on two lines: • pswaddr : Two words, containing the 64-bit address portion of the PSW • pswctrl : Two words, containing the 64-bit "control" portion of the PSW Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 ilc-code : Instruction length code and interruption code. • • per-addH : high-order bits of the SLIP/PER status address. : low-order bits of the SLIP/PER status address. • per-addL : Translation exception address. In the high-order bit, 0 indicates primary and 1 indicates • tea----- secondary. trap---- identifier in the form ID=xxxx. : SLIP/PER trap • , var2 , var3 • var4 , var5 : Each contains one word of variable data as specified by the STDATA var1 , keyword. spc-exc : The message SpaceExc if more than five words of variable data are requested in the • STDATA keyword. PSACLHS- field : String for the current lock held, from the PSACLHS of the PSA. psaclhs- PSACLHSE psaclhse : Extended string for the current lock held, from the PSACLHSE field of the PSA. PSALOCAL psalocal of the PSA. : Locally locked address space indicator, from the PSALOCAL field PASD pasd : Primary ASID (PASID) at trace entry. SASD sasd : Secondary ASID (SASID) at trace entry. Format Time : Time-of-day (TOD) clock value when system trace created the trace entry. timestamp--------- for TIME. If TIME was not specified, the default format is specified The value is in the format that was TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. RCVY trace entries A RCVY trace entry represents entry into a recovery routine following an error or interruption. Several types of recovery events require reentry in a new environment or address space. Table 33 on page 178 summarizes when an RCVY trace event requires reentry. RCVY also writes records to the system trace table for ESTAE type recovery exits and when the ESTAE type recovery exit requests retry. System trace 177

206 System trace Table 33: RCVY trace events that require reentry Reentry Trace Entry for Trace Entry for Reentry Recovery Event RCVY ABT Required only if the task to be ended resides in an address space other than the current home address space RCVY ITRM Always required RCVY ITRR, if the unit of work ending is locally locked or has an EUT FRR established RCVY MEM Always required RCVY MEMR RCVY ABTR RCVY RCMR Always required RCVY RCML RCVY STRM Always required RCVY STRR, if the unit of work ending is in SRB mode, is locally locked, or has an EUT FRR established Format PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- *RCVY ABRT trk----- psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- *RCVY ABT return-- comp---- reas---- rc------ psaclhs- psalocal pasd sasd timestamp--------- cp-- asid---- tcb----- psaclhse pr home wu-addr- *RCVY ABTR comp---- reas---- rc------ psaclhs- psalocal pasd sasd timestamp--------- cp-- asid---- tcb----- psaclhse pr home wu-addr- *RCVY DAT comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- *RCVY FRR frr-new- psw----- comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- fpw----- psaclhse pr home wu-addr- *RCVY ITRM return-- comp---- reas---- psaclhs- psalocal pasd sasd timestamp--------- cp-- pppp---- pppp---- psaclhse pr home wu-addr- *RCVY ITRR comp---- reas---- psaclhs- psalocal pasd sasd timestamp--------- cp-- pppp---- pppp---- psaclhse pr home wu-addr- *RCVY MCH comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- *RCVY MEM return-- comp---- reas---- rc------ psaclhs- psalocal pasd sasd timestamp--------- cp-- asid---- psaclhse pr home wu-addr- *RCVY MEMR comp---- reas---- psaclhs- psalocal pasd sasd timestamp--------- cp-- asid---- psaclhse pr home wu-addr- *RCVY PERC comp---- reas---- psaclhs- psalocal pasd sasd timestamp--------- cp-- fpw----- psaclhse pr home wu-addr- *RCVY PROG comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- *RCVY RCML return-- comp---- reas---- asid---- psaclhs- psalocal pasd sasd timestamp--------- cp-- pppp---- pppp---- psaclhse pr home wu-addr- *RCVY RCMR comp---- reas---- psaclhs- psalocal pasd sasd timestamp--------- cp-- pppp---- pppp---- psaclhse pr home wu-addr- *RCVY RESM retry--- pswaddr- comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- retry--- pswctrl- cpu----- fpw----- psaclhse pr home wu-addr- *RCVY RSRT comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- *RCVY RTRY retry--- pswaddr- comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- retry--- pswctrl- fpw----- psaclhse pr home wu-addr- *RCVY SABN comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- *RCVY SPRC comp---- reas---- psasuper psaclhs- psalocal pasd sasd timestamp--------- cp-- asid---- tcb----- fpw----- psaclhse pr home wu-addr- *RCVY SRBT return-- comp---- reas---- rc------ psaclhs- psalocal pasd sasd timestamp--------- cp-- srbidtoken------------------------- psaclhse pr home wu-addr- *RCVY STRM return-- comp---- reas---- tcb----- psaclhs- psalocal pasd sasd timestamp--------- cp-- pppp---- pppp---- psaclhse pr home wu-addr- *RCVY STRR comp---- reas---- tcb---- psaclhs- psalocal pasd sasd timestamp--------- cp-- pppp---- pppp---- psaclhse pr home wu-addr- *RCVY ESTA exit---- sdwa---- parm64-- parm---- psaclhs- psalocal pasd sasd timestamp--------- cp-- alet---- scb----- psaclhse pr home wu-addr- *RCVY ESTR retry--- retry--- exit---- scb----- psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- *RCVY SKFE exit---- scb----- psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse PR pr : Identifier of the processor that produced the TTE. 178 z/OS: MVS Diagnosis: Tools and Service Aids

207 System trace ASID identifier home (ASID) associated with the TTE. : Home address space WU-Addr- : Address of the task control block (TCB) for the current task or the work element block wu-addr- (WEB). Ident The TTE as follows: identifier, RCVY Recovery event. An asterisk (*) always appears before RCVY to indicate an unusual condition. CD/D Type of recovery event, as follows: ABRT • : Abort processing for an unrecoverable error during any recovery termination management (RTM) processing ABT : Request for abnormal end of a task by a CALLRTM TYPE=ABTERM macro, with a system or user • completion code • ABTR : Rescheduling of a CALLRTM TYPE=ABTERM request for end of a task, when the task is not in the home address space : RTM1 entered for a dynamic address translation (DAT) error • DAT : RTM has set up this ESTAE type recovery exit to receive control. Note that when a RCVY ESTA • ESTA record follows another RCVY ESTA record without an intervening RCVY ESTR record, this implies that the first recovery exit either abended or percolated : Retry was requested by this ESTAE type recovery exit. The exit and scb fields in this record • ESTR can be used to help match it to its corresponding RCVY ESTA record. FRR : RTM1 processing to invoke a function recovery routine (FRR) • • ITRM : The system requested RTM1 to end an interrupted task • ITRR : ITRM reentry, to process a request to end an interrupted task MCH : RTM1 entered for a machine check interruption • MEM • : Request for abnormal memory end by a CALLRTM TYPE=MEMTERM macro, with a completion code MEMR : Processing for an abnormal memory end following a MEM event • • PERC : Percolation from RTM1 to RTM2 to continue recovery processing • PROG : RTM1 was entered for a program check interruption : RTM1 was entered to perform special end processing for a task in a failing address space. The • RCML failing address space held the local lock of another address space. RCMR : RCML reentry, to process an abnormal end by a resource manager • • RESM : Resume from an FRR after a RESTART request following an RSRT entry • RSRT : RTM entered for a RESTART request from the operator RTRY : Retry from an FRR • SABN • : The system requested RTM1 to end abnormally the current unit of work : RTM has bypassed giving control to a FESTAE recovery exit because its address is zero. This • SKFE situation can happen because of a timing window in FESTAE processing, in which case it is not a concern • SPRC : Final percolation from service request block (SRB) recovery SRBT : Request for abnormal termination of a pre-emptable SRB by a CALLRTM TYPE=SRBTERM • macro, with a system or user completion code • STRM : The system requested RTM1 to end abnormally a suspended task • STRR : STRM reentry, to process the abnormal end of a suspended task System trace 179

208 System trace PSW----- Address- contains the z/Architecture 128-bit old PSW, which appears For the RESM and RTRY entries, this field on two lines: : Two words, containing the 64-bit address portion of the PSW • pswaddr- pswctrl- : Two words, containing the 64-bit "control" portion of the PSW • • exit---- : Address of an ESTAE type recovery exit. This is always zero for RCVY SKFE entries. : Retry address requested by an ESTAE type recovery exit. When retry is to retry--- retry--- • CVTBSM0F, contains the contents of 64-bit GPR15 at the time of the retry request instead of the address of CVTBSM0F. The contains the new program status word (PSW) to give control to the frr-new- psw----- field return-- field contains the caller's return address. FRR. For all other types of recovery events, the Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • : Contains the ALET of the parameter area for ESTAE type recovery exits with an ALET alet---- parameter area pointer. Otherwise, it contains zero. qualified asid---- : Target ASID for end processing. • – In a SPRC entry, the ASID is for the task that will be abnormally ended by SRB-to-task field and the percolation. If this tcb----- field are zero, then no SRB-to-task percolation is performed. : Contains the ESTAE type recovery exit address exit---- • comp---- : System or user completion code • : Target processor for a restart error indicated on a request for an FRR resume, after an • cpu----- operator RESTART request fpw----- : FRR processing word, in the following format: • rsxxxxxp xxxxxxxx ssssssss eeeeeeee r Bit 0 = 1 means a resource manager entry to the FRR s Bit 1 = 1 means the FRR was skipped p Bit 7 = 0 means a not serialized SRB-to-task percolation Bit 7 = 1 means a serialized SRB-to-task percolation ssssssss The stack index, which is an index of the FRR stack. The index means the following: – 0 Normal stack – 1 SVC I/O dispatcher super stack – 2 Machine check super stack – 3 PC FLIH super stack – 4 External FLIH super stack 1 – 5 External FLIH super stack 2 – 6 External FLIH super stack 3 – 7 Restart super stack – 8 ACR super stack – 9 RTM super stack 180 z/OS: MVS Diagnosis: Tools and Service Aids

209 System trace eeeeeeee The entry index, which is an index of the FRR entry on the stack. The index ranges from 0 through 16. If the current stack is a super stack, an index of 0 indicates a super FRR. parm---- • : Contains the 31-bit parameter address, or the lower 32 bits of the 64-bit parameter address, which is provided to the ESTAE type recovery exit when it gains control. : Contains the upper 32 bits of the 64-bit parameter address when the ESTAE type parm64-- • recovery exit was established in AMODE 64 • pppp---- pppp---- : PSW of the interrupted unit of work. – The instruction in the PSW may not be the cause of the failure. For example, an interruption can occur because a time limit expired, so that the interrupted instruction is not at fault. • in the prefix save area (PSA) psasuper : PSASUPER field : Return code from CALLRTM rc------ • : Reason code accompanying the completion code appearing in the entry. If not provided, • reas---- NONE . : Uniquely identifies the preemptable SRB, provided via the IEAMSCHD macro and • srbidtoken consisting of four unique words on the second line for the RCVY SRBT trace entry only. tasn---- • : Target ASID for RCML reentry • tcb----- : Target task control block (TCB) for end processing – In a SPRC entry, the TCB is for the task that will be abnormally ended by SRB-to-task percolation. field asid---- field are zero, then no SRB-to-task percolation is performed. If this and the – In a STRM or STRR entry, a TCB address of zero indicates that the request was for ending of a suspended SRB. trk----- : RTM1 error tracking area • scb----- • : Contains the address of the STAE control block that represents this ESTAE type recovery exit. Note that for ARR and IEAARR recovery routines, RTM creates a 'pseudo-SCB'. Thus the same SCB address can be seen for multiple ARR or IEAARR recovery exits • : Contains the address of the system diagnostic work area that is provided to the ESTAE sdwa---- type recovery exit. If no SDWA is available to the exit, the field contains 0000000C PSACLHS- psaclhs- of the PSA. : String for the current lock held, from the PSACLHS field PSACLHSE psaclhse : Extended string for the current lock held, from the PSACLHSE field of the PSA. PSALOCAL : Locally locked address space indicator, from the PSALOCAL field of the PSA. psalocal PASD pasd : Primary ASID (PASID) at trace entry. SASD sasd : Secondary ASID (SASID) at trace entry. Time Format timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. specified for TIME. If TIME was not specified, the default format is The value is in the format that was TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. System trace 181

210 System trace SPIN trace entries A SPIN trace entry represents the starting (at least one second in), the middle (when special processing is done), or the stopping of a system spin attempting to obtain a resource. The spinning module will identify the resource within the trace entry. Format PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- SPIN SRC/{S|P} return-- spin-dur holder-- rstrscid psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- SPIN ACO/{S|P} return-- spin-dur holder-- infncode psaclhs- psalocal pasd sasd timestamp--------- cp-- ascb-add inp-parm psaclhse pr home wu-addr- SPIN BBR/{S|P} return-- spin-dur cpu-spin infncode psaclhs- psalocal pasd sasd timestamp--------- cp-- reg1---- psaclhse pr home wu-addr- SPIN INT/{S|P} return-- spin-dur cpu-spin psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse pr home wu-addr- SPIN LKX/{S|P} return-- spin-dur lockword lock-add psaclhs- psalocal pasd sasd timestamp--------- cp-- pllhsom- plclhsp- lock-ent psaclhse pr home wu-addr- SPIN RI/{S|M|P} return-- spin-dur cpu-spin req-code psaclhs- psalocal pasd sasd timestamp--------- cp-- rcv-addr pccaaddr psaclhse pr home wu-addr- SPIN SGP/{S|P} return-- spin-dur cpu-spin para-reg psaclhs- psalocal pasd sasd timestamp--------- cp-- sigpcode sigpstat psaclhse pr home wu-addr- SPIN SPN/{S|P} return-- spin-dur cpu-spin reg0--- psaclhs- psalocal pasd sasd timestamp--------- cp-- reg1---- reg3---- psaclhse pr home wu-addr- SPIN MTC/{S|P} return-- spin-dur phycpu-- asid---- psaclhs- psalocal pasd sasd timestamp--------- cp-- psaclhse PR : of the processor that produced the TTE. Identifier pr ASID identifier home : Home address space (ASID) associated with the TTE. WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident identifier, as follows: The TTE SPIN System spin. CD/D field The CD/D indicates the spinning module, using the last two or three characters of its module name, followed by a forward slash (/) and S (start), M (middle), or P (stop). For more information about each spinning module, see “Spinning modules” on page 183 . PSW----- Address- return-- : Caller's return address Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 For more information about each spinning module, see “Spinning modules” on page 183 . PSACLHS- : String for the current lock held, from the PSACLHS field of the PSA. psaclhs- PSACLHSE psaclhse field of the PSA. : Extended string for the current lock held, from the PSACLHSE PSALOCAL psalocal : Locally locked address space indicator, from the PSALOCAL field of the PSA. PASD : Primary ASID (PASID) at trace entry. pasd SASD sasd : Secondary ASID (SASID) at trace entry. 182 z/OS: MVS Diagnosis: Tools and Service Aids

211 System trace Time Format : Time-of-day (TOD) clock value when system trace created the trace entry. timestamp--------- The value is in the format that was the default format is specified specified, for TIME. If TIME was not TIME(HEX). CP-- : Four hex digits of the processor model dependent information, which is intended to identify the cp-- physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. Spinning modules The following section summarize information about the spinning modules. BLWRESRC CD/D SRC/S The start spin entry of the BLWRESRC module. SRC/P The stop spin entry of the BLWRESRC module. Unique-1 spin-dur Spin duration so far (bytes 3, 4, 5, and 6 of time since the start of spin). Unique-2 holder-- CPU that is a current holder. Unique-3 rstrscid The restart resource ID of the caller (input parameter 1). IEAVEAC0 CD/D AC0/S The start spin entry of the IEAVEAC0 module. AC0/P The stop spin entry of the IEAVEAC0 module. Unique-1 spin-dur The spin duration so far (bytes 3,4,5, and 6 of time since the start of spin). Unique-2 holder-- CPU that is a current holder. Unique-3 infncode The input function code. Unique-4 ascb-add Current_ASCB System trace 183

212 System trace Unique-5 inp-parm input_parm IEAVEBBR CD/D BBR/S The start spin entry of the IEAVEBBR module. BBR/P The stop spin entry of the IEAVEBBR module. Unique-1 spin-dur The spin duration so far (bytes 3,4,5, and 6 of time since the start of spin). Unique-2 cpu-spin The CPU address being spun for. Unique-3 infncode The input function code. Unique-4 reg1---- input reg 1: when applicable, the ASID in bits 16-31. IEAVEINT CD/D INT/S The start spin entry of the IEAVEINT module. INT/P The stop spin entry of the IEAVEINT module. Unique-1 spin-dur The spin duration so far (bytes 3,4,5, and 6 of time since the start of spin). Unique-2 cpu-spin The CPU address being spun for. IEAVELKX CD/D LKX/S The start spin entry of the IEAVELKX module. LKX/P The stop spin entry of the IEAVELKX module. Unique-1 spin-dur Spin duration so far (bytes 3, 4, 5, and 6 of time since the start of spin). 184 z/OS: MVS Diagnosis: Tools and Service Aids

213 System trace Unique-2 lockword The lock word that contains the CPU address being spun for. Unique-3 lock-add Input reg 11 (lockword address). Unique-4 pllhsom- Lock held obtained mask (PLLHSOM, via input reg 12). Unique-5 plclhsp- Lock held string pointer (PLCLHSP, via input reg 12). Unique-6 lock-ent Input reg 13. The lock routine entry point address. IEAVERI CD/D RI/S The start spin entry of the IEAVERI module. RI/M The middle spin entry of the IEAVERI module. RI/P The stop spin entry of the IEAVERI module. Unique-1 spin-dur The spin duration so far (bytes 3,4,5, and 6 of time since the start of spin). Unique-2 cpu-spin The CPU address being spun for. Unique-3 req-code input register 0. Request code and, when appropriate, ASID. Unique-4 rcv-addr Input reg 12. Receiving routine's entry point address. Unique-5 pccaaddr identifies the same CPU as Unique 2, Input reg 1. PCCA address of the receiving CPU. If this Unique 2 value can be used. IEAVESGP CD/D SGP/S The start spin entry of the IEAVESGP module. SGP/P The stop spin entry of the IEAVESGP module. System trace 185

214 System trace Unique-1 spin-dur Spin duration so far (bytes 3, 4, 5, and 6 of time since the start of spin). Unique-2 cpu-spin The CPU address being spun for. Unique-3 para-reg Input reg 1. Parameter register for status and prefix order codes. Unique-4 sigpcode Input reg 2. The SIGP order code. Unique-5 sigpstat The status returned from the last SIGP IEAVESPN CD/D SPN/S The start spin entry of the IEAVESPN module. SPN/P The stop spin entry of the IEAVESPN module. Unique-1 spin-dur The spin duration so far (bytes 3, 4, 5, and 6 of time since the start of spin). Unique-2 cpu-spin The CPU address being spun for. Unique-3 reg0---- Input reg 0. Unique-4 reg1---- Input reg 1. Unique-5 reg3---- Input reg 3. IEAVTMTC CD/D MTC/S The start spin entry of the IEAVTMTC module. MTC/P The stop spin entry of the IEAVTMTC module. Unique-1 spin-dur The spin duration so far (bytes 3,4,5, and 6 of time since the start of spin). 186 z/OS: MVS Diagnosis: Tools and Service Aids

215 System trace Unique-2 phycpu-- The physical CPU number of some CPU that is still running with the terminating ASCB for "S" and 0 for "P". If an ACR condition is encountered, value can also be 0 for "S". Unique-3 asid---- The ASID that is the target of CALLRTM TYPE=MEMTERM. SSRV trace entries An SSRV trace entry represents entry to a system service. The service can be entered by a PC instruction or a branch. PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- SSRV ssid return-- data---- data---- data---- desc---- desc---- pasd sasd timestamp--------- cp-- PR : Identifier of the processor that produced the TTE. pr ASID identifier home : Home address space (ASID) associated with the TTE. WU-Addr- : Address of the task control block (TCB) for the current task or the work element block wu-addr- (WEB). Ident as follows: The TTE identifier, SSRV Request for a system service CD/D ssid : One of the following SSRV entry identifiers: Macro for SSRV Request Component ssid (hexadecimal) 0001 WAIT Task management Task management POST 0002 GETMAIN Virtual storage management 0004 0005 FREEMAIN Virtual storage management 000A GETMAIN, FREEMAIN Virtual storage management SYSEVENT System resource manager 005F 0078 GETMAIN, FREEMAIN Virtual storage management SPI, SPIINT Service processor interface 007A ETCON PC/AUTH 0100 0101 ETCRE PC/AUTH 0102 ATSET PC/AUTH AXSET PC/AUTH 0103 AXEXT PC/AUTH 0104 System trace 187

216 System trace ssid (hexadecimal) Macro for SSRV Request Component PC/AUTH 0105 AXFRE PC/AUTH 0106 AXRES ETDES 0107 PC/AUTH PC/AUTH ETDIS 0108 0109 PC/AUTH LXFRE 010A LXRES PC/AUTH Supervisor control SUSPEND 010E 010F RESUME Supervisor control 0110 SCHEDULE Supervisor control 0111 SCHEDULE Supervisor control SCHEDULE 0112 Supervisor control Supervisor control DSGNL 0113 RISGNL Supervisor control 0114 0115 RPSGNL Supervisor control Supervisor Control 0116 SCHEDULE Supervisor Control SCHEDULE 0117 0118 SUSPEND Supervisor Control 0119 RESUME Supervisor Control RESUME Supervisor Control 011A RESUME 011B Supervisor Control Supervisor Control 011C SCHEDULE IEAMSCHD Supervisor Control 011D 011E Pause (IEAVPSE / IEAVPSE2 / Supervisor Control IEA4PSE / IEA4PSE2) Supervisor Control 011F Release (IEAVRLS / IEAVRLS2 / IEA4RLS / IEA4RLS2) Timer DIE Supervisor Control 0120 0128 WAIT Task management 0129 POST Task management POST Task management 012A POST 012B Task management Task management 012C ASCBCHAP 012D STATUS Task management 012E STATUS Task management STORAGE OBTAIN Virtual storage management 0132 STORAGE RELEASE Virtual storage management 0133 0146 SPI, SPIINT Service processor interface IARV64 Real storage management 014B 188 z/OS: MVS Diagnosis: Tools and Service Aids

217 System trace ssid (hexadecimal) Macro for SSRV Request Component Global resource serialization 014C ISGENQ 014D Global resource serialization ENQ/RESERVE Global resource serialization 014E DEQ 014F UNIX System Services SYSCALL 0150 ICYDIE DFSMS Media Manager 0151 CHANGKEY Real storage management Reconfiguration CF CPU command or internal request 1050 PSW----- Address- return-- : • For PC/AUTH, supervisor control, and task management: Caller's return address if the service was entered by a branch; 0 if the service was entered by a PC instruction • For virtual storage management: For SSRV 132 (Storage Obtain) and SSRV 133 (Storage Release), it is the ALET. For other VSM SSRVs (004, 005, 00A, 078), it is the caller's return address. • For z/OS UNIX System Services: the syscall code. • For real storage management: Bytes as follows: 0 identifier: Request type 01 GETSTOR GETSHARED 02 DETACH 03 04 PAGEFIX 05 PAGEUNFIX 06 PAGEOUT 07 DISCARDDATA PAGEIN 08 PROTECT 09 0A SHAREMEMOBJ 0B CHANGEACCESS 0C UNPROTECT CHANGEGUARD 0D 0F GETCOMMON 11 PCIEFIX 12 PCIEUNFIX GETSTOR GETSHARED Request flags: 1 1... ... COND=YES request ... FPROT=NO request .1.. ..1. ... CONTROL=AUTH request (only applies to GETSTOR) ...1 ... SVCDUMPRGN=NO request (only applies to GETSTOR) ... 1... CHANGEACCESS = GLOBAL request (only applies to GETSHARED) System trace 189

218 System trace 0 Request type identifier: .1.. GUARDLOC=HIGH request (only applies to GETSTOR) ... 1 DETACH Request flags: 1... COND=YES request ... .1.. ... MATCH=USERTOKEN request AFFINITY=SYSTEM request ..1. ... OWNER=NO request ... ...1 1 SHAREMEMOBJ Request flags: 1... ... COND=YES request ... SVCDUMPRGN=NO request .1.. 1 CHANGEGUARD Request flags: ... COND=YES request 1... ... .1.. TOGUARD request ..1. ... FROMGUARD request 1 PAGEFIX Request flags: ... 1... LONG=NO request DISCARDDATA Request flags 1 1... ... CLEAR=NO request .1.. ... KEEPREAL=NO request CHANGEACCESS Request flags 1 1... ... READONLY request ... .1.. SHAREDWRITE request ..1. ... HIDDEN request 1 GETCOMMON Request flags COND=YES request 1... ... FPROT=NO request ... .1.. 1 PCIEFIX Request flags: 1... ... LONG=NO request 2 Keys Used flag 1... ... KEY specified .1.. specified ... USERTOKEN ... TTOKEN ..1. specified ...1 ... CONVERTSTART specified ... 1... GUARDSIZE64 request ... .1.. CONVERTSIZE64 request ... ..1. MOTKN specified 190 z/OS: MVS Diagnosis: Tools and Service Aids

219 System trace 0 Request type identifier: 3 Miscellaneous Byte – Storage Key for GETSTOR, GETSHARED, and GETCOMMON requests – Number of ranges in range list for range list requests – 0 for all other requests • For CONFIGURE CPU: Bytes as follows: Target CPU ID Bytes 0 and 1 Internal flags Byte 2 Byte 3 Bits 0-3 Reserved Bits 4-7 Direction and source Value Meaning 0 Online or Offline at MSI time 1 Online Operator request 2 Offline Operator request 3 Online WLM request 4 Offline WLM request Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 : Data. The unique trace data for each event is obtained from data areas. The areas for PC/ data---- AUTH, supervisor control, and task management are in the z/OS MVS Data Areas in the z/OS Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) . • For an SSRV request to the PC/AUTH component: the PCTRC data area • For an SSRV request to supervisor control: the SPTRC data area • For an SSRV request to task management: the TMTRC data area • For an SSRV request to virtual storage management, the data is: – Under Unique-1: Information input to the VSM STORAGE (OBTAIN and RELEASE) service: Bytes as follows: Flags: 0 X... ... RESERVED .1.. specified ... CALLRKY=YES was ... ..1. AR 15 is in use ... AR 15 is not in use ..0. ... LOC=(nnn,64) was specified. Storage can be backed above the bar ...1 ... 1... CHECKZERO=YES was specified ... CHECKZERO=NO was specified explicitly, or by default 0... ... .1.. TCBADDR was specified on STORAGE OBTAIN or RELEASE ... ..00 OWNER=HOME was specified explicitly, or by default System trace 191

220 System trace 0 Flags: ..01 ... OWNER=PRIMARY was specified OWNER=SECONDARY was ..10 specified ... OWNER=SYSTEM was specified ... ..11 1 Storage key (bits 0 through 3). Ignore when CALLRKY=YES is flagged in byte 0. Subpool number 2 3 Request flags: ... ALET operand 1... specified .1.. Storage can be backed anywhere ... ... ..00 Storage must have callers residency ... Storage must have a 24-bit address ..01 ..10 The request is for an explicit address ... ..11 ... Storage can have a 24- or 31-bit address ... 1... Maximum and minimum request ... .1.. Storage must be on a page boundary ..1. ... Unconditional request ... ...0 OBTAIN request ...1 ... RELEASE request – Under Unique-2: - In an SSRV trace entry for a VSM STORAGE OBTAIN or GETMAIN, one of the following: • The length of the storage successfully obtained • The maximum storage requested, if the storage was not obtained - In an SSRV trace entry for a VSM STORAGE RELEASE or FREEMAIN: • the length of the storage to be released, or zero if a subpool release was requested. – Under Unique-3: - In an SSRV trace entry for a VSM STORAGE OBTAIN or GETMAIN, one of the following: • The address of the storage successfully obtained, if you specified address; otherwise, zero. • The minimum storage requested, if the storage was not obtained - In an SSRV trace entry for a VSM STORAGE RELEASE or FREEMAIN: • The address of the storage to be released. – Under Unique-4: - Left 2 bytes under Unique-4: ASID of the target address space - Next byte under Unique-4: Reserved - Right byte under Unique-4: If the GETMAIN/FREEMAIN/STORAGE OBTAIN/STORAGE RELEASE is unconditional, an abend will be issued and the SSRV trace entry 3rd byte of Unique-4 will contain X'FF'. If the GETMAIN/ FREEMAIN/STORAGE OBTAIN/STORAGE RELEASE is conditional, no abend will be issued and the SSRV trace entry 3rd byte of Unique-4 will contain the actual return code from the storage service. • For an SSRV request to real storage management (SSID 14B), the IARV64 data is: – Under Unique-1 192 z/OS: MVS Diagnosis: Tools and Service Aids

221 System trace - Return Code/Abend Code (4 bytes) – Under Unique-2 - Reason Code (4 bytes) – Under Unique-3 specified - ALET on the IARV64 request (4 bytes) – Additional Unique depending on the IARV64 service that follows: fields - GETSTOR/GETSHARED/GETCOMMON • Origin address of the memory object - 8 bytes • Size of the memory object - 8 bytes • User token - 8 bytes - DETACH • Memory object start address (for MATCH=SINGLE requests) zeroes (for MATCH=USERTOKEN requests) - 8 bytes • User token - 8 bytes - PAGEFIX, PAGEUNFIX, PAGEOUT, PAGEIN, DISCARDDATA, CHANGEACCESS, PROTECT, UNPROTECT, PCIEFIX, PCIEUNFIX • Address of rangelist - 8 bytes • VSA from 1st range list entry - 8 bytes • Number of blocks from 1st range list entry - 8 bytes - CHANGEGUARD or convert start address (if • Memory object start (if ConvertStart was not specified), specified) - 8 bytes ConvertStart was • Number of segments to be converted - 8 bytes - SHAREMEMOBJ • Range list address - 8 bytes • VSA from 1st range list entry - 8 bytes • User token - 8 bytes • In an SSRV trace entry for global resource serialization with SSID (14C), the ISGENQ data is: – Under Unique-1: - Return address (4 bytes) – Under Unique-2: - Two bytes of flags as follows: Flags: 1 ... REQUEST=OBTAIN 01.. 10.. ... REQUEST=CHANGE REQUEST=RELEASE 11.. ... ..1. ... COND=YES ...0 0... SCOPE=STEP ...1 SCOPE=SYSTEM 0... ...1 1... SCOPE=SYSTEMS ... .1.. CONTROL=SHARED System trace 193

222 System trace 1 Flags: .0.. CONTROL=EXCLUSIVE ... RESERVEVOLUME=YES ... ..1. ... ...1 SYNCHRES=YES Flags: 2 SYNCHRES=NO ... 1... ... An exit changed the request .1.. ... ..1. WAITTYPE=ECB ... ...1 CONTENTIONACT=Fail ... 1... RESLIST=YES RNLs Changed Scope ... .1.. ... ..1. TEST=YES ... ...1 RNL=NO If the last bit of byte one and the Note: first bit of byte two are both off, the system default for SYNCHRES is used. field ISGENQ reason code (2 bytes): If a list request was provided, this will provide the reason code for the particular list entry in error. If more than one entry is in error, it will provide the highest reason code. – Under Unique-3: - Primary ASID (2 bytes) - The last 2 bytes may represent • X'FFFF' if an incomplete trace entry. An incomplete entry may be the result of a program check or an error was detected. The entry will be populated only with data we know we can filled in. To avoid confusion, having a X'FFFF' trust. Therefore, some flags may only be partially as a device number and having the reserve request bit off will inform the user the entry is incomplete. (2 bytes) • X'0000' if not a reserve request (2 bytes) • Device number if a reserve request (2 bytes) – Under Unique-4 first QNAME in the - First 4 bytes of the QNAME (4 bytes). For a list request, this represents the request. – Under Unique-5 first QNAME in the - Last 4 bytes of the QNAME (4 bytes). For a list request, this represents the request. • In an SSRV trace entry for global resource serialization with SSID (14D) the ENQ and SSID (14E) the DEQ, the information is: – Under Unique-1: - Return address (4 bytes) – Under Unique-2: z/OS MVS Data Areas - Refer to the PEL mapping for explanation of PELLAST and PELXFLG1. See in the z/OS Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/ zosInternetLibrary) . - 3 bytes of flags. 194 z/OS: MVS Diagnosis: Tools and Service Aids

223 System trace - Byte 1 is: 1 Flags: Exclusive request 0... ... STEP ... .0.. .1.. ... SYSTEM SYSTEM w/UCB .0.. ... SYSTEMS w/UCB 1... .0.. .1.. 0... SYSTEMS 0... ..1. An exit changed the request ...1 RNLs changed scope 1... .000 ... RET=NONE ... .001 RET=HAVE ..010 RET=CHNG ... .011 RET=USE ... ... .100 RET=ECB ... .101 RESERVED ... .110 RESERVED .111 ... RET=TEST • Byte 2 represents PELLAST – Bit 4 is ignored. • Byte 3 represents PELXFLG1 – Bit 8 is ignored. - ENQ return code (SSID14D) (1 byte) or DEQ return code (SSID 14E) (1 byte) will provide the Return Code for the particular list • If a list request was provided, this field entry in error. If more than one entry is in error, it will provide the highest Return Code. field is in the form X'Fn' where n signifies the first hex digit of the ABEND code. • If ABEND, this signifies a X'738' ABEND and X'F4' signifies a X'438' ABEND. For example, a X'F7' – Under Unique-3: - Primary ASID (2 bytes) - The last 2 bytes may represent • X'FFFF' if an incomplete trace entry. An incomplete entry may be the result of a program check or an error was detected. The entry will be populated only with data we know we can trust. Therefore, some flags may only be partially filled in. To avoid confusion, having a X'FFFF' as a device number and having the reserve request bit off will inform the user the entry is incomplete. (2 bytes) • X'0000' if not a reserve request (2 bytes) • Device number if a reserve request (2 bytes) – Under Unique-4 - First 4 bytes of the QNAME (4 bytes). For a list request, this represents the first QNAME in the request. – Under Unique-5 System trace 195

224 System trace - Last 4 bytes of the QNAME (4 bytes). For a list request, this represents the first QNAME in the request. • For an SSRV request to UNIX system services, the data is: – Under Unique-1 The address of the PPRT control block – Under Unique-2: first parameter, For an 8 byte parameter of an AMODE 64 caller, the low four bytes of the first otherwise the first four bytes of the parameter, if available. Zero, if parameter not available. – Under Unique-3 For an 8 byte parameter of an AMODE 64 caller, the low four bytes of the second parameter, otherwise the first four bytes of the second parameter, if available. Zero, if parameter not available. – Under Unique-4 For an 8 byte parameter of an AMODE 64 caller, the low four bytes of the third parameter, first four bytes of the third parameter, if available. Zero, if parameter not available. otherwise the • For an SSRV request to DFSMS Media Manager, the data is: – Under Unique-1 The address of the IOSB control block – Under Unique-2 High order word of MMRE address (Media Manager Request Element) or zero – Under Unique-3 Low order word of MMRE address – Under Unique-4 High order word of MMIB address (Media Manager Information Block) or zero – Under Unique-5 Low order word of MMIB address • For an SSRV request to real storage management (SSID 151), the CHANGKEY data is: – Under Unique-1 byte of the first page of the virtual storage area whose key is to be The address of the first changed – Under Unique-2 The address of the first byte of the last page of the virtual storage area whose key is to be changed – Under Unique-3 - Byte 0: If at least one page in the range was GETMAIN assigned, bits 0 - 4 contain the original undefined; otherwise, byte 0 contains storage key and fetch protection status, and bits 5 - 7 are zero. - Byte 1: Bits 0 - 4 contain the new storage key and fetch protection status, and bits 5 - 7 are undefined. - Bytes 2 - 3: Diagnostic flags. – Under Unique-4 Diagnostic flags • In an SSRV trace entry for CONFIGURE CPU with SSID (1050), the information is: 196 z/OS: MVS Diagnosis: Tools and Service Aids

225 System trace – Under Unique-1 Contents of an internal return code field. – Under Unique-2 Shows which 8-byte block of CSD_CPU_ALIVE. – Under Unique-4 through Unique-5 The 8-byte contents of CSD_CPU_ALIVE mask at the 8-byte block offset in Unique-2 as updated by the CF CPU command. PSACLHS- of the PSA. This field will contain desc---- : String for the current lock held, from the PSACLHS field descriptive text for some SSRV trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. PSACLHSE Blank. PSALOCAL desc--- of the PSA. This field will : Locally locked address space indicator, from the PSALOCAL field contain descriptive text for some SSRV trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. PASD : Primary ASID (PASID) at trace entry. This will contain descriptive text for some SSRV trace pasd field entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. SASD field will contain descriptive text for some SSRV sasd : Secondary ASID (SASID) at trace entry. This trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. Format Time : Time-of-day (TOD) clock value when system trace created the trace entry. timestamp--------- for TIME. If TIME was not the default format is specified specified, The value is in the format that was TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. SUSP trace entries An SUSP trace entry represents a request for a suspend type lock when the requestor had to be suspended because the lock was not available. PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format ------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- SUSP return-- rb-addr- suspndid rel-addr psaclhs- psalocal timestamp--------- cp-- ssrbaddr psaclhse PR pr : Identifier of the processor that produced the TTE. ASID : Home address space identifier (ASID) associated with the TTE. home WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). System trace 197

226 System trace Ident as follows: The TTE identifier, SUSP Lock suspension CD/D Blank PSW----- Address- return-- : Caller's return address Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • : Address of the suspended request block (RB) rb-addr- : Address associated with the type of lock suspension: rel-addr • – 0: For LOCL lock – ASCB address: For CML lock – Lockword address: For CEDQ, CLAT, CMS, and CSMF locks : Address of the suspended service request block (SSRB) • ssrbaddr : Identifier suspndid • of the lock suspension type: CEDQ, CLAT, CML, CMS, CSMF, or LOCL PSACLHS- psaclhs- : String for the current lock held, from the PSACLHS field of the PSA. PSACLHSE : Extended string for the current lock held, from the PSACLHSE psaclhse field of the PSA. PSALOCAL : Locally locked address space indicator, from the PSALOCAL of the PSA. psalocal field PASD Blank SASD Blank Time Format timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. specified for TIME. If TIME was not specified, the default format is The value is in the format that was TIME(HEX). CP-- : Four hex digits of the processor model dependent information, which is intended to identify the cp-- physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. SVC, SVCE, and SVCR trace entries These trace entries represent a supervisor event: • An SVC trace entry is for processing of a Supervisor Call (SVC) instruction • An SVCE trace entry is for an error during processing of an SVC instruction 198 z/OS: MVS Diagnosis: Tools and Service Aids

227 System trace • An SVCR trace entry is for return from SVC instruction processing ------- PR ASID Wu-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Format CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- SVC code svc-old- pswaddr- gpr15--- gpr0---- gpr1---- timestamp--------- cp-- svc-old- pswctrl- pr home wu-addr- SVCE code svc-old- pswaddr- gpr15--- gpr0---- gpr1---- psaclhs- psalocal pasd sasd timestamp--------- cp-- svc-old- pswctrl- env-data psaclhse pr home wu-addr- SVCR code ret-new- pswaddr- gpr15--- gpr0---- gpr1---- timestamp--------- cp-- ret-new- pswctrl- PR Identifier of the processor that produced the TTE. : pr ASID identifier (ASID) associated with the TTE. home : Home address space WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident The TTE as follows. An asterisk before SVC, SVCE, or SVCR indicates that the SVC is for an identifier, abend (SVC D) and the abend is not for a normal end of task, that is, bit X'08' in the leftmost byte of register 1 (in the Unique-3 column) is not on. SVC Supervisor call (SVC) interruption SVCE SVC error SVCR SVC return CD/D : code • For SVC and SVCE, and for SVCR when not X'FFxx': SVC number. • For SVCR when X'FF00': completion of the system-initiated processing involved with ATTACH, LINK, SYNCH, or XCTL processing before the target routine getting control. • For SVCR when X'FF01': initial system-initiated processing involved with XCTL processing prior to the target routine getting control. PSW----- Address- The z/Architecture 128-bit old PSW, which appears on two lines: : Two words, containing the 64-bit address portion of the PSW pswaddr • • pswctrl : Two words, containing the 64-bit "control" portion of the PSW field varies, depending on the type of supervisor event and the value of code : The contents of this ret-new- pswaddr / ret-new- pswctrl : • – For SVC and SVCE, and for SVCR when code is not X'FFxx': Program status word (PSW) to receive control when the SVC is dispatched again. code is X'FF00': PSW of the target routine that will get control as a result of – For SVCR when ATTACH, LINK, SYNCH, or XCTL processing. – For SVCR when X'FF01': PSW of a system routine that will get control as a result of initial system processing involved with XCTL. System trace 199

228 System trace • svc-old- pswaddr / svc-old- pswctrl : SVC old PSW Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 : General registers 15, 0, and 1, except for SVCE, other than SVCE D gpr15--- gpr0---- gpr1---- (ABEND macro), for which gpr15 contains one of the following values: - issuer of SVC was in SRB mode • 00000004 00000008 - issuer of SVC was locked • • 0000000C - issuer of SVC was disabled - issuer of SVC was in cross memory mode • 00000010 • 00000014 - issuer of SVC was in EUT FRR mode • 00000018 - issuer of SVC was in AR mode Characteristics of failing environment, from the PSAMODEW of the PSA. env-data: field PSACLHS- : For SVCE, string for the current lock held, from the PSACLHS of the PSA. This field psaclhs- field will contain descriptive text for some SVC trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. PSACLHSE : For SVCE, extended string for the current lock held, from the PSACLHSE field of the PSA. psaclhse PSALOCAL : For SVCE, locally locked address space indicator, from the PSALOCAL field of the PSA. This psalocal will contain descriptive text for some SVC trace entries. The descriptive text will not appear in field SNAP, SYSUDUMP, or SYSABEND output. PASD pasd field will contain descriptive text for some SVC trace : Primary ASID (PASID) at trace entry. This entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. SASD sasd will contain descriptive text for some SVC : Secondary ASID (SASID) at trace entry. This field trace entries. The descriptive text will not appear in SNAP, SYSUDUMP, or SYSABEND output. Time Format timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. specified for TIME. If TIME was not specified, the default format is The value is in the format that was TIME(HEX). CP-- : Four hex digits of the processor model dependent information, which is intended to identify the cp-- physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. SYNS and SYNE trace entries These trace entries represent a synchronous I/O (zHyperLink) event: • A SYNS trace entry represents the start of a synchronous I/O operation. • A SYNE trace entry represents the end of a synchronous I/O operation. Format ------- PR ASID Wu-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr asid wu-addr- SYNS dev t dd op pfid iosbaddr len1len2 rr funchand pr asid wu-addr- SYNE dev t dd op pfid iosbaddr len1len2 rr funchand rc rcq 200 z/OS: MVS Diagnosis: Tools and Service Aids

229 System trace PR Identifier pr of the processor that produced the TTE. : ASID identifier (ASID) related to the I/O. home : Home address space WU-Addr- wu-addr- : Address of the task control block (TCB) for the current task or the work element block (WEB). Ident identifier, The TTE as follows: SYNS Start of synchronous (zHyperLink) I/O operation. SYNE End of synchronous (zHyperLink) I/O operation. An asterisk before SYNE indicates that the operation did not complete successfully. CD/D dev : The device number associated with the request. PSW----- Address- The z/Architecture 128-bit old PSW, which appears on two lines: t : The type of synchronous I/O request: • I An initiate type request. An initiate request is used when multiple synchronous I/O requests need to be performed in parallel. There is one initiate request issued for each synchronous I/O to be started in parallel. Normally, the system traces only the start of an initiate request (SYNS event). However, if the initiate request fails, the end of the initiate request is also traced (SYNE event). C A complete type request. A complete request is used to wait for previously initiated requests to complete. There is one complete request issued for each synchronous I/O that was initiated successfully. The system traces only the end of the complete request (SYNE event). O A standalone (only) type request. The system traces the start (SYNS event) and end (SYNE event) of a standalone request. dd : Driver identifier associated with the I/O • op • : Operation to be performed : PCIE function • pfid identifier • funchand : PCIE function handle Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 : IOSB address for the I/O request. • iosbaddr • len1 : First data length field len2 : Second data length field • rr : Record count • • rc : Response code rcq : Response code qualifier • Format Time timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. The value is in the same format as the time stamp on logrec data set records. System trace 201

230 System trace CP-- cp-- : Two hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. TIME trace entries A TIME trace entry represents a dynamic time-of-day (TOD) clock adjustment by the timer services component. Format ------- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- TIME code word1--- word2--- data---- pasd sasd timestamp--------- cp-- data---- data---- data---- PR Identifier of the processor that produced the TTE. pr : ASID : Home address space (ASID) associated with the TTE. home identifier WU-Addr- : Address of the task control block (TCB) for the current task or the work element block wu-addr- (WEB). Ident The TTE identifier, as follows: TIME Timer service CD/D : Contains a value of 1, indicating that word1 and word2 contain the amount of time that the code system advances the time-of-day (TOD) clock when the TOD clock and the External Time Reference (ETR) get out of synchronization. PSW----- Address- : Return address of the program that issued the PTRACE macro return Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 word1, word2 : For a code value of 1, the amount of time that the system advances the TOD clock when the TOD clock and the ETR get out of synch. PSACLHS- Blank PSACLHSE Blank PSALOCAL Blank PASD : Primary ASID (PASID) at trace entry. pasd SASD sasd : Secondary ASID (SASID) at trace entry. Time Format timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. specified for TIME. If TIME was not specified, the default format is The value is in the format that was TIME(HEX). 202 z/OS: MVS Diagnosis: Tools and Service Aids

231 System trace CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. USRn trace entries A USRn trace entry represents processing of a PTRACE macro in an authorized program. The trace entry contains data from the macro. Format ------- PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time CP-- Unique-4 Unique-5 Unique-6 PSACLHSE pr home wu-addr- USRn return-- data---- data---- data---- pasd sasd timestamp--------- cp-- data---- data---- data---- pr home wu-addr- USRn return-- idc- rbc data---- data---- pasd sasd timestamp--------- cp-- data---- data---- data---- PR pr of the processor that produced the TTE. : Identifier ASID identifier (ASID) associated with the TTE. home : Home address space WU-Addr- : Address of the task control block (TCB) for the current task or the work element block wu-addr- (WEB). Ident identifier, The TTE as follows: USRn User event. n is a number from X'0' to X'F'. CD/D Blank PSW----- Address- return : Return address of the program that issued the PTRACE macro Unique-1/Unique-2/Unique-3 Unique-4/Unique-5/Unique-6 • : User-defined data from the PTRACE macro data---- : PTRACE • count idc- identification rbc : Relative byte count • PSACLHS- field contains descriptive text for some SVC, SSRV, and PC trace entries. The descriptive text will This not appear in SNAP/SYSUDUMP/SYSABEND output. PSACLHSE Blank. PSALOCAL This field contains descriptive text for some SVC, SSRV, and PC trace entries. The descriptive text will not appear in SNAP/SYSUDUMP/SYSABEND output. PASD : Primary ASID (PASID) at trace entry. This field contains descriptive text for some SVC, SSRV, pasd and PC trace entries. The descriptive text will not appear in SNAP/SYSUDUMP/SYSABEND output. System trace 203

232 System trace SASD field sasd contains descriptive text for some SVC, SSRV, : Secondary ASID (SASID) at trace entry. This and PC trace entries. The descriptive text will not appear in SNAP/SYSUDUMP/SYSABEND output. Time Format timestamp--------- : Time-of-day (TOD) clock value when system trace created the trace entry. specified, The value is in the format that was specified for TIME. If TIME was not the default format is TIME(HEX). CP-- cp-- : Four hex digits of the processor model dependent information, which is intended to identify the physical CP that made the trace entry. CP is only provided when formatting SYSTRACE under IPCS. CP is not provided for SYSUDUMP, SYSABEND, or SNAP. Multiple trace entries for a user event A single user event appears in more than one trace entry if the PTRACE macro requests recording of more than 5 fullwords of trace data. For example, the following PTRACE macro requests recording of 11 fullwords of trace data: PTRACE TYPE=USER3,REGS=(2,12),SAVEAREA=STANDARD For this macro, system trace places three entries in the trace table. The entries contain the following: • The first entry contains the 5 fullwords of trace data in registers 2 through 6. • The second entry contains the 5 fullwords of trace data in registers 7 through 11. • The third entry contains the fullword of trace data in register 12. If the program issuing the PTRACE macro is interrupted, the three trace entries may not be consecutive in the trace table. The multiple entries contain continuation information as the data for Unique-1. The format of the continuation information is as follows: nnnn hhh nnnn identification count. This is a hexadecimal number assigned by PTRACE to all entries for The PTRACE one macro processing. hhh The byte offset, in hexadecimal, of the next byte of trace data, which is under Unique-2. For the first entry, the offset is X'000'. For the second entry, the offset is X'014'. For the third entry, the offset is X'028'. For example, Figure 73 on page 204 shows three trace entries from the preceding PTRACE macro. PR ASID WU-Addr- Ident CD/D PSW----- Address- Unique-1 Unique-2 Unique-3 PSACLHS- PSALOCAL PASD SASD Time Hex---------- CP-- Unique-4 Unique-5 Unique-6 PSACLHSE 01 000C 00AFF090 USR3 81A007B6 003D 000 00000001 00000002 000C 000C 9DAA507461CB3E02 cp-- 00000003 00000004 00000005 01 000C 00AFF090 USR3 81A007B6 003D 014 00000006 00000007 000C 000C 9DAA507461CB3E02 cp-- 00000008 00000009 0000000A 01 000C 00AFF090 USR3 81A007B6 003D 028 0000000B 000C 000C 9DAA507461CB3E02 cp-- Figure 73: Example: Three trace entries from the PTRACE macro 204 z/OS: MVS Diagnosis: Tools and Service Aids

233 Master trace Chapter 9. Master trace Master trace maintains a table of all recently issued system messages. This creates a log of external system activity; the other traces log internal system activity. Master trace is activated automatically at system initialization, but you can turn it on or off using the TRACE command. Master trace can help you diagnose a problem by providing a log of the most recently issued system messages. For example, master trace output in a dump contains system messages that may be more pertinent to your problem than the usual component messages issued with a dump. The following sections contain more information about how to request, customize, and use the master trace. Master trace and the hardcopy log Master trace lists the same messages that the system saves automatically and permanently in the hardcopy log, but the entries are maintained in a wraparound table, which means that master trace overwrites old entries when the table is full. You can use master trace data in a dump as a substitute for the hardcopy log when the dump contains the required messages. If the master trace table wraps and overwrites the messages related to your problem before you can request a dump, the dump will not contain useful messages. Consider the following conditions: • The master trace table wraps at 9 p.m. • The system issues messages related to a problem between 9:10 and 9:20 p.m. • The system issues an SVC dump at 9:30 p.m. In this example, the messages pertinent to the problem will be in the master trace data in the dump, since the problem occurred between the time the trace table wrapped and the time the dump was issued. To print the system-managed data set containing the hardcopy log, use the JESDS parameter of the OUTPUT JCL statement. Customizing master trace At initialization, the master scheduler sets up a master trace table of 24 kilobytes. A 24-kilobyte table holds about 336 messages, assuming an average length of 40 characters. You can change the size of the master trace table or specify that no trace table be used by changing the parameters in the SCHEDxx parmlib member. You can also change the size of the table using the TRACE command. For example, to change the trace table size to 36 kilobytes, enter: TRACE MT,36K z/OS MVS Initialization and Tuning Reference for more information about the SCHEDxx member. See Requesting master trace Start, change, or stop master tracing by entering a TRACE operator command from a console with master authority. For example, to start the master tracing: TRACE MT © Copyright IBM Corp. 1988, 2017 205

234 Master trace To stop master tracing: TRACE MT,OFF You can also use the TRACE command to obtain the current status of the master trace. The system displays the status in message IEE839I. For example, to ask for the status of the trace, enter: TRACE STATUS In the output shown in Figure 74 on page 206 , master tracing is active with a trace table of 140 kilobytes, as indicated by . MT=(ON,140K) TRACE STATUS IEE839I ST=(ON,0500K,01000K) AS=ON BR=OFF EX=ON MT=(ON,140K) ISSUE DISPLAY TRACE CMD FOR SYSTEM AND COMPONENT TRACE STATUS Figure 74: Example: TRACE STATUS output If you want to check the current status of system, master, and component tracing, use the DISPLAY TRACE command. The system displays the status in message IEE843I. For example, to ask for the status of the three traces, enter: DISPLAY TRACE In Figure 75 on page 206 , master tracing is active with a master trace table of 140 kilobytes, as indicated by MT=(ON,140K). DISPLAY TRACE IEE843I 15.17.14 TRACE DISPLAY 564 SYSTEM STATUS INFORMATION MT=(ON,140K) ST=(ON,0500K,01500K) AS=ON BR=OFF EX=ON COMPONENT MODE COMPONENT MODE COMPONENT MODE COMPONENT MODE -------------------------------------------------------------- SYSGRS ON SYSSPI OFF SYSSMS OFF SYSDLF MIN SYSOPS ON SYSXCF ON SYSLLA MIN SYSXES ON SYSAPPC ON SYSRSM ON SYSAOM OFF SYSVLF MIN CTTX MIN Figure 75: Example: DISPLAY TRACE output See for details about the TRACE and DISPLAY operator commands. See z/OS z/OS MVS System Commands MVS System Messages, Vol 7 (IEB-IEE) for information about IEE839I and IEE843I messages. Receiving master trace Master trace writes trace data in the master trace table, which resides in the master scheduler address space (ASID 1). You can obtain master trace data in a stand-alone, SVC, or unformatted dump, if the dump options list includes TRT to request trace data. Format the master trace data by specifying the IPCS VERBEXIT MTRACE subcommand or using the IPCS Trace Processing selection panel. Table 34 on page shows the dumps that contain master trace data. 206 Table 34: Summary of dumps that contain master trace data Dump Master trace data in the dump? Default Stand-alone dump Default SVC dump for SDUMP or SDUMPX macro 206 z/OS: MVS Diagnosis: Tools and Service Aids

235 Master trace Table 34: Summary of dumps that contain master trace data (continued) Dump Master trace data in the dump? Default SVC dump for DUMP operator command SVC dump for SLIP operator command with ACTION=SVCD, Default ACTION=STDUMP, ACTION=SYNCSVCD, or ACTION=TRDUMP Any unformatted dump customized to exclude trace data Yes, Request SDATA=TRT ABEND dump to SYSABEND Not available ABEND dump to SYSMDUMP Not available Not available ABEND dump to SYSUDUMP SNAP dump Not available See z/OS MVS IPCS Commands for information about the VERBEXIT MTRACE subcommand. See z/OS MVS for information about the panel. IPCS User's Guide Reading master trace data The following topics in this section show the format of master trace entries: • “Master trace output formatted in a dump” on page 207 • “Master trace table in storage” on page 208 Master trace output formatted in a dump The entries in the master trace table are listed in first-in, first-out (FIFO) order, which resembles a hardcopy log. The messages might not be in chronological order because presumably the messages were not put in the master trace table in the order the messages were issued. shows an example of master trace data in a dump that is formatted by IPCS. The Figure 76 on page 208 subcommand that is issued on the IPCS Subcommand Entry panel: VERBEXIT MTRACE Master trace 207

236 Master trace *** MASTER TRACE TABLE *** |------------------------ MESSAGE DATA TAG IMM DATA ------------------>| 0001 00000013 N C040000 SCOTT01 03147 21:24:22.76 00000000 $HASP468 JES2 INIT DECK PROCESSED 0001 00000013 NC0000000 SCOTT01 03147 21:24:22.77 INTERNAL 00000290 REPLY 0002,N1 AUTH=(NET=YES),NAME=SCOTT01 0001 00000013 W C040000 SCOTT01 03147 21:24:22.76 00000000 *0002 $HASP469 REPLY PARAMETER STATEMENT, CANCEL, OR END 0001 00000009 NRC040000 SCOTT01 03147 21:24:22.77 INTERNAL 00000090 IEE600I REPLY TO 0002 IS;N1 AUTH=(NET=YES),NAME=SCOTT01 0001 00000013 N C040000 SCOTT01 03147 21:24:22.77 00000290 $HASP466 CONSOLE STMT 126 N1 AUTH=(NET=YES), NAME=SCOTT01 0001 00000013 N C040000 SCOTT01 03147 21:24:22.77 00000090 $HASP826 NODE(1) NAME=SCOTT01,AUTH=(DEVICE=YES, JOB=YES, 0001 00000013 N C040000 SCOTT01 03147 21:24:22.77 00000090 $HASP826 NET=YES,SYSTEM=YES),TRANSMIT=BOTH, 0001 00000013 N C040000 SCOTT01 03147 21:24:22.77 00000090 $HASP826 RECEIVE=BOTH,HOLD=NONE,PENCRYPT=NO, 0001 00000013 N C040000 SCOTT01 03147 21:24:22.78 00000090 $HASP826 ENDNODE=NO,REST=0,SENTREST=ACCEPT, 0001 00000013 N C040000 SCOTT01 03147 21:24:22.78 00000090 $HASP826 COMPACT=0,LINE=0,LOGMODE=,LOGON=0, 0001 00000013 N C040000 SCOTT01 03147 21:24:22.78 00000090 $HASP826 PASSWORD=(VERIFY=(NOTSET), SEND=(NOTSET)), 0001 00000013 N C040000 SCOTT01 03147 21:24:22.78 00000090 $HASP826 PATHMGR=YES,PRIVATE=NO,SUBNET=, TRACE=NO 0001 00000013 NC0000000 SCOTT01 03147 21:24:22.78 INTERNAL 00000290 REPLY 0003,END 0001 00000013 W C040000 SCOTT01 03147 21:24:22.78 00000000 *0003 $HASP469 REPLY PARAMETER STATEMENT, CANCEL, OR END 0001 00000009 NRC040000 SCOTT01 03147 21:24:22.78 INTERNAL 00000090 IEE600I REPLY TO 0003 IS;END 0001 00000013 N C040000 SCOTT01 03147 21:24:22.78 00000290 $HASP466 CONSOLE STMT 127 END 0001 00000013 N 0000000 SCOTT01 03147 21:24:22.79 00000290 IEF196I IEF285I CONSOLE.OSV142.PARMLIB KEPT 0001 00000013 N 0000000 SCOTT01 03147 21:24:22.79 00000290 IEF196I IEF285I VOL SER NOS= D72666. 0001 00000013 N 0000000 SCOTT01 03147 21:24:22.79 00000290 IEF196I IEF285I SYS1.PARMLIB KEPT 0001 00000013 N 0000000 SCOTT01 03147 21:24:22.79 00000290 IEF196I IEF285I VOL SER NOS= D72666. Figure 76: Example of master trace data in a dump formatted by IPCS The meaning of the highlighted text in the preceding example is as follows: TAG A halfword that contains the identity of the caller. TAG can be: Tag Caller 000 Reserved 001 WTO SVC 002 Master scheduler 003 Trace command are defined in the macro, IEZMTPRM, which maps the parameter list. Current identifiers IMM DATA defined by the caller. The significance of the A fullword of immediate data, consisting of the 32 bits defined by the caller. immediate data is MESSAGE DATA The message. If a problem occurs during processing, the line that follows the message indicates the problem. Master trace table in storage This topic describes master trace data as it is recorded in the master trace table in the master scheduler address space. You can use this information to write your own formatting or analysis routines for master trace information. Master trace places entries in FIFO order. Thus, a current entry is in front of the older entries. When the table is full, master trace wraps, and resumes recording entries at the end of the table. Note that the messages may not be in chronological order because the messages may not be put in the master trace table in the order in which they are issued. 208 z/OS: MVS Diagnosis: Tools and Service Aids

237 Master trace You can locate the master trace table from the communication vector table (CVT), as shown in Table 35 on page 209 . Table 35: How to locate master trace table from CVT Find the following address: field: At the location: In CVTMSER CVT+X'94' IEEBASEA (master scheduler resident data area) BAMTTBL IEEBASEA+ X'8C' Start of the master trace table The unformatted master trace table in the master scheduler address space contains a header and, for fields each message logged in the table, an entry. The following two topics show the in the header and an entry. The master trace table header and entries are mapped by the MTT mappings in the IEEZB806 z/OS MVS Data Areas in the z/OS Internet library (www.ibm.com/servers/ macro, which can be found in resourcelink/svc00100.nsf/pages/zosInternetLibrary) . Header in the master trace table START TABLE ID CURRENT END WRAP TIME LENGTH SUBPOOL RESERVED1 DATA LENGTH RESERVED2.. WRAP POINT . TABLE ID containing MTT . MTT is an eye-catcher to mark the beginning of the master trace A fullword field table. CURRENT field containing the address of the current (most recently stored) entry. A fullword START A fullword first byte of the trace area. field containing the address of the END field first byte beyond the end of the trace area. A fullword containing the address of the SUBPOOL field A one-byte containing the number of the subpool in which this table resides. LENGTH A three-byte field containing the length, in bytes, of the table header and the area containing the specified on the TRACE command. entries. This length is the default table size or the size WRAP TIME A double word containing a time, either when the table was initialized or when the last table wrap field occurred. The time is in the XXHH:MM:SS.T form: XX Possible values can be IT or WT. IT Indicates the time that the table was initialized. WT Indicates the time the table last wrapped. HH hours MM minutes Master trace 209

238 Master trace SS seconds T tenths of a second WRAP POINT containing the address of the byte of the last entry stored before the most recent A fullword first field table wrap. Note: This address is initialized to zero and remains zero until the first table wrap. RESERVED1 field. A fullword reserved DATA LENGTH A fullword field containing the length, in bytes, of the data area part of the table. RESERVED2 A 21-word field. Entry in the master trace table TAG LEN CALLER-PASSED DATA FLAGS IMM DATA Entry header 10-byte header for the entry. FLAGS A halfword that contains the flags that are set by the caller in the parameter list that is passed to master trace. TAG A halfword that contains the identity of the caller. TAG can be: Tag Caller 0000 Reserved 0001 WTO SVC 0002 Master scheduler 0003 Trace command are Current in the macro, IEZMTPRM, which maps the parameter list. identifiers defined IMM DATA A fullword that contains 32 bits defined by the caller. Master trace stores these bits in the table significance of IMMEDIATE DATA is defined by the caller; likely without checking them for validity. The values are a counter, a control block address, or flags describing the passed data. LEN A halfword that contains the length of the caller-passed data. CALLER-PASSED DATA A variable-length field that contains the data that is provided by the caller. specifies the length of the caller-passed data as The master trace table entries vary in length. If the caller zero, the entry in the master trace table consists of only the 10-byte header. 210 z/OS: MVS Diagnosis: Tools and Service Aids

239 Generalized Trace Facility Chapter 10. The Generalized Trace Facility (GTF) The generalized trace facility (GTF) is a service aid you can use to record and diagnose system and program problems. GTF is part of the MVS system product, and you must explicitly activate it by entering a command. START GTF Use GTF to record a variety of system events and program events on all of the processors in your installation. If you use the IBM-supplied defaults, GTF lists many of the events that system trace lists, showing minimal data about them. However, because GTF uses more resources and processor time than system trace, IBM recommends that you use GTF when you experience a problem, selecting one or two events that you think might point to the source of your problem. This will give you detailed information that can help you diagnose the problem. You can trace combinations of events, specific incidences of one program events that the GTRACE macro generates. For example, you can type of event, or user-defined trace: • Channel programs and associated data for start and resume subchannel operations, in combination with I/O interruptions • I/O interruptions on one particular device • System recovery routine operations as options in a parmlib member. You can use the IBM supplied The events that GTF traces are specified parmlib member or provide your own. Details of GTF operation, which include storage that is needed, in a cataloged procedure in SYS1.PROCLIB. where output goes, and recovery for GTF are defined GTF can trace system and program events both above and below 16 megabytes. For each event it traces, GTF produces trace records as its output. You can have GTF direct this output to one of the following places: • A trace table in virtual storage. • A data set on a tape or direct access storage device (DASD). Choose a trace table for your GTF output when maintaining good system performance is very important to your installation. The trace table cannot contain as much GTF trace data as a data set, but will not impact performance as much as a data set because there is no I/O overhead. fit Choose a data set or sets when you want to collect more data than will in a trace table. Writing trace data to a data set does involve I/O overhead, so choosing this option will impact system performance more than a trace table. GTF can use only one table in virtual storage, but can use up to 16 data sets. If you specify more than one data set, all of them must reside on devices of the same class, tape, or DASD. z/OS DFSMSdfp Other components, such as OPEN/CLOSE/EOV and VSAM have special GTF support. See Diagnosis for complete details. GTF and IPCS z/OS MVS IPCS User's Guide and You can use IPCS to merge, format, display, and print GTF output. See for information about the COPYTRC, GTFTRACE, and MERGE subcommands, z/OS MVS IPCS Commands and the trace processing option of the IPCS dialog. GTF and the GTRACE macro You can use GTF in combination with the GTRACE macro, provided you activate GTF with TRACE=USR. Then, your programs can issue GTRACE macros to generate trace records, which GTF can store in the z/OS MVS Programming: Authorized Assembler Services Reference EDT-IXG for information trace table. See about coding the GTRACE macro. © Copyright IBM Corp. 1988, 2017 211

240 Generalized Trace Facility GTF and system trace You can use GTF in combination with system trace. System trace records predetermined system events, and provides minimal details about each event. Supplement system trace information by selecting GTF options to provide more detailed information about system and user events. For further specific information about system trace, see Chapter 8, “System trace,” on page 153 . Using IBM defaults for GTF IBM supplies both a SYS1.PARMLIB (also called parmlib) member that contains predefined GTF trace options and a cataloged procedure for GTF, should you want to use IBM's defaults for GTF operation. You can override some of the default options by specifying certain parameters on the START command that activates GTF. The IBM-supplied parmlib member of GTF trace options IBM supplies the GTFPARM parmlib member, which contains the GTF trace options shown in Figure 77 on page 212 TRACE=SYSM,USR,TRC,DSP,PCI,SRM Figure 77: IBM-Supplied GTFPARM parmlib member Briefly, the following options request GTF traces. For more details about these trace options, see “GTF trace options” on page 226 . SYSM Selected system events USR User data that the GTRACE macro passes to GTF TRC Trace events associated with GTF DSP Dispatchable units of work PCI Program-controlled I/O interruptions SRM Trace data associated with the system resource manager (SRM) The IBM-supplied cataloged procedure IBM supplies the GTF cataloged procedure, which resides in SYS1.PROCLIB. The cataloged procedure defines GTF operation, output location, recovery facilities, trace output data sets, and the parmlib illustrates the content of the IBM member that contains GTF options and defaults. Figure 78 on page 212 supplied cataloged procedure. //GTFNEW PROC MEMBER=GTFPARM //IEFPROC EXEC PGM=AHLGTF,PARM='MODE=EXT,DEBUG=NO,TIME=YES', // TIME=1440,REGION=4M //IEFRDER DD DSNAME=SYS1.TRACE,UNIT=SYSDA,SPACE=(TRK,20), // DISP=(NEW,KEEP) //SYSLIB DD DSN=SYS1.PARMLIB(&MEMBER),DISP=SHR Figure 78: IBM-Supplied GTF Cataloged Procedure 212 z/OS: MVS Diagnosis: Tools and Service Aids

241 Generalized Trace Facility The statements in this cataloged procedure are: PROC the GTF cataloged procedure. Defines EXEC PGM=AHLGTF Calls for the system to run program AHLGTF. PARM='MODE=EXT,DEBUG=NO,TIME=YES', The parameters selected specify that GTF direct trace data to a data set on tape or DASD, attempt recovery if it encounters an error, and give every trace record a time stamp. See the explanation for the EXEC statement under “Setting up a cataloged procedure” on page 214 for detailed information. TIME=1440 The amount of time, in seconds, that GTF will remain active. REGION=4M Specifies the maximum size of the storage that GTF can use. IEFRDER DD Defines the trace output data set: • The common data set name is SYS1.TRACE. • The data set can reside on a DASD if: – The primary space amount is large enough for the data set to contain at least 20 physical blocks. After completely the primary space, GTF will overlay previously written records with new filling trace records, starting at the beginning of the output data set. – The set is in basic format, large format sequential, or does not have a DSORG value. – The set is a VSAM linear data set with a control interval size (CISIZE) of 32 KB. fills the • The data set can reside on a tape if the tape has IBM standard labels or no labels. If GTF volume, the system will request another volume to continue writing. GTF does not overlay the trace records of this GTF written instance. Restrictions to IEFRDER: • A DSNTYPE=LARGE data set can only be used if the trace is both written and processed on an V1R7 system or a later release. SYSLIB DD the IBM-supplied GTFPARM parmlib member that contains GTF trace options and their Defines default values. Multiple instances of GTF can be active at the same time. Each instance of GTF requires a unique trace dataset. The default trace dataset in the cataloged procedure can be overridden by specifying a different data set on the START command, or by setting up a cataloged procedure for each instance of GTF to be activated. Customizing GTF You can customize GTF to the needs of your installation by either overriding IBM's defaults through the START GTF command, or providing your own parmlib member and cataloged procedure for GTF. Customize GTF in one of the following ways: Predefine the GTF trace options in a parmlib or data set member. See “Defining GTF trace options” on • . page 214 . • Set up a cataloged procedure. See “Setting up a cataloged procedure” on page 214 • Override the defaults in the IBM supplied GTF cataloged procedure using the START command. See “Using the START command to invoke GTF” on page 220 . • Determine how much storage GTF needs for the trace options you choose. See “Determining GTF's . storage requirements” on page 218 The Generalized Trace Facility (GTF) 213

242 Generalized Trace Facility • Specify trace options directly through the console after entering the START command. See “Specifying or changing GTF trace options through system prompting” on page 221 . GTF trace options Defining If you supply your own parmlib member or data set containing GTF trace options, you can select any of the options listed in “GTF trace options” on page 226 . Each instance of GTF can be activated with the same or different set of options. predefined trace options does not have to reside in the parmlib member. GTF will The member containing accept any data set specified in the SYSLIB DD statement of the cataloged procedure, or in the START command, as long as that data set's attributes are compatible with those of SYS1.PARMLIB. Setting up a cataloged procedure Set up your own GTF cataloged procedure when you want to control details of GTF operation such as: • Amount of storage needed for tracing • Recovery for GTF • Number and type of trace output data sets. If you choose to supply your own cataloged procedure, include the following statements: PROC Defines your cataloged procedure. EXEC PGM=AHLGTF Calls for the system to run program AHLGTF. parm, parm ...' PARM=' Options specified on the PARM parameter specify where GTF writes trace data and the amount of parm can be any of storage needed for GTF to collect and save trace data in various dump types. the following: EXT|DEFER} MODE={INT| 40K} SADMP={nnnnnnK|nnnnnnM| 40K} SDUMP={nnnnnnK|nnnnnnM| NOPROMPT 0K} ABDUMP={nnnnnnK|nnnnnnM| BLOK={nnnnn|nnnnnK|nnnnnM| 40K} SIZE = {nnnnnnK|nnnnnnM| 1024K} TIME=YES NO} DEBUG={YES| MODE={INT| EXT |DEFER} Defines where GTF writes the trace data. MODE=INT directs data to a trace table in virtual storage, and MODE=EXT directs data to a data set on tape or DASD. If MODE=INT, each instance of GTF will direct the trace data to a separate trace table in virtual define GTF output data sets. Choose this storage, and will ignore any DD statements that option when it is very important to you to maintain good system performance while GTF runs. The trace table cannot contain as much GTF trace data as a data set, but will not impact performance as much as a data set because there is no I/O overhead. If MODE=EXT or MODE=DEFER, each instance of GTF directs the output to a separate trace defined by GTFOUTxx or IEFRDER DD statements. MODE=EXT is the default value. data set fit in a trace Choose MODE=EXT or MODE=DEFER when you want to collect more data than will table. Writing trace data to a data set does involve I/O overhead, so choosing one of these options will impact system performance more than MODE=INT. 214 z/OS: MVS Diagnosis: Tools and Service Aids

243 Generalized Trace Facility MODE=DEFER will place the trace data in the GTF address space until you enter the STOP GTF command. Every instance of GTF runs in its own address space. During GTF end processing, each instance of GTF will transfer the data from its address space to the output data set. The amount of data transferred for MODE=EXT or MODE=DEFER is one of the following: • The default amount on the SADMP|SA keyword • The amount specified When the trace output data set is full, GTF continues as follows: • Direct access : GTF resumes recording at the beginning of the data set, when the primary allocation is full. Thus, GTF writes over earlier trace data. end-of-file record. The tape is rewound and unloaded, then a new Tape • : GTF writes an volume is mounted on the tape unit. If GTF has only one tape data set and only one unit for the data set, GTF does not write trace records while the tape is unavailable, thus losing trace data. GTF can write to multiple tape units in two ways: one data – Multiple GTFOUTxx DD statements can specify tape data sets. When GTF fills set, it changes to the next data set. – The IEFRDER DD statement can specify two tape units; in this case, GTF resumes writing the current trace data on the other unit, while rewinding and unloading the full volume. SADMP|SA=nnnnnnK|nnnnM| 40K } Specifies the amount of storage needed to save GTF trace data for stand-alone dumps. Specify the amount of storage in terms of either kilobytes (K) or megabytes (M). The minimum amount is 40K, and the maximum is 2048M minus 400K, or 2096752K. GTF rounds up the amount to the block size boundaries for DASD data sets, or 32K boundaries for tape data sets or internal mode. The default value for this parameter is 40K (rounded up to the correct boundary). SDUMP|SD={nnnnnnK|nnnnM| 40K } the amount of storage needed to save GTF trace data for SVC dumps. Specify the Specifies amount of storage in terms of either kilobytes (K) or megabytes (M). The minimum amount is zero, and the maximum cannot exceed the maximum amount of storage defined by the SADMP parameter. GTF rounds up the amount to the block size boundaries for DASD data sets, or 32K boundaries for tape data sets or internal mode. The default value for this parameter is 40K (rounded up to the correct boundary). NOPROMPT|NP If specified, indicates that you will not be prompted to specify trace options. Message AHL125A and AHL100A will not be issued. Use this parameter when you have a parmlib member set up with the desired GTF options and you want to avoid multiple replies in a sysplex environment. ABDUMP|AB={nnnnnnK|nnnnM| 0K } Specifies the amount of GTF trace data to be formatted in an ABEND or SNAP dump. Specify the amount of trace data in terms of either kilobytes (K) or megabytes (M). The minimum defined by amount is zero, and the maximum cannot exceed the maximum amount of storage the SADMP parameter. GTF rounds up the amount to the block size boundaries for DASD data sets, or 64K boundaries for tape data sets or internal mode. The default value for this parameter is 0K, which means that no GTF data will appear in ABEND or SNAP dumps. For ABEND or SNAP dumps. GTF formats only those records that are directly associated with the failing address space. GTF does not format the channel program trace data associated with the failing address space. 40K } BLOK={nnnnn|nnnnnK|nnnnnM| the amount of virtual storage (E)CSA that GTF will use to collect trace data. Specify Specifies this storage amount in 4096-byte pages (nnnnn), or in bytes (nnnnnK or nnnnnM). The The Generalized Trace Facility (GTF) 215

244 Generalized Trace Facility maximum amount is 99999; the default is 40K. If the amount is less than 40K, GTF will use the default. 1024K } SIZE={nnnnnK|nnnnnM| Specifies the size of the buffers. Specify this amount in bytes (nnnnnK or nnnnnM). The range for the size keyword is 1M to 2046M. The maximum amount is 2046M; the default is 1024K. If the amount is less than 1024K, GTF will use the default. TIME=YES Specifies that every GTF trace record have a time stamp, as well as the block time stamp associated with every block of data. The time stamp is the eight-byte time of day (TOD) clock value at the local time in which GTF puts the record into the trace table. GTF does not accept TIME=NO; all output records will have time stamps. Local time is calculated using a time zone offset that GTF establishes at the time that the trace starts. If the system time zone offset is changed during tracing, e.g. in response to daylight saving time going into effect, local times formatted by GTF will not correspond with system times afterward. When you use IPCS to format and print the trace records, a time stamp record follows each trace record. You can use these time stamp records to calculate the elapsed time between trace entries. The time stamp record is described in “Time stamp records” on page 247 . NO DEBUG={YES| } whether GTF should attempt recovery after it encounters an error. If DEBUG=YES, Specifies GTF will not attempt any recovery. Instead, GTF will issue an error message and end after encountering any error, so that the contents of the trace table immediately prior to the error remain intact. If DEBUG=NO, which is the default, GTF does the following: • For errors in GTF processing, GTF continues processing after doing one or more of the following: field associated with the error – Flagging the trace record or trace record – Issuing a message to the console to inform that an error occurred – Suppressing the error or function in which the error occurred. • For errors that do not occur in GTF itself, GTF ends abnormally. If GTF stops processing, that will not cause any other task to also stop. TIME=1440 unlimited processor time for GTF. Specifies REGION=nnnnK|M the maximum size of the storage that GTF can use. If the REGION parameter is omitted, then Specifies the GTF program defaults to using the REGION value that was specified during the system installation. For information about determining the value for REGION, see “Determining GTF's storage z/OS MVS JCL requirements” on page 218 . For general information about the REGION parameter, see . Reference IEFRDER DD or GTFOUTxx DD Defines the trace output data set or data sets. This statement is required only if you do one of the following: • Specify MODE=EXT or MODE=DEFER • Use the default MODE=EXT IEFRDER DD can be used, but does not have to be used, for one trace output data set. Additional data sets must be defined on GTFOUTxx DD statements, where xx is one or two characters that are valid in DDNAMES. The trace output data set or data sets must be unique and cannot be shared across active defining GTF trace output data sets in a cataloged procedure” on instances of GTF. See “Guidelines for for guidance on how to define output data sets for GTF. page 217 216 z/OS: MVS Diagnosis: Tools and Service Aids

245 Generalized Trace Facility SYSLIB DD the IBM-supplied member, or the installation- Optionally include a SYSLIB DD statement to define supplied member, that contains GTF trace options. If the member exists, GTF will use the options in that member. If the member does not exist, GTF will issue an error message and stop. If you code a procedure that does not contain a SYSLIB DD statement, GTF issues message AHL100A to prompt for options after the START GTF command. In response, you can supply the desired trace options through the console. See “Specifying or changing GTF trace options through system prompting” on page 221 for examples of specifying options through the console. Guidelines for defining GTF trace output data sets in a cataloged procedure defined in the cataloged The trace output data sets must be to each instance of GTF and can be specific procedure. Each instance of GTF to be started must have a separate cataloged procedure, or if the same cataloged procedure is used, then a different trace data set must be supplied with the START command Use the following guidelines for specifying trace output data sets on the IEFRDER DD or GTFOUTxx DD statements: define define more than 16 data sets, GTF will • You can up to 16 output data sets for GTF to use. If you 16 and ignore the rest. first accept the those that are unopened, and identifies • If GTF cannot open all of the data sets, it issues a message that continues processing with those that are open. • Do not specify the RLSE option while using the SPACE parameter because the output data sets are opened and closed more than once while GTF runs. Note: If the GTF trace output resides on an SMS volume, you should ensure that the SMS management class does not allow partial release. first extent. • Do not request secondary extents for trace data sets. GTF will only use the To obtain the maximum degree of control over the number of trace entries for which space is allocated, specify space allocation in blocks, using a block length that matches the BLKSIZE of your trace data set. Do not specify any secondary space. Use the CONTIG option to request contiguous blocks. For example, if your BLKSIZE is 8192, code the SPACE keyword as follows: SPACE=(8192,(500,0),,CONTIG) • All data sets must be in the same device class: either DASD or tape, but not both. If you mix device classes, GTF will ignore the tapes and use only DASD. However, the data sets can have different device types; for example, you can mix 3380 and 3390 device types. • If the data set is on a DASD: – The data set can be sequential, basic format, large format, or extended format. Basic format is limited to 65535 tracks on the volume. Large format is limited to 16,777,215 tracks per volume. The extended format limit is much higher. Extended format data sets can be compressed format, striped, You cannot use the WRAP option in compressed format. or both. – The data set must be linear if it is VSAM and must have a 32 KB control interval size. The data set might be extended format, striped, and might have the extended addressing option to allow it to be larger than 4 GB. • When WRAP processing is requested, the primary space request is consulted and only control intervals that are contained within that space are used. Unlike non-VSAM data sets used for WRAP processing, satisfied A data set must be empty or using a single extent. the primary space does not have to be defined with the REUSE attribute. If neither of the two conditions exists, GTF rejects the use of the data set. filled until GTF is stopped or the data When WRAP processing is not requested, cControl intervals are set is full. Note: GTF and CTRACE accept a single VSAM linear data set as output. VSAM's support for striping can increase data rate without the complexity that is associated with the use of distinct data sets. The Generalized Trace Facility (GTF) 217

246 Generalized Trace Facility • GTF and CTRACE support placement of NOWRAP traces in cylinder-managed space. WRAP traces placed in VSAM linear data sets can reside in cylinder-managed space too. WRAP traces in non-VSAM data sets cannot be placed in large format data sets, extended format data sets, or cylinder-managed space. efficient • To ensure the most GTF processing, do not specify any particular block size for the output data set or data sets in either: – The cataloged procedure for GTF – The JCL, TSO/E commands, or interactive system productivity facility/program development facility (ISPF/PDF) panels that you might use to preallocate the data sets. The system computes an optimal block size when it opens each data set. If you want GTF to use an unlabeled tape as the output data set, you must specify the logical Note: record length and block size when you allocate that data set. more than one data set, you should ensure that the number of paths to the data sets • If you define equals the number of data sets. • You can specify the number of channel programs for each output data set using the NCP parameter on each DD statement. The NCP value determines the rate at which GTF transfers data to the output data sets. For example, if you want to transfer data to your data sets at a rate of 25 buffers per second and you have 5 data sets, you will need to specify an NCP value of 5. GTF then transfers data to the 5 data sets at a rate of 5 buffers per second per data set for a total rate of 25 buffers per second. The maximum value for NCP is 255. If you do not specify a value for NCP, or if you specify a value less than four, GTF will use the following default values: – For tape: four – For DASD: the number of output blocks per track, which is multiplied by four. • If, when you enter the START command, you override any of the DD statements for multiple output data sets, you must use symbolic parameters in those DD statements. See “Using the START command to invoke GTF” on page 220 for more information. Determining GTF's storage requirements The storage that GTF requires depends on the trace options that you choose. Modern systems consume large amounts of virtual storage, and GTF is no exception. Use the REGION parameter to specify at least 20 MB of available storage for GTF. Then, if you need to impose constraints on the private storage of the GTF address space, use the REGION parameter to restrict GTF's usage. If the REGION parameter is omitted, then the GTF program defaults to using the REGION value that was during the system specified installation. For general information about the REGION parameter, see z/OS MVS JCL Reference . After determining the GTF trace options, use Figure 79 on page 219 to determine several storage requirements for either your cataloged procedure or the START GTF command. There are several types of storage to calculate: • Extended pageable link pack area (EPLPA) • System queue area (SQA) • Extended common service area (ECSA) • Region storage Use the formulas in Figure 79 on page 219 to calculate the amount of storage needed for each storage type. Then add them all together to arrive at the final figure to specify on the REGION parameter. For figure, see “GTF trace options” on page 226 . information about the options mentioned in the 218 z/OS: MVS Diagnosis: Tools and Service Aids

247 Generalized Trace Facility Figure 79: GTF storage requirements Starting GTF Multiple instances of GTF can be active in a system at the same time. When you activate GTF, each instance operates as a system task, in its own address space. The only way to activate GTF is to enter a START GTF command from a console with master authority. Using this command, select either IBM's defines GTF operation; you can procedure or your cataloged procedure for GTF. The cataloged procedure accept the defaults that the procedure establishes, or change the defaults by specifying certain parameters on the START GTF command. The Generalized Trace Facility (GTF) 219

248 Generalized Trace Facility Because GTF sends messages to a console with master authority, enter the command only on a console that is eligible to be a console with master authority. Otherwise, you cannot view the messages from GTF that verify trace options and other operating information. specified on the START GTF command identifier Each instance of GTF can be assigned a unique that is instances of GTF. If a unique after the GTF keyword. This will allow you to recognize and control specific identifier specified, the operating system assigns the default, which is the device number of the is not device where the trace data set resides. See the example in the topic “Starting GTF with trace output to identifier. an existing data set on tape” on page 222 for an instance of GTF with the default Using the START command to invoke GTF The START command, without any parameters other than the IBM-supplied procedure name and an identifier, uses the defaults of the cataloged procedure. If that source JCL contains a DD statement for the predefined data set member of trace options, GTF will issue a message that lists those options, and will allow you to override them. Otherwise, GTF will prompt you to specify trace options directly through the console. See “Specifying or changing GTF trace options through system prompting” on page 221 for more information. To invoke GTF, enter the following START command. For information about the command and parameters . you can use to change the GTF cataloged procedure, see z/OS MVS System Commands {START|S}{GTF|membername}[.identifier] Guidelines for overriding JCL statements in the GTF cataloged procedure You can override the parameters of only one output data set using the keyword=option parameter on the defined more than one output data set, and you used IEFRDER as the START command. If you have specified DDNAME for one of the DD statements, the keywords on the START command will override the If you want to alter the attributes of another data set, or attributes of the data set that IEFRDER defines. more than one data set, you must: • Use symbolic parameters in the JCL DD statements for those attributes you want to change. You cannot use DD statement keywords as symbolic parameters; for example, you cannot code UNIT=&UNIT; • Assign values to the symbolic parameters in the EXEC or PROC statements in the cataloged procedure. on the • Specify keywords in the START command to override the symbolic parameter values specified EXEC or PROC statements. Examples of overriding the JCL statements in the GTF cataloged procedure The following shows examples of setting up a cataloged procedure when you want to override JCL statements in the procedure using the keyword=option parameter on the START command. Note that the DD statement parameters in both of the following procedures are for example only; the needs of your installation might require you to provide DD parameters in addition to, or other than, DSNAME, UNIT, and DISP. If you want to alter just one data set using the START command, your cataloged procedure could look like Figure 80 on page 220 . //GTFABC PROC MEMBER=GTFPARM //IEFPROC EXEC PGM=AHLGTF,REGION=2880K,TIME=1440, // PARM=('MODE=EXT,DEBUG=NO') //IEFRDER DD DSNAME=SYS1.GTFTRC,UNIT=SYSDA, // SPACE=(4096,20),DISP=(NEW,KEEP) //SYSLIB DD DSN=SYS1.PARMLIB(&MEMBER),DISP=SHR //GTFOUT1 DD DSNAME=SYS1.TRACE1,UNIT=SYSDA,DISP=(NEW,KEEP) //GTFOUT2 DD DSNAME=SYS1.TRACE2,UNIT=SYSDA,DISP=(NEW,KEEP) //GTFOUT3 DD DSNAME=SYS1.TRACE3,UNIT=SYSDA,DISP=(NEW,KEEP) Figure 80: Example: altering one data set 220 z/OS: MVS Diagnosis: Tools and Service Aids

249 Generalized Trace Facility Enter defines. START GTFABC,,,UNIT=TAPE , to alter only the data set that IEFRDER If you want to alter the attributes of more than one data set with the START command, use the JCL in your cataloged procedure. statements in Figure 80 on page 220 //GTFABC PROC MEMBER=GTFPARM,NAME1='SYS1.TRACE1', // NAME2='SYS1.TRACE2',NAME3='SYS1.TRACE3', //IEFPROC EXEC PGM=AHLGTF,REGION=2880K,TIME=1440, // DEVICE='SYSDA',DSPS='OLD' // PARM=('MODE=EXT,DEBUG=NO') //SYSLIB DD DSN=SYS1.PARMLIB(&MEMBER),DISP=SHR //GTFOUT1 DD DSNAME=&NAME1,UNIT=&DEVICE,DISP=&DSPS; //GTFOUT2 DD DSNAME=&NAME2,UNIT=&DEVICE,DISP=&DSPS; //GTFOUT3 DD DSNAME=&NAME3,UNIT=&DEVICE,DISP=&DSPS; Figure 81: Example: Altering More Than One Data Set , to override the default value of the UNIT parameter for each START GTFABC,,,DEVICE=TAPE Enter output data set in your cataloged procedure. See z/OS MVS JCL Reference for more information about using symbolic parameters in JCL statements. Specifying or changing GTF trace options through system prompting After you enter the START command, GTF issues message AHL100A or AHL125A which allows you to specify or change trace options. If the cataloged procedure or START command did not contain a member predefined options, GTF issues message AHL100A, which allows you to enter trace options. If the of options, GTF identifies procedure or command did include a member of predefined those options by issuing the console messages AHL121I and AHL103I. Then you can accept the options, or reject and specify new options. GTF allows overlapping of trace options when multiple instances are active. This sequence of messages appears as: AHL121I TRACE OPTION INPUT INDICATED FROM MEMBER memname OF PDS dsname AHL103I TRACE OPTIONS SELECTED - keywd ),..., keywd =( value ) =( value keywd,keywd,...,keywd AHL125A RESPECIFY TRACE OPTIONS OR REPLY U Note: If you specify NOPROMPT or NP on the START GTF command, the system will not issue message of trace options or the continuation of initialization. respecification AHL125A to request the specified in that If you choose to reject any options in the member, you are rejecting all of the options member. Respecifying trace options does not modify the options in the data set member. The format of the response is: TRACE=trace option[,trace option]... The trace options determine the amount of storage GTF requires. See “Determining GTF's storage . requirements” on page 218 GTF will accept the trace options listed under “GTF trace options” on page 226 . Examples of starting GTF find the following examples: In this topic you will • “Starting GTF with a cataloged procedure and parmlib member” on page 222 • “Starting GTF with internal tracking” on page 222 • “Starting GTF with trace output to an existing data set on tape” on page 222 • “Starting GTF with trace options stored in SYS1.PARMLIB” on page 223 • “Starting GTF without trace options in a member” on page 223 The Generalized Trace Facility (GTF) 221

250 Generalized Trace Facility • “Starting GTF to trace VTAM remote network activity” on page 224 Starting GTF with a cataloged procedure and parmlib member shows GTF started with a cataloged procedure that indicates the GTFPARM Figure 82 on page 222 specified parmlib member. The trace options are in the parmlib member record. In this example, message AHL103I displays the options in the GTFPARM member: TRACE=SYSM, DSP, PCI, SRM, TRC, specified USR. This example shows the messages and the reply generated by the initial START command, and the specifications GTFPARM that are in effect. This instance of GTF can be recognized by the EXAMPLE 1 identifier. START GTF.EXAMPLE1 AHL121I TRACE OPTION INPUT INDICATED FROM MEMBER GTFPARM OF PDS SYS1.PARMLIB AHL103I TRACE OPTIONS SELECTED--SYSM,USR,TRC,DSP,PCI,SRM 00 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY 00,U AHL031I GTF INITIALIZATION COMPLETE Figure 82: Example: Starting GTF with a Cataloged Procedure Starting GTF with internal tracking Figure 83 on page 222 shows GTF, with EXAMPLE2, started with MODE=INT. The trace data is identifier maintained in virtual storage and is not recorded on an external device. In this example, you can override the trace options given in the supplied parmlib member: START GTF.EXAMPLE2,,,(MODE=INT),DSN=NULLFILE AHL121I TRACE OPTION INPUT INDICATED FROM MEMBER memname OF PDS dsname AHL103I TRACE OPTIONS SELECTED - SYSM,USR,TRC,DSP,PCI,SRM 00 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY 00,TRACE=IO,SSCH,SVC,DSP AHL103I TRACE OPTIONS SELECTED -- DSP,SVC,IO,SSCH 01 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY 01,U AHL031I GTF INITIALIZATION COMPLETE Figure 83: Example: Starting GTF with internal tracking Starting GTF with trace output to an existing data set on tape Figure 84 on page 223 shows how the START command is used to direct GTF trace output to an existing data set on tape rather than to an existing data set on a DASD. The device type and volume serial number are supplied. The disposition and name of the trace data set are changed from DISP=(NEW,KEEP) and specified tape has a volume DSNAME=SYS1.TRACE to DISP=(OLD,KEEP) and DSNAME=TPOUTPUT. The serial of TRCTAP and resides on a 3400 tape drive. Note that the GTFPARM parmlib member is used to specify the trace options. Here the GTF keyword is not followed by a unique identifer and defaults to volume serial number. 222 z/OS: MVS Diagnosis: Tools and Service Aids

251 Generalized Trace Facility START GTF,3400,TRCTAP,(MODE=EXT),DISP=OLD,DSNAME=TPOUTPUT AHL103I TRACE OPTIONS SELECTED--SYSM,DSP,PCI,SRM,TRC,USR 00 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY 00,U AHL031I GTF INITIALIZATION COMPLETE Figure 84: Example: Start GTF, trace output to an existing data set on tape Starting GTF with trace options stored in SYS1.PARMLIB shows how to store trace options in a member of SYS1.PARMLIB. This can save Figure 85 on page 223 you time when starting GTF. First store one or more combinations of trace options as members in SYS1.PARMLIB, and include a SYSLIB DD statement in the cataloged procedure. When you start GTF, GTF will then retrieve the trace options from SYS1.PARMLIB, instead of prompting you to supply them through the console. GTF displays the trace options for you, and then issues message AHL125A, to which you can reply U to accept the parmlib options. This example shows the job control statements and utility JCL statements needed to add trace options to SYS1.PARMLIB using IEBUPDTE. //GTFPARM JOB MSGLEVEL=(1,) // EXEC PGM=IEBUPDTE,PARM=NEW //SYSPRINT DD SYSOUT=A //SYSUT2 DD DSNAME=SYS1.PARMLIB,DISP=SHR //SYSIN DD DATA ./ ADD NAME=GTFA,LIST=ALL,SOURCE=0 TRACE=SYSP,USR SVC=(1,2,3,4,10),IO=(D34,D0C),SSCH=ED8,PI=15 ./ ADD NAME=GTFB,LIST=ALL,SOURCE=0 TRACE=IO,SSCH,TRC ./ ADD NAME=GTFC,LIST=ALL,SOURCE=0 TRACE=SYS,PCI /* Figure 85: Example: Starting GTF with trace options stored in SYS1.PARMLIB A sample SYSLIB DD statement to be included in a GTF cataloged procedure might look like this: //SYSLIB DD DSN=SYS1.PARMLIB(GTFA),DISP=SHR The new member name can also be on the START command while using the IBM-supplied GTF specified procedure, as in the following example: S GTF,,,(MODE=EXT,TIME=YES),MEMBER=GTFB For more information see the following references: for descriptions of the statements. • See z/OS DFSMSdfp Utilities z/OS MVS JCL Reference for descriptions of the statements. • See z/OS MVS Initialization and Tuning Reference for further information about SYS1.PARMLIB. • See Starting GTF without trace options in a member Figure 86 on page 224 predefined member shows an installation-written procedure where there is no specified. The procedure contains no SYSLIB DD statement. When GTF is started with a with trace options procedure containing no SYSLIB DD statement, message AHL100A is issued to prompt for GTF trace options. The Generalized Trace Facility (GTF) 223

252 Generalized Trace Facility In this example, an installation-written cataloged procedure, USRPROC, is invoked to start GTF in external mode to a direct access data set, ABCTRC, on device 250. The trace options selected result in trace data being gathered for: • All SVC and IO interruptions • All SSCH operations or SLIP traps in DEBUG mode • All matching SLIP traps with a tracing action specified • All dispatcher events • All issuers of the GTRACE macro will have their user data recorded in the trace buffers. The trace data is written into the data set ABCTRC. (Note that when the end of the primary extent is reached, writing continues at the beginning.) START USRPROC,250,333005,(MODE=EXT),DSN=ABCTRC 00 AHL100A SPECIFY TRACE OPTIONS REPLY 00,TRACE=SVC,SSCH,IO,DSP,SLIP,USR AHL103I TRACE OPTIONS SELECTED--USR,DSP,SVC,IO,SLIP,SSCH 01 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY 01,U AHL031I GTF INITIALIZATION COMPLETE Figure 86: Example: Starting GTF without trace options in a member Starting GTF to trace VTAM remote network activity GTF can trace VTAM activity only if VTAM is started with the GTF option. See z/OS Communications Server: for details. In Figure 87 on page 224 , GTF options are not stored in parmlib; the trace SNA Operation options are entered at the console. Three GTF options are required to record all VTAM traces: • RNIO must be specified so that the VTAM I/O trace can function for an NCP or a remote device attached to the NCP. specified • IO or IOP must be so that the VTAM I/O trace can function for a local device. so that the VTAM buffer and the NCP line traces can function. • USR or USRP must be specified You must enter the START GTF command before a trace can be activated from VTAM. START MYPROC.EXAMPLE8,,,(MODE=EXT) 00 AHL100A SPECIFY TRACE OPTIONS REPLY 00,TRACE=RNIO,IO,USRP AHL103I TRACE OPTIONS SELECTED--IO,USRP,RNIO 01 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY 01,USR=(FF0,FF1),END AHL031I GTF INITIALIZATION COMPLETE Figure 87: Example: Starting GTF to trace VTAM remote network activity 224 z/OS: MVS Diagnosis: Tools and Service Aids

253 Generalized Trace Facility Stopping GTF You can enter the STOP command at any time during GTF processing. The amount of time you let GTF runs depends on your installation and the problem you are trying to capture, but a common time is between 15 and 30 minutes. defined, If you are running GTF to gather information related to a problem for which a SLIP trap has been satisfied. For additional you can instruct SLIP to stop all instances of GTF when the trap conditions are information, see the SLIP command documentation in z/OS MVS System Commands . To stop GTF processing, enter the STOP command. The STOP command must include either the GTF in the START command, or the device number of the GTF trace data set if you specified specified identifier the GTF MODE=EXT or MODE=DEFER to direct output to a data set. If you have not in specified identifier identifier: the START command, then those instances of GTF will have the same the volume serial number. or the device number of the trace data set, enter the following identifier If you are not sure of the command: DISPLAY A,LIST Figure 88 on page 225 shows the output produced by the DISPLAY A,LIST command. In this example, the identifier for GTF is EVENT1. CNZ4105I 16.47.46 DISPLAY ACTIVITY FRAME LAST F E SYS=SY1 JOBS M/S TS USERS SYSAS INITS ACTIVE/MAX VTAM OAS 00000 00005 00000 00016 00008 00000/00300 00000 LLA LLA LLA NSW S VLF VLF VLF NSW S JES2 JES2 IEFPROC NSW S SDSF SDSF SDSF NSW S GTF EVENT1 IEFPROC NSW S in DISPLAY A,LIST output Figure 88: Example: recognizing GTF identifier You must enter the STOP command at a console with master authority. The general format of the STOP command is as follows: {STOP|P} identifier EVENT1 (as shown in Figure 88 on page 225 For example, to stop GTF for the identifier ), enter the command: STOP EVENT1 When the STOP command takes effect, the system issues message AHL006I. If the system does not issue message AHL006I, then GTF tracing continues, remaining active until a STOP command takes effect or the next initial program load (IPL). When this happens, you will not be able to restart GTF tracing. In this case, you can use the FORCE ARM command to stop GTF. identifier on the START command, using the same If there were several functions started with the same on the STOP command will stop all those functions. identifier If the volume serial number is used on the STOP command, all instances of GTF with trace data directed to a data set on that volume serial are stopped. This is independent of the identifier assigned to each instance of GTF. identifiers EX1, EX2, and EX3 directing trace For example, if three instances of GTF are active with the data to different data sets to the same volume with volume serial number 1020, then the following command will stop all the 3 instances of GTF. STOP 1020 The Generalized Trace Facility (GTF) 225

254 Generalized Trace Facility See z/OS MVS System Commands for more information about the STOP and FORCE ARM commands. to stop GTF. In this example, the following command starts GTF tracing with You can also use an identifier identifier the EXAMPLE and with trace data maintained in the GTF address space. The DSN keyword is entered to prevent allocation of an external trace data set as in the cataloged procedure. specified START GTF.EXAMPLE,,,(MODE=INT),DSN=NULLFILE To stop GTF tracing, you would issue the following command: STOP EXAMPLE In some instances, you may need to display the active jobs before stopping GTF. The example shown in starts GTF tracing with trace data recorded on an external device, data set Figure 89 on page 226 GTF.TEST01. Another instance of GTF with an identifier EX1 is started with trace data directed to another data set on the same volume. Note that you do not have to specify MODE=EXT, because it is the default. S GTF,,,DSNAME=GTF.TEST01,VOLUME=SER=IPCS01,DISP=OLD S GTF.EX1,DSNAME=GTF.TEST02,VOLUME=SER=IPCS01 Figure 89: Example: Starting instances of GTF Because it is not apparent which is the GTF recording device, you have to display active jobs with the DISPLAY A,LIST command before stopping GTF. In Figure 90 on page 226 , the device number for GTF is 0227. CNZ4105I 16.54.36 DISPLAY ACTIVITY FRAME LAST F E SYS=SY1 JOBS M/S TS USERS SYSAS INITS ACTIVE/MAX VTAM OAS 00000 00006 00000 00028 00008 00002/00300 00003 IGVDGNPP IGVDGNPP IGVDGNPP OWT S VLF VLF VLF NSW S VTAM VTAM VTAM NSW S J273 J273 IEFPROC NSW S GTF 0227 IEFPROC NSW S GTF EX1 IEFPROC NSW S Figure 90: Example: DISPLAY A,LIST command output If you only want to stop only the second instance of GTF, issue the following command: STOP EX1 If you want to stop both instances, issue the following command: STOP 227 GTF trace options This topic describes the GTF options you can specify through either system prompting in response to the parmlib or data set member. However, GTF will not use certain START GTF command or in a predefined for a list of those combinations. combinations of options; see Table 36 on page 230 Some GTF trace options also require keywords. If you specify options requiring keywords in the member predefined options, it must also contain the associated keywords. These are or data set containing the . explained in “Prompting keywords” on page 231 ASIDP Requests that GTF tracing be limited to a subset of address spaces. ASIDP requests GTF prompting five address space identifiers (ASID) in which you want GTF tracing to occur. ASIDP works for one to only with a GTF option that generates tracing, such as SVC or IO. For information about responding to GTF prompts, see “Prompting keywords” on page 231 . 226 z/OS: MVS Diagnosis: Tools and Service Aids

255 Generalized Trace Facility CCW Requests tracing of channel programs and associated data for I/O events. CCW is valid only if the . other trace options include SSCH, SSCHP, IO, or IOP. See Table 36 on page 230 CCWP Requests tracing of channel programs and associated data for I/O events, and requests GTF prompting for the following information: • Tracing channel command words (CCW) or device command words (DCW) for start subchannel (SSCH) operations or I/O interruptions or both • Tracing the request and response blocks for synchronous I/O (zHyperLink) end events • Maximum number of CCWs or device command words (DCW) for each event • Maximum number of bytes of data for each CCW or DCW or synchronous I/O request • Optional input/output supervisor block (IOSB), input/output block extension (IOBE, zHPF channel programs, and synchronous I/O requests only), and error recovery procedure work area (EWA) tracing • Size of the program controlled interrupt (PCI) table For information about responding to GTF prompts, see “Prompting keywords” on page 231 . CCWP is valid only if the other trace options include SSCH, SSCHP, IO, or IOP. See Table 36 on page 230 . CSCH Requests recording for all clear subchannel operations. See Table 36 on page 230 for more information on combining this option with other GTF options. DSP Requests recording for all dispatchable units of work: service request block (SRB), local supervisor routine (LSR), task control block (TCB) and Supervisor Call (SVC) prolog dispatch events. If you specify both the SYSM and DSP trace options, GTF records minimal trace data for DSP. Otherwise, GTF records comprehensive trace data for DSP. EXT Requests comprehensive recording for all external interruptions. See Table 36 on page 230 for more information on combining this option with other GTF options. HSCH Requests recording for all halt subchannel operations. See Table 36 on page 230 for more information on combining this option with other GTF options. IO Requests recording of all non-program-controlled I/O interruptions and synchronous I/O (zHyperLink) end events. Unless you also specify the PCI trace option, GTF does not record program-controlled interruptions. See Table 36 on page 230 for more information on combining this option with other GTF options. IOX Requests recording of all non-program-controlled I/O interruptions providing a summary of a complete channel program for the I/O interruption in an I/O summary trace record. Unless you also specify the PCI trace option, GTF does not record program-controlled interruptions. IOP specific device numbers for which you want GTF to record non-program- Requests GTF prompting for controlled I/O interruptions and synchronous I/O (zHyperLink) end events. Unless you specify the PCI trace option, GTF does not record program-controlled interruptions. See Table 36 on page 230 for more information on combining this option with other GTF options. For information about responding to GTF prompts, see “Prompting keywords” on page 231 . IOXP specific device numbers for which you want GTF to record non-program- Requests GTF prompting for controlled I/O interruptions providing a summary of a complete channel program for the I/O interruption in an I/O summary trace record. Unless you specify the PCI trace option, GTF does not The Generalized Trace Facility (GTF) 227

256 Generalized Trace Facility record program-controlled interruptions. For more information on responding to GTF prompts, see “Prompting keywords” on page 231 . If an installation chooses to specify either IO or IOP in addition to IOX or IOXP, they will receive IOX records for DASD and tape devices and IO records for all other devices. JOBNAMEP Requests that GTF tracing be limited to a subset of jobs. JOBNAMEP requests GTF prompting for one through job names for which you want GTF tracing to occur. five These job names can be generic, as well as specific, job names. If you want to specify generic job names, use * or % in the job name. The asterisk is a placeholder for one or more valid job name characters, or indicates no characters. For example, if you enter JOBNAMEP=I*MS*, GTF will process trace data for address spaces with job names IABMS01, IAMS, IMS, IMSA, IMS00012, and so on. However, if you enter JOBNAMEP=*MASTER*, that job name represents only the master address space. The percent symbol is a vplaceholder for a single valid job name character. For example, if you enter JOBNAMEP=I%MS%%, GTF will process trace data for address spaces with job names IAMS01 and IXMSBC, but not job names IMS001 or I999MS. The combination %* is a placeholder for at least one character. JOBNAMEP works only with a GTF option that generates tracing, such as SVC or IO. For information on responding to GTF prompts, see “Prompting keywords” on page 231 . MSCH for more Requests recording for all modify subchannel operations. See Table 36 on page 230 information on combining this option with other GTF options. PCI Requests recording of intermediate status interruptions in the same format as other I/O trace records Specifically, PCI causes GTF to record program-controlled I/O interruptions, initial that GTF creates. status request interruptions, resume subchannel operation instruction, and suspend channel program specific devices as a result of prompting for I/O events (IOP trace interruptions. When you select option), GTF records intermediate status interruptions for only those devices. PCI is valid only when the other trace options include IO, IOP, SYS, SYSM, or SYSP. PCIE Requests tracing of PCI load and store instructions, adapter interrupts, and PCIE de-multiplexing requests. PFIDP Requests that GTF tracing of PCIE-related events be limited to a subset of the PCIE function identifiers (PFIDs). PFIDP requests GTF prompting for 1 to 256 PFIDs or PFID ranges in which you want GTF tracing to occur. PFIDP is only valid when the PCIE trace option is specified. For information . on responding to GTF prompts, see “Prompting keywords” on page 231 PI Requests comprehensive recording for all program interruptions (0-255). See Table 36 on page 230 for more information on combining this option with other GTF options. PIP Requests GTF prompting for those interruption codes for which you want GTF to record program interruptions. For information about responding to GTF prompts, see “Prompting keywords” on page . See Table 36 on page 230 for more information on combining this option with other GTF options. 231 RNIO Requests recording of all Virtual Telecommunications Access Method (VTAM) network activity. If you specify both the SYSM and RNIO trace options, GTF will record minimal trace data for RNIO. Otherwise, GTF records comprehensive trace data for RNIO. RR Requests comprehensive recording of data associated with all invocations of recovery routines (such as STAE and ESTAE routines). GTF creates a trace record describing the activity of the recovery routine 228 z/OS: MVS Diagnosis: Tools and Service Aids

257 Generalized Trace Facility when control passes from the recovery routine back to the recovery termination manager (RTM). See Table 36 on page 230 for more information on combining this option with other GTF options. {SIO|SIOP} If you specify the SIO or SIOP trace option, GTF processes that request as a request for SSCH or SSCHP. GTF issues message AHL138I to indicate this substitution. Subsequent messages refer to the original SIO or SIOP trace option. Note: The SIO keyword is provided only for compatibility; it is recommended that you use the SSCH keyword instead. The SIOP option is provided only for compatibility; it is recommended that you use the SSCHP option instead. SLIP Requests that a trace entry be made each time: • A match occurs for a SLIP trap with ACTION=TRACE • A SLIP trap with the SLIP DEBUG option is checked on the SLIP command. The amount of data and the type of SLIP trace record to be built is specified SRM Requests recording of trace data each time the system resource manager (SRM) is invoked. If you specify both the SYSM and SRM trace options, GTF records minimal trace data for SRM. Otherwise, GTF records comprehensive trace data for SRM. SSCH Requests recording for start subchannel and resume subchannel operations and synchronous I/O (zHyperLink) start events. See Table 36 on page 230 for more information on combining this option with other GTF options. SSCHP Requests GTF prompting for the specific device numbers for which you want GTF to record start subchannel and resume subchannel operations, and synchronous I/O (zHyperLink) end events. For . See Table 36 information about responding to GTF prompts, see “Prompting keywords” on page 231 for more information on combining this option with other GTF options. on page 230 SVC for more Requests comprehensive recording for all SVC interruptions. See Table 36 on page 230 information on combining this option with other GTF options. SVCP Requests GTF prompting for those SVC numbers for which you want data recorded. For information about responding to GTF prompts, see “Prompting keywords” on page 231 . See Table 36 on page 230 for more information on combining this option with other GTF options. SYS Requests recording of comprehensive trace data for all of the following: • Clear subchannel operations • External interruptions • Halt subchannel operations • I/O interruptions • Modify subchannel operations • Program interruptions • Recovery routines • Start subchannel and resume channel operations • SVC interruptions. Because specifying SYS automatically causes GTF to trace all of these events, GTF will ignore the following trace options if you specify them in any form: CSCH, HSCH, MSCH, SSCH, EXT, IO, PI, RR, SVC. See Table 36 on page 230 for more information on combining this option with other GTF options. The Generalized Trace Facility (GTF) 229

258 Generalized Trace Facility SYSM Requests recording of minimal trace data for the same events as SYS. Because specifying SYSM automatically causes GTF to trace all of these events, GTF will ignore the following trace options if if you specify them in any form: CSCH, HSCH, MSCH, SSCH, EXT, IO, PI, RR, SVC. If if you specify DSP, RNIO, or SRM in addition to SYSM, GTF produces minimal, rather than comprehensive, trace data for those events. SYSP Requests recording for the same events as the SYS option, but causes GTF to prompt for selection of specific SVC, IO, SSCH, and PI events that you want recorded. For information about responding to GTF prompts, see “Prompting keywords” on page 231 . Because specifying SYSP automatically causes GTF to trace all of these events, GTF will ignore the following trace options if you specify them in any form: CSCH, HSCH, MSCH, SSCH, EXT, IO, PI, RR, for more information on combining this option with other GTF options. SVC. See Table 36 on page 230 TRC Requests recording of those trace events that are associated with GTF itself. Unless you request TRC, GTF will not trace these events. TRC works only with a GTF option that generates tracing, such as SVC or IO. USR Requests recording of all data that the GTRACE macro passes to GTF. You must specify USR or USRP events. If USR is used instead of USRP, to trace data from the GTRACE macro. Use USRP for specific the trace data set might be full of unwanted records. When you code the GTRACE macro but do not specify USR or USRP, GTF ignores the GTRACE macro. See Table 36 on page 230 for more information on combining this option with other GTF options. Reference for information about coding the z/OS MVS Programming: Assembler Services Reference ABE-HSP See GTRACE macro. USRP specific event identifiers (EID) of the data that the GTRACE macro passes Requests GTF prompting for to GTF. The EIDs represent user, program product, or IBM subsystem and component events. See Table 39 on page 236 for a list of EID values. See Table 36 on page 230 for more information on combining this option with other GTF options. For information about responding to GTF prompts, see “Prompting keywords” on page 231 . XSCH Requests recording all cancel subchannel operations. See Table 36 on page 230 for more information on combining this option with other GTF options. For information about responding to GTF prompts, see Table 37 on page 231 . Combining GTF options Table 36 on page 230 shows those TRACE options that GTF will not use in combination. If two or more specified, GTF uses the option that has the lower column number and options from the same row are ignores the other options. For example, if you specify both SYSP and PI (see row D), GTF uses SYSP (column 2) and ignores PI (column 5). Table 36: Combining GTF options. Columns Row 1 2 3 4 5 SYSM SYSP SYS SSCHP SSCH A 230 z/OS: MVS Diagnosis: Tools and Service Aids

259 Generalized Trace Facility Table 36: Combining GTF options. (continued) Columns Row 4 5 2 1 3 SYS IO, IOX SYSP IOP, IOXP B SYSM SYS SVCP SVC C SYSM SYSP SYS PIP PI SYSP SYSM D SYSP SYS E SYSM EXT SYSM SYS RR F SYSP SYSP CSCH SYSM G SYS SYSP SYS HSCH H SYSM SYSM SYS MSCH I SYSP J SYSM SYSP SYS XSCH CCWP CCW K USRP L USR If an installation chooses to specify either IO or IOP in addition to IOX or IOXP, they will receive IOX records for DASD and tape devices and IO records for all other devices. Prompting keywords values , GTF prompts for specific When you specify any of the trace options listed in Table 37 on page 231 by issuing message AHL101A: AHL101A SPECIFY TRACE EVENT KEYWORDS - keyword=,...,keyword= specified. Enter only the trace event The keywords issued in the message correspond to the trace options keywords appearing in the message text. The trace options and their corresponding keywords are: Table 37: GTF trace options and corresponding prompting keywords. Prompting Keyword Number of Prompting Values Allowed Trace Option ASIDP ASID= 5 CCWP CCW= N/A IO=SSCH= Unlimited IOP, IOXP, SYSP IO=SSCH= IOP, IOXP, SSCHP, SYSP Unlimited 5 JOBNAMEP JOBNAME= PFIDP PFID= 256 PIP, SYSP PI= 50 SIO= Unlimited SSCHP, SIOP, SYSP SSCH= Unlimited SSCHP, SIOP, SYSP SVCP, SYSP SVC= 50 USR= 50 USRP The Generalized Trace Facility (GTF) 231

260 Generalized Trace Facility Table 37: GTF trace options and corresponding prompting keywords. (continued) Number of Prompting Values Allowed Trace Option Prompting Keyword Note: 1. The SIO keyword is provided only for compatibility; it is recommended that you use the SSCH keyword instead. The SIOP option is provided only for compatibility; it is recommended that you use the SSCHP option instead. 2. Tracing a PAV base device number will cause all PAV aliases associated with that base device number to also be traced. If I/O tracing is needed to locate issues related to PAV alias device numbers when they are not associated with a PAV base device number, specify the device numbers of the PAV alias devices explicitly. Guidelines for specifying values for prompting keywords: Use the following guidelines when replying to message AHL101A for prompting keywords: • If you do not specify a reply for each of the keywords displayed in message AHL101A, GTF records all the events for that trace option, which increases the amount of storage that GTF requires. IBM recommends that you specify values for each keyword displayed, selecting the values that will help you debug your problem. • You can only enter values for keywords displayed in message AHL101A. • GTF limits the number of specific values that you can supply through prompting, see Table 37 on page 231 for the maximum number of values allowed for each keyword. If you specify more than the maximum values, GTF issues a message to which you reply by respecifying values for all appropriate keywords. • Keep in mind that prompting increases the amount of storage that GTF requires, because storage requirements depend on the trace options you specify. See “Determining GTF's storage requirements” for further information. on page 218 • Within a given reply, each keyword that you specify must be complete. If you need more values for a keyword than will fit into one reply, repeat the keyword in the next reply, and code the additional values for that keyword. The following are examples of correct replies: REPLY 01 IO=(191-193),SVC=(1,2,3,4,5) REPLY 01 SVC=(6,7,8,9,10) The maximum number of values that GTF allows for a keyword does not change, regardless of whether you enter one or more replies to specify all the values for the keyword. • After supplying all keywords and values, you must enter the END keyword, which signifies that the event is complete. If the system does not find the END keyword in a reply, the system issues definition finds message AHL102A to prompt for additional event keywords and values. When the system the END keyword, the system issues message AHL103I to list all of the trace options that are in effect. . For sample prompting sequences, see “Examples of sample prompting sequences” on page 236 Use the following keywords when GTF prompts for values by issuing message AHL101A: [, ASID=( ]...[, asid5 ]) asid1 asidn one through five identifiers for address spaces in which you want GTF tracing to occur. The Specifies values ‘asid1’ through ‘asid5’ are hexadecimal numbers from X'0001' to the maximum number of entries in the address space vector table (ASVT). If you specify ASIDP, but do not specify ASID= identifiers. before replying END, GTF traces all address space If the number of values for ASIDP requires more than one line, and a particular ASID value is incorrect, GTF allows you to respecify the correct value without having to reenter all ASIDs. If you specify both ASIDP and JOBNAMEP, GTF will trace address spaces that ASIDP did not identify, identifies run in other address spaces. if some of the jobs that JOBNAMEP nnnnn ][,DATA= nnnnn ][,IOSB][,PCITAB=n]) CCW=([S|I|SI][,CCWN= 232 z/OS: MVS Diagnosis: Tools and Service Aids

261 Generalized Trace Facility Specifies different options for tracing channel programs. If you specify CCW= more than once, GTF of CCW=. specification uses the last If you specify CCWP, but do not specify a value for keyword CCW=, GTF's default CCW tracing depends on what other trace options were specified. The following table shows the defaults for CCW tracing depending on other trace options specified: Table 38: CCW defaults for selected TRACE options Other Trace Options Selected CCW Subparameter Defaults S SSCH or SSCHP I IO or IOP or IOX or IOXP SI SSCH or SSCHP or IO or IOP or IOX or IOXP PCI PCITAB=1 SSCH or SSCHP or IO or IOP or IOX or IOXP CCWN=50 DATA=20 SSCH or SSCHP or IO or IOP or IOX or IOXP Examples: TRACE=IO,CCWP CCW defaults to: CCW=(I,CCWN=50,DATA=20) TRACE=IOP,SSCH,PCI,CCWP CCW defaults to: CCW=(SI,CCWN=50,DATA=20,PCITAB=1) If you specify an option more than once in one line, GTF uses the last of that option. An specification specification of S, I, or SI. If a line contains an error, GTF prompts exception is that GTF uses the first you to respecify the value. S|I|SI Specifies the type of I/O event for which you want channel programs traced. If you specify more than one option, GTF uses the first option. S GTF tracing of channel programs for start subchannel and resume subchannel Specifies operations. CCW=S works only with the SSCH or SSCHP trace options. I Specifies GTF tracing of channel programs for I/O interruptions, including program-controlled interruptions if you specify PCI as a trace option, and synchronous I/O (zHyperLink) end events. CCW=I works only with the IO or IOP trace options. SI GTF tracing of channel programs for start subchannel and resume subchannel Specifies operations and I/O interruptions, and synchronous I/O (zHyperLink) end events. CCW=SI works only with either SSCH or SSCHP and either IO or IOP as trace options. CCWN= nnnnn nnnnn is any Specifies the maximum number of CCWs or DCWs traced for each event. The value decimal number from 1 to 32767. The default is 50. DATA= nnnnn Specifies the maximum number of bytes of data traced for each CCW or DCW, or indirect data nnnnn is any decimal number from 0 to 32767. The default is 20. address word. The value nnnnn bytes of data for each CCW, or each indirect For non-zHPF channel programs, GTF traces data address word (IDAW), or modified indirect data address word (MIDAW). For zHPF channel programs, GTF traces nnnnn bytes of data for each DCW, or each transport indirect data address nnnnn bytes for each synchronous I/O word (TIDAW). For synchronous I/O operations, GTF traces data address word (SDAW). For start subchannel or resume subchannel operations, GTF does not trace data for read, read backwards, or sense commands in the channel programs. If no data is being transferred, regardless of the type of I/O operation, GTF does not trace data for read, read backwards, or sense commands. The Generalized Trace Facility (GTF) 233

262 Generalized Trace Facility For synchronous I/O operations, GTF only traces data at the end of the synchronous I/O operation (synchronous I/O end event) if the operation is successful (response code X’0010’). When the data count in the CCW or DCW or the amount of data associated with the indirect data nnnnn address wordis equal to or less than , GTF traces all data in the data buffer. When the data count in the CCW or DCWor the amount of data associated with the indirect data address word is , GTF traces data only from the beginning and end of the data buffer. If you nnnnn greater than filled the buffer on a read examine the traced data, you can tell whether the channel completely operation. GTF uses a different CCW or DCW tracing method for a data transfer that is in progress when an I/O interruption occurs. Instead of using the data count in the CCW or DCW, GTF tracing depends on the transmitted data count. The transmitted data count is the difference between the data count in the CCW or DCW and the residual count in the subchannel status word (SCSW), for non- zHPF channel programs and the transport status block (TSB), for zHPF channel programs. • When the residual count is greater than the data count in the CCW or DCW, then GTF traces all of the data in the CCW or DCW. , GTF traces all of the transmitted • When the transmitted data count is less than or equal to nnnnn data. , GTF traces data only from the beginning • When the transmitted data count is greater than nnnnn and end of the transmitted data. IOSB Specifies tracing of the input/output supervisor block (IOSB), the input/output block extension (IOBE), for zHPF channel programs and synchronous I/O requests, and, if available, the error recovery procedure work area (EWA), for all events. If you do not specify IOSB, then GTF performs IOSB and EWA tracing only if GTF encounters an exceptional condition when tracing a channel program. n PCITAB= Specifies a decimal number of 100-entry increments for GTF to allocate in an internal program- n is an integer from 1 to 9. The default is 1 (100 controlled interruption (PCI) table. The value of entries). The PCI table keeps track of the channel programs that use PCI. One entry in the PCI table contains information about a program-controlled interruption in one channel program. An entry in the PCI table includes a CCW address and an IOSB address. IO=( [, devnumn...,devnum ]) DEVCLASS=xxxx,DEVCLASS=xxxx,devnum1 Specifies devices for which you want I/O interruptions or synchronous I/O end events traced. Devices are specified by entering a device number or a device class. specified in hexadecimal and is not the same as the subchannel number. The device number must be If you specify any combination of IO= and SSCH=, and IO=SSCH=, the combined number of device numbers for all prompting keywords is unlimited. Specify device numbers individually, or as a range of device numbers with a dash (-) or colon (:) separating the lowest and highest number in the range. For example, to trace I/O interruptions for device numbers 193 through 198, you specify IO=(193-198). specified with the DEVCLASS= keyword parameter, which provides the The device class must be specified device class. The allowable keyword parameters are: ability to trace all devices in the TAPE (magnetic tape devices) COMM (communications) DASD (direct access storage device) DISP (display) UREC (unit/record) CTC (channel to channel) If you specify IOP, IOXP, or SYSP and does not specify IO= in the response to the prompting specified IO, IOX or SYS event keywords respectively. messages, GTF processing proceeds as if you For the following examples, the I/O device numbers and associated device types listed below are used: 234 z/OS: MVS Diagnosis: Tools and Service Aids

263 Generalized Trace Facility I/O Device Number Device Type 230 3390 DASD 450 3490 Tape Drive 575 3480 Tape Drive 663 3380 DASD 020 3274 Communications Controller In this example, the resulting trace includes information for all DASD devices and one 3490 tape drive at address 450. IO=(DEVCLASS=DASD,450) In the following example, the resulting trace includes information for all DASD and TAPE devices and the communications controller at address 020. IO=(DEVCLASS=DASD,DEVCLASS=TAPE,020) In this example, the resulting trace includes information for the devices at addresses 450, 575, and 663. IO=(450-663) DEVCLASS=xxxx,DEVCLASS=xxxx, devnum1[,devnumm... IO=SSCH=( [,devnum]) devices for which you want I/O interruptions and start subchannel operations, and Specifies synchronous I/O start and end events traced. See the IO= prompting keyword for a description of how to specify devices to be traced. jobname1 [, jobnamen ]...[, jobname5 ]) JOBNAME=( one through Specifies job1 through five job names for which you want GTF tracing to occur. The values must be valid job names. job5 These job names can be generic, as well as job names. If you want to specify generic job specific, names, you must use * or % in the job name. The asterisk is a placeholder for one or more valid job name characters, or indicates no characters. For example, if the you enter JOBNAMEP=I*MS*, GTF will process trace data for address spaces with job names IABMS01, IAMS, IMS, IMSA, IMS00012, and so on. However, if you code JOBNAMEP=*MASTER*, that job name represents only the master address space. The percent symbol is a placeholder for a single valid job name character. For example, if you code JOBNAMEP=I%MS%%, GTF will process trace data for address spaces with job names IAMS01 and IXMSBC, but not job names IMS001 or I999MS. The combination %* is a placeholder for at least one character. If you specify JOBNAMEP, but do not specify JOBNAME before replying END, GTF traces all job names. If the number of values for JOBNAMEP requires more than one line, and a particular job name value is incorrect, GTF allows you to respecify the correct value without having to reenter all job names. If you specify both ASIDP and JOBNAMEP, GTF will trace jobs that JOBNAMEP did not identify, if some identifies contain jobs that JOBNAMEP did not identify. of the address spaces that ASIDP The Generalized Trace Facility (GTF) 235

264 Generalized Trace Facility PFID=( pfidn ]...[, pfid256 ]) pfid1 [, Specifies 1 to 256 PFIDs or PFID ranges for which you want GTF tracing to occur. The values are hexadecimal numbers from 0 to FFFFFFFF. Leading zeroes are allowed. For example: 1, 01, and first specified, number in the range must be lower 00000001 are all accepted. If a PFID range is the than the second number in the range. Duplicate PFID values are ignored. Overlapping PFID ranges are accepted without issuing an error message. If you specify PFIDP, but do not specify PFID= before replying END, GTF traces all PFIDs. If the number of values for PFIDP requires more than one line, and a particular PFID value is incorrect, GTF allows you to re-specify the correct value without having to reenter all PFIDs. [, coden ]...[, PI=( ]) code0 code50 1 through 50 program interruption codes, in decimal notation, that you want traced. If you Specifies specify PIP or SYSP, and do not specify PI= in response to this prompting message, GTF traces all program interruptions. SSCH=( [, devnumn..., DEVCLASS=xxxx,DEVCLASS=xxxx,devnum1 devnum]) Specifies devices for which you want start subchannel operations and synchronous I/O start events traced. See the IO= “Prompting keywords” on page 231 for a description of how to specify devices to be traced. svcnum1 [, svcnumn ]...[, svcnum50 ]) SVC=( 1 through 50 SVC numbers, in decimal notation, that you want traced. If you specify SVCP or Specifies SYSP, and do not specify SVC= in response to the prompting message, GTF traces all SVC numbers. Both SVC entry and exit are be recorded. USR=( [, eventn ]...[, event50 ]) event1 identifiers Specifies 1 through 50 user event (EIDs) for which you want user data traced. The values for USR are three-digit hexadecimal numbers, as follows: identifiers and the types of events they represent Table 39: Event Identifier (Hex) Type of Event User 000-3FF Reserved for program products 400-5FF Reserved for IBM subsystems and components 600-FFF If you specify USRP and do not specify USR= in response to the prompting message, all instances of GTRACE issued with TEST=YES will return with an indication that tracing is not active. Examples of sample prompting sequences This example shows how to store prompting keywords in a SYS1.PARMLIB member. If you start GTF with options requiring prompting keywords stored in SYS1.PARMLIB, these prompting keywords must also appear in the parmlib member. If prompting keywords are used in the parmlib member without the replies included, GTF will not obtain the replies from the console. GTF will use the options without the prompting (for example, SVCP becomes SVC). A SYSLIB DD statement in your cataloged procedure causes GTF to read the prompting keywords from the specified parmlib member. The second and subsequent logical records in the member should contain only the prompting keywords. 236 z/OS: MVS Diagnosis: Tools and Service Aids

265 Generalized Trace Facility GTF uses either the END keyword, or end-of-file on the member as the indicator that there is no more prompting input from parmlib. If the number of events for one keyword require more than one record, respecify the keyword in a subsequent prompting record with the additional events, as follows: Record #1 TRACE=IOP,SVCP,SSCH Record #2 IO=(D34,D0C),SVC=(1,2,3) Record #3 SVC=(4,5,6,7,8,9,10),END Do not respecify the keyword through the system console at this point, because GTF will then override all of the options and keywords in the parmlib member. reading the options and prompting keywords in the parmlib member, it displays the When GTF finishes options through message AHL103I: AHL103I TRACE OPTIONS SELECTED--IOP,SVCP,SSCH AHL103I IO=(D34,D0C),SVC=(1,2,3,4,5,6,7,8,9,10) This message may be a multiple-line message, depending on the number of options you select. If the set of devices specified for IO= and SSCH= are identical, message AHL103I will show them as if specified by use of IO=SSCH. specified, you then have the opportunity to accept the parmlib After GTF displays all of the options options, or completely change the options by respecifying them through the console by replying to the following message: AHL125A RESPECIFY TRACE OPTIONS OR REPLY U. In Figure 91 on page 238 , you started GTF in external mode to the data set defined in the cataloged procedure. You selected two trace options in reply 00: • SYSP requests that GTF trace specific system event types. specific user entries that the GTRACE macro generates. • USRP requests that GTF trace Message AHL101A instructed you to specify values for the SVC, IO, SSCH, PI, and USR keywords. In reply 01 to message AHL101A, you selected: • Five SVCs • Two devices for non-program-controlled I/O interruptions • One device for SSCH operations identifiers. • Three user event GTF does not record any other SVC, IO, and SSCH events. Because you did not specify any program interruption codes for PI=, GTF would trace all program interruptions. The Generalized Trace Facility (GTF) 237

266 Generalized Trace Facility START MYPROC.EXAMPLE7,,,(MODE=EXT) 00 AHL100A SPECIFY TRACE OPTIONS REPLY 00,TRACE=SYSP,USRP 01 AHL101A SPECIFY TRACE EVENT KEYWORDS--IO=,SSCH=,SVC=,PI=,USR= 01 AHL101A SPECIFY TRACE EVENT KEYWORDS--IO=SSCH= REPLY 01,SVC=(1,2,3,4,10),IO=(191,192),USR=(10,07A,AB) 02 AHL102A CONTINUE TRACE DEFINITION OR REPLY END REPLY 02,SSCH=282,END AHL103I TRACE OPTIONS SELECTED--SYSP,PI,IO=(191,192),SSCH=(282) AHL103I SVC=(1,2,3,4,10),USR=(010,07A,0AB) 03 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY 03,U Figure 91: Example: Specifying prompting trace options SYSP and USRP defined in the data set In Figure 92 on page 238 you started GTF in external mode, using the trace options in the cataloged procedure. You are prompted for the information as follows: specified • Message AHL100A prompts for trace options. • In reply 00, you selected six trace options: SSCHP, IOP, PCI, CCWP, SVC, and JOBNAMEP. • Message AHL101A prompts to specify values for the IO, SSCH, CCW and JOBNAME prompting keywords. • In reply 01, you select one device for tracing both IO and SSCH events and limit GTF tracing to one job. five options for CCW tracing. • In reply 02, you specify final The is that GTF traces CCWs for both start subchannel operations and result of these specifications I/O interruptions at device 580 for the job BACKWARD, and all SVCs in BACKWARD's address space. GTF would allocate 200 entries in the PCI table, and trace up to 100 CCWs or DCWs, up to 40 bytes of data for each CCW or DCW, and the IOSB, IOBE, and EWA. START USRPROC,,,(MOD=EXT) 00 AHL100A SPECIFY TRACE OPTIONS REPLY 00, TRACE=SSCHP,IOP,PCI,CCWP,SVC,JOBNAMEP 01 AHL101A SPECIFY TRACE EVENT KEYWORDS --IO=,SSCH=,CCW=,JOBNAME=,IO=SSCH= REPLY 01,JOBNAME=(BACKWARD),IO=SSCH=580 02 AHL102A CONTINUE TRACE DEFINITION OR REPLY END REPLY 02,CCW=(CCWN=100,DATA=40,PCITAB=2,IOSB,SI),END AHL103I TRACE OPTIONS SELECTED--PCI,SVC,IO=SSCH=(580) AHL103I CCW=(SI,IOSB,CCWN=100,DATA=40,PCITAB=2) AHL103I JOBNAME=(BACKWARD) 03 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY 03,U Figure 92: Example: Specifying prompting trace options 238 z/OS: MVS Diagnosis: Tools and Service Aids

267 Generalized Trace Facility Receiving GTF traces GTF writes trace data in GTF trace tables in the GTF address space in storage. GTF trace data in storage are printed or viewed as part of a dump, if the dump options list includes TRT to request trace data. The following table shows the dumps that have TRT in their default options. For unformatted dumps that are printed or viewed through IPCS, format the trace data by specifying the IPCS GTFTRACE subcommand or using the IPCS Trace Processing selection panel. To format and print GTF trace data in a GTFOUTxx or IEFRDER data set, specify the IPCS GTFTRACE subcommand or use the IPCS Trace Processing selection panel. If the GTF data was created for VTAM diagnosis, you can use the ACF/TAP program to format the VTAM data. How to obtain trace data Dump ABEND dump to SYSABEND Default Not available ABEND dump to SYSMDUMP ABEND dump to SYSUDUMP Request SDATA=TRT Request SDATA=TRT SNAP dump Stand-alone dump Default SVC dump for SDUMP or SDUMPX macro Default SVC dump for DUMP operator command Default SVC dump for SLIP operator command with ACTION=SVCD, Default ACTION=STDUMP, ACTION=SYNCSVCD, or ACTION=TRDUMP Request SDATA=TRT Any dump customized to exclude trace data For more information, see the following references: • See z/OS MVS IPCS Commands for the GTFTRACE subcommand. for the panel interface. z/OS MVS IPCS User's Guide • See Combining, extracting, and merging GTF trace output GTF trace data can be combined with other data or extracted from dumps and data sets using two IPCS subcommands: COPYTRC and MERGE. Use consolidated or merged trace output to show the chronology of events around the time of an error. Specify start and stop times for the merge to see events beginning a little before the error occurred and ending a little after. On the CTRACE and GTFTRACE subcommands, specify the jobs and address space identifiers (ASID) involved, so that the merged output contains only pertinent trace records. Merging is most useful when several components are running traces; the system can also be running a GTF trace. Each component puts its trace records into its own buffers independently. GTF is independent from all of the component traces. You can merge these separate records into one chronological sequence to make diagnosis easier. See z/OS MVS IPCS Commands for more information about COPYTRC and MERGE. Combining and extracting GTF output Use the IPCS COPYTRC subcommand to do one or more of the following: • Consolidate GTF trace data into one data set from: – Multiple GTF data sets – Multiple GTF data sets, dumps, or both The Generalized Trace Facility (GTF) 239

268 Generalized Trace Facility – More than one system • Extract GTF trace data from SVC dumps and stand-alone dumps specified list of systems • Extract from merged data the GTF trace data for a If you have GTF set up to write data for one system to multiple data sets, you can use the IPCS COPYTRC subcommand to consolidate the data into one data set. You should do this before you consolidate GTF data from multiple systems with the MERGE or COPYTRC subcommands. Figure 93 on page 240 shows an example of a GTF cataloged procedure with 3 data sets for GTF defined data from system SYS01. //GTFABC PROC MEMBER=GTFPARM //IEFPROC EXEC PGM=AHLGTF,REGION=2880K,TIME=1440, // PARM=('MODE=EXT,DEBUG=NO') //IEFRDER DD DSNAME=SYS1.GTFTRC,UNIT=SYSDA, // SPACE=(4096,20),DISP=(NEW,KEEP) //SYSLIB DD DSN=SYS1.PARMLIB(&MEMBER),DISP=SHR //GTFOUT1 DD DSNAME=SYS01.DSN1,UNIT=&DEVICE,DISP=&DSPS; //GTFOUT2 DD DSNAME=SYS01.DSN2,UNIT=&DEVICE,DISP=&DSPS; //GTFOUT3 DD DSNAME=SYS01.DSN3,UNIT=&DEVICE,DISP=&DSPS; Figure 93: Example: Consolidating GTF output from multiple data sets From IPCS, issue the following command to consolidate the data from the data sets defined in the cataloged procedure into one data set, GTF.SYS01: COPYTRC TYPE(GTF) INDATASET(SYS01.DSN1,SYS01.DSN2,SYS01.DSN3) OUTDATASET(GTF.SYS01) , the COPYTRC subcommand is used to consolidate data from 3 systems, in data In Figure 94 on page 240 sets GTF.SYS01, GTF.SYS02, and GTF.SYS03, into one output data set, GTF.ALLSYS. COPYTRC TYPE(GTF) INDATASET(GTF.SYS01,GTF.SYS02,GTF.SYS03) OUTDATASET(GTF.ALLSYS) Figure 94: Example: Consolidating GTF output from multiple systems Note that just one data set per system was used on the COPYTRC command. For best results, if you have first consolidate those using a separate instance of the more than one data set for a system, you should COPYTRC command. To format the output data set for GTF data, issue the following IPCS subcommand: GTFTRACE DSNAME(ALLSYS) Merging trace output Use the IPCS MERGE subcommand to merge multiple traces into one chronological sequence. The traces can be all of the following: • Component traces from the same dump on direct access storage (DASD) • Component traces from different dumps on DASD • GTF trace records from a dump or data set and on tape or DASD 240 z/OS: MVS Diagnosis: Tools and Service Aids

269 Generalized Trace Facility In Figure 95 on page 241 , the MERGE subcommand is used to consolidate and format data from 3 systems, in data sets GTF.SYS04, GTF.SYS05, and GTF.SYS06, into one chronological sequence in output data set, GTF.SYSALL. MERGE GTFTRACE DSNAME(GTF.SYS04) GTFTRACE DSNAME(GTF.SYS05) GTFTRACE DSNAME(GTF.SYS06) MERGEEND Figure 95: Example: Merging GTF output from multiple systems Reading GTF output This topic shows the format of the trace records that GTF creates. When you select your tracing options carefully, GTF provides detailed information about the system and user events where your problem lies, making it easier to diagnose. This section contains the following topics: • “Formatted GTF trace output” on page 243 which has information about trace records formatted by the IPCS GTFTRACE subcommand. • “Unformatted GTF trace output” on page 298 which has information about unformatted trace records. “Trace options” on page 241 lists the GTF trace options and the trace records they generate in GTF trace output. Use this list to correlate the options you selected with their associated trace records. Some trace options in the table do not have trace records associated with them: • ASIDP - that GTF trace only events from the select address spaces. Specifies • JOBNAMEP - Specifies that GTF trace only events in selected jobs. Specifies the end of prompting keyword values specified. • END - Specifies • TRC - that GTF tracing includes the GTF address space. Trace options Trace Options Trace Record Identifier ASIDP N/A CCW CCW, TCW, Synch I/O CCWP CCW, TCW CSCH CSCH DSP DSP, LSR, SDSP, SRB END N/A EXT EXT HSCH HSCH The Generalized Trace Facility (GTF) 241

270 Generalized Trace Facility IO EOS, INTG, IO, IOCS, SYNE IOP EOS, INTG, IO, IOCS, SYNE IOX IOX IOXP IOXP JOBNAMEP N/A MSCH MSCH PCI PCI PCIE PCILG, PCISTG, ADINT, PCIDMX PFIDP N/A PI PGM, PI PIP PGM, PI RNIO RNIO RR FRR, STAE SIO RSCH, SSCH SIOP RSCH, SSCH SLIP SLIP SRM SRM SSCH RSCH, SSCH, SYNS SSCHP RSCH, SSCH, SYNS SVC SVC SVCP SVC SYS CSCH, EOS, EXT, FRR, HSCH, INTG, IO, IOCS, MSCH, PGM, PI, SSCH, STAE, SVC, SYNE, SYNS SYSM CSCH, EOS, EXT, FRR, HSCH, INTG, IO, IOCS, MSCH, PGM, PI, SSCH, STAE, SVC, SYNE, SYNS SYSP CSCH, EOS, EXT, FRR, HSCH, INTG, IO, IOCS, MSCH, PGM, PI, SSCH, STAE, SVC, SYNE, SYNS TRC N/A 242 z/OS: MVS Diagnosis: Tools and Service Aids

271 Generalized Trace Facility USR USR USRP USR XSCH XSCH Formatted GTF trace output This topic describes GTF trace output records formatted by the IPCS GTFTRACE subcommand. In each field is indicated by the number of characters. The characters formatted record, the length of each indicate the type of data in the field, as follows: c Character d Decimal h Hexadecimal x Variable information y Variable information The CCW trace record format uses additional letters to distinguish parts of fields. A trace record can contain indicators to denote unusual conditions that occurred while GTF was tracing the event for the record. The indicators are: N/A does not apply in this record. In a 2-byte Not applicable. The not applicable field field, N/ . appears as Unavailable. GTF could not gather the information. In a 2-byte field, unavailable U/A U/ appears as . PPPPPPPP Unavailable because of a page fault encountered while GTF was gathering the data (SVC only). Unavailable because of security considerations (SVC only). SSSSSSSS ******** Unavailable because of an error that occurred while GTF was gathering the data or due to the data being paged out. X'EEEE' Unavailable because of a severe error that occurred while GTF was gathering the data. 2 data bytes of the trace record. The contents of the first This value appears in the trace record are unpredictable. Trace record identifiers identifier to indicate the type of record. Table 40 on page 243 lists the identifiers Each trace record has an alphabetically and gives the page that shows the format for the record. Table 40: Summary of trace record identifiers For format, see: GTF Trace Record Parameter in SYS1.PARMLIB Trace Record Member or Operator Reply Identifier **** Time stamp “Time stamp records” on page 247 The Generalized Trace Facility (GTF) 243

272 Generalized Trace Facility Table 40: Summary of trace record identifiers (continued) GTF Trace Record Parameter in SYS1.PARMLIB For format, see: Trace Record Member or Operator Reply Identifier Lost event **** “Lost event records” on page 248 ADINT Adapter interruption PCIE “ADINT trace records” on page 249 CCW CCW Non-zHPF channel “CCW trace records” on page 249 program Clear subchannel “CSCH and HSCH trace records” on page CSCH CSCH, SYS, SYSM, SYSP 251 operation “DSP and SDSP trace records” on page Task dispatch DSP DSP 252 EOS End-of-sense “EOS, INTG, IO, IOCS, and PCI trace IO, IOP, SYS, SYSM, SYSP records” on page 254 interruption EXT, SYS, SYSM, SYSP General external EXT “EXT trace records” on page 257 interruption RR, SYS, SYSM, SYSP Functional recovery FRR “FRR trace records” on page 259 routine return HEXFORMAT Unformatted trace event “HEXFORMAT, SUBSYS, and SYSTEM trace records” on page 261 Halt subchannel “CSCH and HSCH trace records” on page HSCH HSCH, SYS, SYSM, SYSP operation 251 Interrogate input/output IO, IOP, SYS, SYSM, SYSP “EOS, INTG, IO, IOCS, and PCI trace INTG records” on page 254 interruption Input/output interruption IO, IOP, SYS, SYSM, SYSP “EOS, INTG, IO, IOCS, and PCI trace IO records” on page 254 IOCS IO, IOP, SYS, SYSM, SYSP “EOS, INTG, IO, IOCS, and PCI trace Input/output interruption records” on page 254 with concurrent sense IOX “IOX trace records” on page 261 Input/output interruption IOX, IOXP, SYS, SYSM, SYSP summary record format DSP “LSR trace records” on page 264 Local supervisor routine LSR dispatch MSCH MSCH, SYS, SYSM, SYSP Modify subchannel “MSCH trace records” on page 265 operation PCI PCI “EOS, INTG, IO, IOCS, and PCI trace Program-controlled records” on page 254 input/output interruption PCIE de-multiplexing PCIE “PCIDMX trace records” on page 266 PCIDMX event PCI load instruction PCIE “PCILG trace records” on page 266 PCILG PCI store instruction PCIE PCISTG “PCISTG trace records” on page 267 PI, PIP, SYS, SYSM, SYSP “PGM and PI trace records” on page 268 Program interruption PGM Program interruption PI, PIP, SYS, SYSM, SYSP “PGM and PI trace records” on page 268 PI VTAM remote network RNIO RNIO “RNIO trace records” on page 269 input/output event RSCH SSCH, SSCHP “RSCH trace records” on page 270 Resume subchannel Task re-dispatch DSP “DSP and SDSP trace records” on page SDSP 252 244 z/OS: MVS Diagnosis: Tools and Service Aids

273 Generalized Trace Facility Table 40: Summary of trace record identifiers (continued) GTF Trace Record Parameter in SYS1.PARMLIB For format, see: Trace Record Member or Operator Reply Identifier SLIP program event SLIP “SLIP trace records” on page 271 SLIP interruption Service request block DSP “SRB trace records” on page 277 SRB routine dispatch or re- dispatch “SRM trace records” on page 278 SRM SRM System resources manager return SSCH SSCH, SSCHP, SYS, SYSM, SYSP “SSCH trace records” on page 279 Start subchannel operation STAE or ESTAE recovery RR, SYS, SYSM, SYSP “STAE trace records” on page 280 STAE routine return “HEXFORMAT, SUBSYS, and SYSTEM SUBSYS Unformatted trace event trace records” on page 261 Supervisor call SVC, SVCP, SYS, SYSM, SYSP “SVC and SVCR trace records” on page SVC interruption 282 Supervisor call exit SVC, SVCP, SYS, SYSM, SYSP “SVC and SVCR trace records” on page SVCR 282 SYNE “SYNS and SYNE trace records” on page Synchronous I/O end IO, IOP, SYS, SYSM, SYSP 284 Synchronous I/O start “SYNS and SYNE trace records” on page SYNS SSCH, SSCHP, SYS, SYSM, SYSP 284 SYNCH I/O Synchronous I/O request “SYNCH I/O trace records” on page 285 CCW information SYSTEM Unformatted trace event “HEXFORMAT, SUBSYS, and SYSTEM trace records” on page 261 zHPF channel program CCW “TCW trace records” on page 288 TCW User event “USR trace records” on page 290 USR, USRP USR XSCH Cancel subchannel XSCH, SYS, SYSM, SYSP “XSCH trace record” on page 295 operation Example of formatted GTF trace output This section contains screen images that show GTF records. IPCS produced the screens from an example dump. These records are in comprehensive format and are time stamped. The GTFTRACE subcommand was issued on the IPCS Subcommand Entry panel shown in Figure 96 on page 246 . The Generalized Trace Facility (GTF) 245

274 Generalized Trace Facility IPCS OUTPUT STREAM ------------------------------------------ LINE 0 COLS 1 78 COMMAND ===> SCROLL ===> CSR ****************************** TOP OF DATA *********************************** **** GTFTRACE DISPLAY OPTIONS IN EFFECT **** SSCH=ALL IO=ALL CCW=SI SVC=ALL PI=ALL EXT RNIO SRM RR DSP SLIP **** GTF DATA COLLECTION OPTIONS IN EFFECT: **** Minimum tracing for IO, SSCH, SVC, PI, EXT, and FRR events All GTRACE events requested All events associated with the execution should be traced All DISPATCHER events traced PCI events are to be traced System resource manager events traced **** GTF TRACING ENVIRONMENT **** Release: SP7.8.0 FMID: HBB7780 System name: FIRST CPU Model: 2097 Version: FF Serial no. 170067 SVC CODE... 002 ASCB... 00FB8100 CPU... 0000 PSW... 07041000 80000002 00000000 0557C0D0 TCB... 006F0BF8 R15... 00FDCAEA R0... 00000000 R1... 806F2BE0 GMT-01/09/2011 00:21:13.668101 LOC-01/08/2011 19:21:13.668101 SVCR CODE... 002 ASCB... 00FB8100 CPU... 0000 PSW... 07041000 80000002 00000000 0557C0D0 TCB... 006F0BF8 R15... 813BCF7C R0... 813BCF7C R1... 02514607 GMT-01/09/2011 00:21:13.668143 LOC-01/08/2011 19:21:13.668143 Figure 96: Example: IPCS subcommand entry panel for GTFTRACE Figure 97 on page 246 shows records for the start subchannel operation (SSCH) event. IPCS OUTPUT STREAM ------------------------------------------ LINE 0 COLS 1 78 COMMAND ===> SCROLL ===> CSR SRB ASCB... 00FC1500 CPU... 0000 PSW... 07040000 80000000 00000022 0217E07C R15... 8217E050 SRB... I TYPE... INITIAL DISPATCH OF SRB GMT-01/09/2011 00:39:44.155668 LOC-01/08/2011 19:39:44.155668 DSP ASCB... 00FC1500 CPU... 0000 PSW... 07040000 80000078 00000000 013AB828 TCB... 006FF148 R15... 813AB828 R0... 006E1BC0 R1... 0217E050 GMT-01/09/2011 00:39:44.155742 LOC-01/08/2011 19:39:44.155742 SSCH... 00982 ASCB... 00FB8880 CPUID... 0000 JOBN... JES2 RST... 0FC27620 VST... 02626620 DSID... 006DCFEC CC... 00 SEEKA... 00000000 15000D07 GPMSK... 00 OPT... 00 FMSK... 00 DVRID... 02 IOSLVL.. 01 UCBLVL.. 01 UCBWGT.. 00 BASE... 00982 ORB... 00F1D4E0 13C2D081 0F1FDC68 0000FE00 00000000 00000000 00000000 00000000 GMT-01/09/2011 00:21:32.948888 LOC-01/08/2011 19:21:32.948888 Figure 97: Example: GTF record for SSCH events and Figure 98 on page 247 show records for two input/ The screen images in Figure 98 on page 247 output (IO) interruption events. The last two rows in the I/O statistics section will only appear for zHPF I/O events. 246 z/OS: MVS Diagnosis: Tools and Service Aids

275 Generalized Trace Facility IO... 00982 ASCB... 00FB8880 CPUID... 0000 JOBN... JES2 PSW... 07041000 80000000 00000000 05722F66 IRB... 10C04007 0FC27360 0C000000 00800002 00000000 TCB... 006FF368 SENSE... N/A FLA... 40 OPT... 00 DVRID... 02 IOSLVL.. 01 UCBLVL.. 01 UCBWGT.. 00 BASE... 00982 I/O Statistics: Connect. 00000000 Pending. 01BE0000 Discon.. 01A80000 CUQ... 00000000 DAO... 00000000 Devbsy.. 00000000 ICMR... 00000000 StartCt. 00000000 SamplCt. 0BEF0000 ZTotdev. D7C20000 ZDefer.. 01310000 ZCUQ... 00000000 ZDevBsy. 00000000 ZDAO... 00000000 IntrDly. hhhhhhhh GMT-01/09/2011 00:21:32.944548 LOC-01/08/2011 19:21:32.944548 **** GTFTRACE DISPLAY OPTIONS IN EFFECT **** SSCH=ALL IO=ALL CCW=SI SVC=ALL PI=ALL EXT RNIO SRM RR DSP SLIP **** GTF DATA COLLECTION OPTIONS IN EFFECT: **** IO filtering requested CCW trace prompting IO CCW records SSCH CCW records All records timestamped SSCH prompting *** DATE/TIME: GMT-01/09/11 21:14:10 LOC-01/09/11 21:14:10.009827 Figure 98: Example: GTF records for IO interruption events GMT-01/09/11 21:14:10.009803 LOC-01/09/11 21:14:10.009803 PCI... 0000 ASCB... 00000000 CPUID... 0000 JOBN... ... PSW... 00000000 00000000 00000000 00000000 IRB... 00000000 00000000 00000000 00000000 00000000 TCB... 00000000 SENSE... 0000 FLA... 00 OPT... 00 DVRID... 00 IOSLVL.. 00 UCBLVL.. 00 UCBWGT.. 00 BASE... 00000 GMT-01/09/11 21:14:10.009955 LOC-01/09/11 21:14:10.009955 EOS... 10000 ASCB... 00000000 CPUID... 8861 JOBN... ... PSW... 00000000 00000000 00000000 00000000 IRB... 00000000 00000000 00000000 00000000 00000000 TCB... 00000000 SENSE... 0000 FLA... 00 OPT... 00 DVRID... 00 IOSLVL.. 00 UCBLVL.. 00 UCBWGT.. 00 BASE... 00000 GMT-01/09/11 21:14:10.078486 LOC-01/09/11 21:14:10.078486 CSCH... 10000 ASCB... 00000000 CPUID... 0000 JOBN... ... DEV... 0000 SFLS... 0000 SID... 00000000 CC... 00 DVRID... 00 ARDID... 00 IOSLVL.. 00 UCBLVL.. 00 UCBWGT.. 00 BASE... 00000 GMT-01/09/11 21:14:10.099752 LOC-01/09/11 21:14:10.099752 HSCH... 10000 ASCB... 00000000 CPUID... 8861 JOBN... ... DEV... 0000 SFLS... 0000 SID... 00000000 CC... 00 DVRID... 00 ARDID... 00 IOSLVL.. 00 UCBLVL.. 00 UCBWGT.. 00 BASE... 00000 GMT-01/09/11 21:14:10.119803 LOC-01/09/11 21:14:10.119803 ****************************** END OF DATA *********************************** Figure 99: Example: More GTF records for IO interruption events Formatted trace records for events The following sections describe different types of formatted trace records. Time stamp records Time stamp records mark the time an event occurred. Record Format After Each Trace Record GMT-mm/dd/yy hh:mm:ss:dddddd LOC-mm/dd/yy hh:mm:ss.dddddd The Generalized Trace Facility (GTF) 247

276 Generalized Trace Facility GMT-mm/dd/yy hh:mm:ss Month/day/year and Greenwich mean time given in hour:minute:second format. LOC-mm/dd/yy hh:mm:ss.dddddd Month/day/year and local time given in hour:minute:second.microsecond format. Local time is calculated using a time zone offset established when tracing starts. Source index records Source index records are added when GTF trace records are consolidate using the IPCS COPYTRC subcommand. The records identify the system that produced the GTF trace record. Record Format After Each Trace Record, if the GTF trace records are consolidated with the IPCS COPYTRC subcommand: SOURCE INDEX: 01 The source index record indicates that the GTF trace record was produced by the system with identifier 01. identifiers are Identifiers include the system name and the trace options in effect for that system. The listed at the top of the IPCS report. Lost event records A lost event record indicates that GTF lost the trace records for one or more events because of an error or overflow of the trace buffer. Record Format When GTF Trace Buffer is Lost due to Error **** ONE TRACE BUFFER LOST TIME hh.mm.ss.dddddd hh.mm.ss.dddddd first trace record in the The time of day (hour.minute.second.microsecond) when GTF placed the buffer. The size of the GTF trace buffer is: • Equal to the blocksize used by GTF when writing the trace data, if GTF is writing the trace records to a data set on a direct access storage device (DASD). The system displays the blocksize in message AHL906I. If the records are to be written to a data set, the system issues message AHL906I after starting GTF. • 32,760 bytes, if GTF is writing the trace records to a data set on tape. • 32,768 bytes, if GTF is writing the trace records only into internal trace buffers. Record Format for Number of Trace Events Lost due to Errors or Trace Buffer Overflow ****** LOST EVENTS NUM ddddddddddddd LOCAL TIME mm/dd/yyyy hh.mm.ss.nnnnnn *** dddddddddd The number of lost events mm/dd/yyyy first trace record in the current trace buffer. The date (in month/day/year format) when GTF placed the hh.mm.ss.dddddd The time of day (hour.minute.second.microsecond) when GTF placed the first trace record in the current trace buffer. 248 z/OS: MVS Diagnosis: Tools and Service Aids

277 Generalized Trace Facility ADINT trace records ADINT records represent adapter interruptions. ADINT... ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ISC... hh AISM... hh ASCB hhhhhhhh Address of the ASCB for the address space that was active when the adapter interruption occurred on this CPU. CPUID hhhh Address of the processor on which the adapter interruption occurred. JOBN cccccccc Name of the job associated with the address space that was active when the adapter interruption occurred on this CPU. PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word (PSW) stored when the interruption occurred. ISC hh Interruption subclass. AISM hh mask. Adapter source identification CCW trace records A CCW record represents the processing of a non-zHPF channel program. CCW trace records appear following EOS, IO, IOCS PCI, RSCH, or SSCH trace records; they do not appear alone. Any of the formats can appear in any combination in one CCW trace record. CCW CHAIN FORMAT d ccc DEV... hhhh ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc Fhhhhhhh ---CCW-- ---CCW-- dddddddd dddddddd | cccccccc | Fhhhhhhh ---CCW-- ---CCW-- dddddddd dddddddd | cccccccc | Fhhhhhhh ---CCW-- ---CCW-- dddddddd dddddddd | cccccccc | dddddddd dddddddd | cccccccc | dddddddd dddddddd | cccccccc | dddddddd dddddddd | cccccccc | dddddddd dddddddd | cccccccc | dddddddd dddddddd | cccccccc | . --Back half of split data-- . dddddddd dddddddd | cccccccc | dddddddd dddddddd | cccccccc | Fhhhhhhh ---CCW-- ---CCW-- dddddddd dddddddd | cccccccc | IDAW hhhhhhhh_hhhhhhhh hhhh hhhhhhhh hhhhhhhh | cccccccc | hhhhhhhh hhhhhhhh | cccccccc | MIDAW hhhhhhhh hhhhhhhh hhhh hhhhhhhh hhhhhhhh | cccccccc | hhhhhhhh_hhhhhhhh hhhhhhhh hhhhhhhh | cccccccc | IOSB hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh EWAx hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh FORMAT d ccc Format (d) and type of trace event (ccc): EOS, IO, IOCS, PCI, RSCH, or SSCH. Format is either zero or 1. DEV shhhh DEV snnnn field of the UCB. This number is qualified with the subchannel Device number from the UCBCHAN (UCBSID). identifier The Generalized Trace Facility (GTF) 249

278 Generalized Trace Facility ASCB hhhhhhhh in the IO, IOCS, SSCH, RSCH, PCI, or EOS base record. Same as the ASCB field CPU hhhh in the IO, IOCS, SSCH, RSCH, PCI, or EOS base record. Same as the CPU ID field JOBN cccccccc Same as the job named (JOBN) field in the IO, IOCS, SSCH, RSCH, PCI, or EOS base record. Fhhhhhhh Fullword address of the CCW. If the high order bit of the address is on, this is the real address of the CCW, otherwise this is the virtual address of the address of the CCW. ---CCW-- Is the CCW command. The command is either a format 0 or format 1 CCW. • Format 0 CCW is in the format ooaaaaaa ffuubbbb • Format 1 CCW is in the format ooffbbbb aaaaaaaa oo op code. aaaaaa Real address of data associated with the CCW. If indirect address words (IDAWs) are present, this is the address of the IDAW list. aaaaaaaa Fullword real address of data associated with the CCW. If IDAWs are present, this is the address of the IDAW list. ff CCW flags; if this flag is ... .1.. , then this indicates that an IDAW list is present. If this flag is ... ..1., then a suspend of the channel program was requested. If this flag is ... ...1 , then a modified indirect addressing word list is present. uu Not used by hardware; could contain a nonzero character. bbbb Byte count. dddddddd dddddddd | cccccccc | field, then all transferred Information transferred by the CCW. If there is not a series of dashes in this data is displayed in four byte sections. --Back half of split data-- on the START specified Indicates there were more bytes of information transferred than were command. The default value is 20 bytes, but you can specify the number of bytes to be shown. The first. The first specified value is halved; for an odd number, the larger section is shown section of data displayed comes from the beginning of the buffer from which the data was transferred. The last section comes from the end of the buffer. IDAW hhhhhhhh or hhhhhhhh_hhhhhhhh hhhh Contents of the IDAW, a fullword real address for 31–bit IDAWs or a doubleword real address for 64– bit IDAWs, followed by a halfword specifying the length of the data at that address. The data at the hhhhhhhh_hhhhhhhh version of this parameter specifies address follows the halfword length. The 64–bit. MIDAW hhhhhhhh hhhhhhhh hhhh hhhhhhhh_hhhhhhhh modified indirect addressing word (MIDAW), which is 16 bytes, formatted in the GTF trace with The first 8 bytes on the first line containing the flags and data length and the second line containing the first 8 bytes of MIDAW data to the 64 bit data address. The length of the data is replicated after the make it easier to read and maintain consistency with the IDAW format. The data at the address follows the halfword length. The data for a MIDAW is not formatted if the skip indicator is on. 250 z/OS: MVS Diagnosis: Tools and Service Aids

279 Generalized Trace Facility IOSB hhhhhhhh Fullword virtual address of the IOSB followed by the contents of the IOSB. The fullword at offset X'34' of the IOSB points to an error recover procedure work area (EWA), or is zero. The EWA is traced and documented directly below the IOSB and is formatted in the same manner as the IOSB. EWAx hhhhhhhh Fullword virtual address of the error recovery procedure work area, followed by the contents of EWA. CSCH and HSCH trace records CSCH and HSCH records represent a clear subchannel operation and a halt subchannel operation. Record Formats CSCH... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc DEV... hhhh SFLS... hhhh SID... hhhhhhhh CC... hh DVRID... hh ARDID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh HSCH... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc DEV... hhhh SFLS... hhhh SID... hhhhhhhh CC... hh DVRID... hh ARDID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh CSCH shhhh HSCH shhhh of the UCB, which includes the subchannel set Device number from the UCBCHAN identifier field when appropriate. ASCB hhhhhhhh Address of the ASCB for the address space that started the I/O operation. CPUID hhhh Address of the processor on which the I/O operation started JOBN cccccccc One of the following: cccccccc Name of the job associated with the task that requested the I/O operation N/A No job is associated with the requested I/O DEV hhhh Device number from the UCBCHAN of the UCB. field SFLS hhhh of the UCB. Start flags from the UCBSFLS field SID hhhhhhhh field of the UCB. Subchannel ID from the UCBSID CC hh CSCH or HSCH condition code in bits 2 - 3. DVRID hh Driver ID value from the IOSDVRID of the IOSB. field ARDID hh One of the following: hh field of the IOSB Associated request driver ID from the IOSDVRID U/ Unavailable because the IOQ was unavailable The Generalized Trace Facility (GTF) 251

280 Generalized Trace Facility IOSLVL hh of the Function level to provide serialization of I/O requests. This value comes from the IOSLEVEL field IOSB. UCBLVL hh field of the UCB. UCB level value from the UCBLEVEL UCBWGT hh field of the UCB. Flags from the UCBWGT BASE shhhh Device number from the UCBCHAN identifier field of the UCB, which includes the subchannel set when appropriate. DSP and SDSP trace records A DSP record represents dispatching of a task. An SDSP record represents re-dispatching of a task after an SVC interruption. SDSP interruptions also build SVC exit records with label SDSP. When both DSP and SVC options are in effect, the SVCR format of trace record is produced by IPCS. If the trace data contains an SVC exit record, the label that appears in the formatted output will depend on the options selected during IPCS. 1. If the SVC option is selected in the IPCS dialog, the SVC exit record and the SVC number will appear with the label SVCR. 2. If only the DSP option is chosen in the IPCS dialog, the formatted output record will remain unchanged; DSP and SDSP labels will appear in the formatted output and no SVC number is present. 3. If both DSP and SVC options are active in IPCS, the SVCR along with SVC number will appear. It can be concluded, if SVC is one of the options selected during IPCS formatting, all SVC exit records will appear with label SVCR along with SVC number. Minimal Trace Record Formats DSP ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh SDSP ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh Comprehensive Trace Record Formats DSP ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc DSP-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh MODN... yyyyyyyy R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh SDSP ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc DSP-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh MODN... yyyyyyyy R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh ASCB hhhhhhhh Address of address space control block. 252 z/OS: MVS Diagnosis: Tools and Service Aids

281 Generalized Trace Facility CPU hhhh Address of processor on which the task is dispatched. PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh DSP-PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word under which the task is dispatched. JOBN cccccccc One of the following: cccccccc Name of the job associated with the task being dispatched N/A The record is for a system or started task PPPPPPPP A page fault occurred ******** An internal error occurred TCB hhhhhhhh Address of the task control block. R15 hhhhhhhh R0 hhhhhhhh R1 hhhhhhhh Data that will appear in general registers 15, 0, and 1 when the task is dispatched. MODN cccccccc cccccccc is one of the following: mod_name The name of a module that will receive control when the task is dispatched. WAITTCB Indicates that the system wait task is about to be dispatched. SVC–T2 Indicates that a type 2 SVC routine that resides in the nucleus is about to be dispatched. SVC–RES first Indicates that a type 3 SVC routine or the load module of a type 4 SVC routine is about to be dispatched. The routine is located in the pageable link pack area (PLPA). SVC–cccc Indicates that the second or subsequent load module of a type 4 SVC routine is about to be or pageable link pack area (LPA). The last four fixed dispatched. The module is located in the characters of the module name are cccc. **IRB*** Indicates that an asynchronous routine with an associated interruption request block (IRB) is about to be dispatched. No module name is available. *ccccccc Indicates that error fetch is in the process of loading an error recovery module. The last seven characters of the module name are ccccccc. PPPPPPPP A page fault occurred ******** An internal error occurred The Generalized Trace Facility (GTF) 253

282 Generalized Trace Facility EOS, INTG, IO, IOCS, and PCI trace records EOS records represent an end of sense interruption. EOS... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh IRB... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh SENSE... hhhh FLA... hh OPT... hh DVRID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh I/O Statistics: Connect. hhhhhhhh Pending. hhhhhhhh Discon.. hhhhhhhh CUQ... hhhhhhhh DAO... hhhhhhhh Devbsy.. hhhhhhhh ICMR... hhhhhhhh StartCt. hhhhhhhh SamplCt. hhhhhhhh ZTotdev. hhhhhhhh ZDefer.. hhhhhhhh ZCUQ... hhhhhhhh ZDevBsy. hhhhhhhh ZDAO... hhhhhhhh IntrDly. hhhhhhhh IOSQTim. hhhhhhhh INTG records represent an input/output (I/O) interruption that is used to signal the completion of a zHPF interrogate request. INTG... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh IRB... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh SENSE... hhhh FLA... hh OPT... hh DVRID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh IO records represent an I/O interruption. IO... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh IRB... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh SENSE... hhhh FLA... hh OPT... hh DVRID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh I/O Statistics: Connect. hhhhhhhh Pending. hhhhhhhh Discon.. hhhhhhhh CUQ... hhhhhhhh DAO... hhhhhhhh Devbsy.. hhhhhhhh ICMR... hhhhhhhh StartCt. hhhhhhhh SamplCt. hhhhhhhh ZTotdev. hhhhhhhh ZDefer.. hhhhhhhh ZCUQ... hhhhhhhh ZDevBsy. hhhhhhhh ZDAO... hhhhhhhh IntrDly. hhhhhhhh IOSQTim. hhhhhhhh IOCS records represent an I/O interruption that also contains concurrent sense information, for devices that support the concurrent sense facility. IOCS... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh IRB... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh SENSE... hhhh FLA... hh OPT... hh DVRID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh I/O Statistics: Connect. hhhhhhhh Pending. hhhhhhhh Discon.. hhhhhhhh CUQ... hhhhhhhh DAO... hhhhhhhh Devbsy.. hhhhhhhh ICMR... hhhhhhhh StartCt. hhhhhhhh SamplCt. hhhhhhhh ZTotdev. hhhhhhhh ZDefer.. hhhhhhhh ZCUQ... hhhhhhhh ZDevBsy. hhhhhhhh ZDAO... hhhhhhhh IntrDly. hhhhhhhh IOSQTim. hhhhhhhh 254 z/OS: MVS Diagnosis: Tools and Service Aids

283 Generalized Trace Facility PCI records represent a program-controlled interruption. PCI... hhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh IRB... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh SENSE... hhhh FLA... hh OPT... hh DVRID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh I/O Statistics: Connect. hhhhhhhh Pending. hhhhhhhh Discon.. hhhhhhhh CUQ... hhhhhhhh DAO... hhhhhhhh Devbsy.. hhhhhhhh ICMR... hhhhhhhh StartCt. hhhhhhhh SamplCt. hhhhhhhh ZTotdev. hhhhhhhh ZDefer.. hhhhhhhh ZCUQ... hhhhhhhh ZDevBsy. hhhhhhhh ZDAO... hhhhhhhh IntrDly. hhhhhhhh IOSQTim. hhhhhhhh EOS shhhh INTG shhhh IO shhhh IOCS shhhh PCI hhhh of the unit control block (UCB), which includes the The device number from the UCBCHAN field identifier subchannel set when appropriate. ASCB {hhhhhhhh|U/A} One of the following: hhhhhhhh Address of the address space control block (ASCB) for the address space that started the I/O operation. U/A Unavailable because the I/O supervisor block (IOSB) control block is unavailable. CPU hhhh Address of the processor on which the interruption occurred. JOBN {cccccccc|N/A|U/A} One of the following: cccccccc Name of the job associated with the task that requested the I/O operation. N/A Not applicable. U/A Unavailable because the IOSB control block is unavailable. PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word (PSW) stored when the interruption occurred. IRB (see explanation) For the EOS, IO, and PCI trace records, this first five words, in hexadecimal, of the field contains the interruption response block (IRB) operand of the Test Subchannel (TSCH) instruction. field contains the first 16 words, in hexadecimal, of the interruption For the IOCS trace record, this response block operand of the TSCH instruction. (Note that this IRB is not the interruption request block indicated as in a DSP trace record.) **IRB*** TCB {hhhhhhhh|N/A|U/A} One of the following: hhhhhhhh Address of the TCB for the task that requested the I/O operation. N/A Not applicable. The Generalized Trace Facility (GTF) 255

284 Generalized Trace Facility U/A Unavailable because the IOSB control block is unavailable. SENSE {hhhh|N/A|U/A} One of the following: hhhh of the IOSB. First 2 sense bytes from the IOSSNS field N/A Not applicable. U/A Unavailable because the IOSB control block is unavailable. FLA {hh|U/A} One of the following: hh of the IOSB. Flag byte from the IOSFLA field U/A Unavailable because the IOSB control block is unavailable. OPT {hh|U/A} One of the following: hh IOSB options byte from the IOSOPT field of the IOSB. U/A Unavailable because the IOSB control block is unavailable. DVRID {hh|U/A} One of the following: hh identifier from the IOSDVRID field of the IOSB. Driver U/A Unavailable because the IOSB control block is unavailable. IOSLVL {hh|U/A} One of the following: hh field of Function level to provide serialization of I/O requests. This value comes from the IOSLEVEL the IOSB. U/A Unavailable because the IOSB control block is unavailable. UCBLVL hh field of the UCB. UCB level value from the UCBLEVEL UCBWGT hh field of the UCB. Flags from the UCBWGT BASE shhhh Device number from the UCBCHAN of the UCB, which includes the subchannel set identifier field when appropriate. Connect hhhhhhhh The device connect time for this I/O request, in units of 0.5 microseconds. Pending hhhhhhhh The function pending time for this I/O request, in units of 0.5 microseconds. Discon hhhhhhhh The device disconnect time for this I/O request, in units of 0.5 microseconds. 256 z/OS: MVS Diagnosis: Tools and Service Aids

285 Generalized Trace Facility CUQ hhhhhhhh The control unit queueing time for this I/O request, in units of 0.5 microseconds. DAO hhhhhhhh The device active only time for this I/O request, in units of 0.5 microseconds. Devbsy hhhhhhhh The device busy time for this I/O request, in units of 0.5 microseconds. ICMR hhhhhhhh The initial command response time for this I/O request, in units of 0.5 microseconds. StartCt hhhhhhhh The number of SSCH/RSCH instructions that were issued for the device while GTF trace was active. SamplCt hhhhhhhh The number of SSCH/RSCH instructions for which data was collected for the device. ZTotdev hhhhhhhh The total device time for this I/O request, in units of 1 microseconds. This information is reported only for zHPF I/O requests when it is provided by the device. ZDefer hhhhhhhh The control unit defer time for this I/O request, in units of 1 microseconds. This information is reported only for zHPF I/O requests when it is provided by the device. ZCUQ hhhhhhhh The control unit queue time for this I/O request, in units of 1 microseconds. This information is reported only for zHPF I/O requests when it is provided by the device. ZDevBsy hhhhhhhh The device busy time for this I/O request, in units of 1 microseconds. This information is reported only for zHPF I/O requests when it is provided by the device. ZDAO hhhhhhhh The device active only time for this I/O request, in units of 1 microseconds. This information is reported only for zHPF I/O requests when it is provided by the device. IntrDly hhhhhhhh The total interrupt delay time for all I/O requests, in units of 128 microseconds. IOSQTim hhhhhhhh The measured I/O queuing time for this I/O request, in units of 1 microseconds. EXT trace records An EXT record represents a general external interruption. Minimal Trace Record Format EXT CODE... hhhh ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh ccc-TCB. hhhhhhhh Comprehensive Trace Record Format EXT... hhhh ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc OLD-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh TQE FIELDS: FLAGS... hhhh EXTADDR. hhhhhhhh TCB... hhhhhhhh EXT... hhhh ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc OLD-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh TQE FIELDS: FLAGS... hhhh EXTADDR. hhhhhhhh ASCB... hhhhhhhh TCB... hhhhhhhh EXT... hhhh ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc OLD-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh PARM... hhhhhhhh SIG-CPU. hhhh The Generalized Trace Facility (GTF) 257

286 Generalized Trace Facility EXT CODE hhhh EXT hhhh External interruption code. ASCB hhhhhhhh Address of ASCB for the address space that was current when the interruption occurred. CPU hhhh Address of the processor on which the interruption occurred. JOBN cccccccc One of the following: cccccccc Name of the job associated with the interrupted task N/A The record is for a system or started task PPPPPPPP A page fault occurred ******** An internal error occurred PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh OLD-PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word stored when the interruption occurred. TCB hhhhhhhh One of the following: hhhhhhhh Address of the TCB for the interrupted task N/A Not applicable, as in the case of an interrupted SRB routine INT-TCB hhhhhhhh TQE-TCB hhhhhhhh Address of the TCB. This interruption is indicated by interruption codes 12hh. TQE FIELDS Indicates a clock comparator or CPU timer interruption. These interruptions are indicated by fields contain information from the timer queue interruption codes X'1004' or X'1005'. The following element (TQE): FLAGS hhhh field. The flags from the TQEFLGS EXTADDR hhhhhhhh four hexadecimal digits are the contents of the TQEFLGS field; the last four hexadecimal The first field. digits are the contents of the TQEEXIT ASCB hhhhhhhh One of the following: hhhhhhhh field. Contents of the TQEASCB PPPPPPPP A page fault occurred ******** An internal error occurred The TQEASCB field is present only for a clock comparator interruption. TQEASCB contains the address of the ASCB for the address space in which the timer exit routine will be run. TCB hhhhhhhh One of the following: 258 z/OS: MVS Diagnosis: Tools and Service Aids

287 Generalized Trace Facility hhhhhhhh Contents of the TQETCB field. N/A The record is for a system or started task PPPPPPPP A page fault occurred ******** An internal error occurred TQETCB contains the address of the TCB for the task under which the timer exit routine will run. PARM hhhhhhhh Signal passed on a signal processor interruption, which is indicated by interruption codes 12hh. SIG-CPU hhhh Address of the processor on which a signal processor interruption occurred. FRR trace records An FRR record represents the return to the recovery termination manager (RTM) from a functional fields, recovery routine (FRR). All except the processor address, are gathered from the system diagnostic word area (SDWA) that was passed to the FRR. Minimal Trace Record Format FRR ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh CC... hhhhhhhh FLG1... hhhhhhhh FLG2... hhhhhhhh RETRY... hhhhhhhh Comprehensive Trace Record Format FRR ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc NAME... cccccccc PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ABCC... hhhhhhhh ERRT... hhhhhhhh FLG... hhhhhh RC... hh RTRY... hhhhhhhh ASCB hhhhhhhh One of the following: hhhhhhhh Address of the ASCB for the address space in which the error occurred. PPPPPPPP A page fault occurred ******** An internal error occurred CPU hhhh Address of the processor associated with the error. JOBN cccccccc One of the following: cccccccc Name of the job associated with the error N/A The record is for a system or started task PPPPPPPP A page fault occurred The Generalized Trace Facility (GTF) 259

288 Generalized Trace Facility ******** An internal error occurred NAME cccccccc Name of the FRR routine. PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh One of the following: hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word at the time of the error PPPPPPPP A page fault occurred ******** An internal error occurred CC hhhhhhhh ABCC hhhhhhhh One of the following: hhhhhhhh three digits are the system completion code and the last three digits are the user The first completion code U/A Unavailable because the system diagnostic work area (SDWA) was unavailable ******** An internal error occurred FLG1 hhhhhhhh FLG hhhhhh ERRT hhhhhhhh field of SDWA. Error-type flags from the SDWAFLGS FLG2 hhhhhh Additional flags from the SDWAMCHD and SDWAACF2 fields of SDWA. The flags are contained in the the high order byte is meaningless. field; two low-order bytes of this printed RC hh Return code RETRY hhhhhhhh RTRY hhhhhhhh One of the following: hhhhhhhh Retry address supplied by the FRR N/A Not applicable, indicating an FRR return code other than 4 PPPPPPPP A page fault occurred ******** An internal error occurred RTCA hhhhhhhh Indicates if the recovery routine was a STAE or ESTAE. 260 z/OS: MVS Diagnosis: Tools and Service Aids

289 Generalized Trace Facility HEXFORMAT, SUBSYS, and SYSTEM trace records HEXFORMAT, SUBSYS, and SYSTEM records represent events for which GTF could not format the records. HEXFORMAT AID hh FID hh EID hh hhhhhhhh hhhhhhh ... SUBSYS AID hh FID hh EID hh hhhhhhhh hhhhhhh ... SYSTEM AID hh FID hh EID hh hhhhhhhh hhhhhhh ... HEXFORMAT specified no formatting routine (FID=00). Indicates an event signalled by a GTRACE macro. The macro SUBSYS Indicates an event signalled by a GTRACE macro. The macro specified a formatting routine (FID=hh) that could not be found. SYSTEM Indicates a system event. The trace record could not be formatted for one of the following reasons: • If EEEE hex appears in bytes 0-1 or 8-9 of the recorded data, an unrecoverable error occurred in a GTF data-gathering routine. Message AHL118I is written on the console, identifying the module that caused the error and the action taken. (The message indicates that GTF will no longer trace this type of event. No more records for this type of event will appear in the trace output.) • If EEEE hex does not appear in bytes 0-1 or 8-9 of the recorded data, the record could not be formatted because the GTF formatting routine could not be found. AID hh Application identifier, which should always be AID FF. FID hh Format identifier of the routine (AMDUSRhh or AMDSYShh) that was to format this record. EID hh identifier, which uniquely identifies the event that produced the record. Event hhhhhhhh hhhhhhhh ... Recorded data (256 bytes maximum). IOX trace records IOX records represent an input/output (I/O) interruption for a completed channel program and a summary of a complete channel program for the I/O operation. IOX...shhhh ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc DEVN... hhhh SID... hhhh DRID... hh TVSN... hh ECNO... hhhh DVCLS... hh DSTAT... hh AERRC... hh FLAG0... hh VOLSER.. cccccc UCBTYP.. hhhhhhhh DSNAME.. cccc.cccccc.cccccc.ccccc NSSCH... hhhhhhhh DSSCH... hhhhhhhh SDCON... hhhhhhhh SRPEN... hhhhhhhh SDISC... hhhhhhhh SCUQU... hhhhhhhh IODTS... hhhhhhhh hhhhhhhh AONLY... hhhhhhhh DVBSY... hhhhhhhh ICMR... hhhhhhhh CCW SECTION SQNO... hh FGS1... hh FGS2... hh RCNT... hh BLKR... hhhh BLKW... hhhh BTRD... hhhhhhhh BTWR... hhhhhhhh DCHN... hhhh CCHN... hhhh DEGA... hh DEGE... hh DEEE... hhhh SEEKLOCC hh CCHHR... hh LROP... hh LRSECT.. hh LREXOP.. hh LREXPM.. hhhh IOX shhhh identifies the beginning of an IOX record where hhhh is the device number and s is the IOX identifier. subchannel set The Generalized Trace Facility (GTF) 261

290 Generalized Trace Facility ASCB {hhhhhhhh|U/A} One of the following: hhhhhhhh Address of the address space control block (ACSB) for the address space that started the I/O operation. U/A Unavailable because the I/O supervisor block (IOSB) control block is unavailable. CPU hhhh Address of the processor on which the interruption occurred. JOBN {cccccccc|N/A|U/A} One of the following: cccccccc Name of the job associated with the task that requested the I/O operation. N/A Not applicable. U/A Unavailable because the IOSB control block is unavailable. DEVN shhhh when appropriate. Device number with the subchannel set identifier SID hhhh System ID DRID hh Driver ID from IOSB TVSN hh Trace version ECNO hhhh Record count DVCLS hh Device class DSTAT hh Device status AERRC hh Error codes found during CCW analysis. See “CCW error codes” on page 307 for a description. FLAG0 hh Flag byte VOLSER ccccccc Volume Serial UCBTYP hhhhhhhh UCB type DSNAME cccc.cccccc.cccccc.ccccc 44-byte data set name NSSCH hhhhhhhh Number of SSCH instructions. DSSCH hhhhhhhh Number of SSCH instructions for which data was collected. SDCON hhhhhhhh Summation of device connect times. SRPEN hhhhhhhh Summation of function pending times. 262 z/OS: MVS Diagnosis: Tools and Service Aids

291 Generalized Trace Facility SDISC hhhhhhhh Summation of device disconnect times. SCUQU hhhhhhhh Summation of control unit queuing times IODTS hhhhhhhh Time stamp from IOD AONLY hhhhhhhh Summation of device active only times DVBSY hhhhhhhh Summation of device busy times ICMR hhhhhhhh Summation of initial command response times SQNO hh Orientation Sequence Number FGS1 hh Flag byte 1 FGS2 hh Flag byte 2 RCNT hh Count of erase BLKR hhhh Number of blocks read BLKW hhhh Number of block written BTRD hhhhhhhh Number of bytes read BTWR hhhhhhhh Number of bytes written DCHN hhhh Number of data chain CCWs CCHN hhhh Number of COM chain CCWs DEGA hh Definition of exterior global attribute DEGE hh Definition of exterior global attribute extended DEEE hhhhhhh of exterior end of extend CCH Definition SEEKLOCC hh The command code that performed the seek or locate record operation. CCHHR hhhhhhhh CCHHR seek or search address LROP hh The locate record operation code. LRSECT hh The locate record sector number. LREXOP hh The locate record extended operation code. LREXPM hhhh The locate record extended parameters. The Generalized Trace Facility (GTF) 263

292 Generalized Trace Facility LSR trace records An LSR record represents dispatching of a local supervisor routine in an address space. Minimal Trace Record Format LSR ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh Comprehensive Trace Record Format LSR ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc LSR-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh ASCB hhhhhhhh Address of the address space control block. CPU hhhh Address of the processor on which the routine will be dispatched. PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh LSR-PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word under which the routine receives control. JOBN cccccccc One of the following: cccccccc Name of the job associated with the routine being dispatched N/A Not applicable PPPPPPPP A page fault occurred ******** An internal error occurred TCB hhhhhhhh One of the following: hhhhhhhh Address of the task control block associated with this routine (if the routine is run as part of a task) N/A Not applicable R15 hhhhhhhh R0 hhhhhhhh R1 hhhhhhhh One of the following: hhhhhhhh Data that will appear in general registers 15, 0, and 1 when the local supervisor routine is dispatched PPPPPPPP A page fault occurred ******** An internal error occurred 264 z/OS: MVS Diagnosis: Tools and Service Aids

293 Generalized Trace Facility MSCH trace records An MSCH record represents a modify subchannel operation. MSCH... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc SID... hhhhhhhh CC... hh OPT... hh OPT2... hh IOSLVL.. hh SCHIB1.. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh UCBLVL.. hh SCHIB2.. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh UCBWGT.. hh BASE... shhhh MSCH shhhh Device number from the UCBCHAN when appropriate. field of the UCB with subchannel set identifier ASCB hhhhhhhh Address of the ASCB for the address space that started the modify subchannel operation. CPU hhhh Address of the processor on which the modify subchannel started. JOBN cccccccc One of the following: cccccccc Name of the job associated with the task that requested the modify subchannel operation N/A Not applicable SID hhhhhhhh Subchannel ID from the UCBSID field of the UCB. CC hh MSCH condition code in bits 2 and 3. OPT hh field of the IOSB. IOSB option bytes from the IOSOPT OPT2 hh IOSB option bytes from the IOSOPT field of the IOSB. IOSLVL hh field Function level to provide serialization of I/O requests. This value comes from the IOSLEVEL of the IOSB. SCHIB1 hhhhhhhh ... hhhhhhhh First 7 words of the subchannel information block. Input from the caller of modify subchannel field of the IOSB. instruction. SCHIB address from the IOSSCHIB UCBLVL hh field of the UCB. UCB level value from the UCBLEVEL SCHIB2 hhhhhhhh ... hhhhhhhh First 7 words of the subchannel information block resulting from the modify subchannel instruction. UCBWGT hh Flags from the UCBWGT field of the UCB. BASE shhhh field of the UCB, which includes the subchannel set identifier Device number from the UCBCHAN when appropriate. The Generalized Trace Facility (GTF) 265

294 Generalized Trace Facility PCIDMX trace records PCIDMX records represent a PCIE de-multiplexing request. PCIDMX.. hhhhhhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc DEVTYPE. hhhhhhhh DMXAD... hhhhhhhh [email protected] hhhhhhhh PARMS... hhhhhhhh hhhhhhhh PCIDMX hhhhhhhh identifier (PFID) for PCIE device/function. PCIE function ASCB hhhhhhhh Address of the ASCB for the address space that was active when the de-multiplexing event occurred. CPUID hhhh Address of the processor on which the de-multiplexing operation occurred. JOBN cccccccc Name of the job associated with the address space that was active when the de-multiplexinng event occurred. DEVTYPE hhhhhhhh PCIE device type. DMXAD hhhhhhhh Address of the program that is performing the de-multiplexing. [email protected] hhhhhhhh Address of the callback routine. PARMS hhhhhhhh hhhhhhhh First 8 bytes of the callback parameters. PCILG trace records A PCILG record represents a PCI load instruction. PCILG... hhhhhhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc TCB... hhhhhhhh CC... hh REQAD... hhhhhhhh TRCID... hhhhhhhh DATA... hhhhhhhh hhhhhhhh HANDLE.. hhhhhhhh STATUS.. hh PCIAS... hh LENGTH.. hh OFFSET.. hhhhhhhh hhhhhhhh PCILG hhhhhhhh PCIE function identifier (PFID) for PCIE device/function. ASCB hhhhhhhh Address of the ASCB for the address space that issued the PCI load instruction. CPUID hhhh Address of the processor on which the PCI load instruction was issued. JOBN cccccccc Name of the job associated with the address space that issued the PCI load operation. TCB hhhhhhhh Address of task control block or zero if not running under a task. CC hh Condition code from the PCI load instruction. REQAD hhhhhhhh Address of the program that requested the PCI load instruction to be issued. 266 z/OS: MVS Diagnosis: Tools and Service Aids

295 Generalized Trace Facility TRCID hhhhhhhh trace Program identifier defined that can be used to determine why the PCI load instruction is being issued. DATA hhhhhhhh hhhhhhhh The data that was loaded. HANDLE hhhhhhhh PCIE function hardware handle. STATUS hh Error status information. PCIAS hh PCIE address space associated with the request. LENGTH hh Length of the data that was loaded. OFFSET hhhhhhhh hhhhhhhh Offset of the data within the PCIE address space that was loaded. PCISTG trace records A PCISTG record represents a PCI store instruction. PCISTG... hhhhhhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc TCB... hhhhhhhh CC... hh REQAD... hhhhhhhh TRCID... hhhhhhhh DATA... hhhhhhhh hhhhhhhh HANDLE.. hhhhhhhh STATUS.. hh PCIAS... hh LENGTH.. hh OFFSET.. hhhhhhhh hhhhhhhh PCILG hhhhhhhh identifier (PFID) for PCIE device/function. PCIE function ASCB hhhhhhhh Address of the ASCB for the address space that issued the PCI store instruction. CPUID hhhh Address of the processor on which the PCI store instruction was issued. JOBN cccccccc Name of the job associated with the address space that issued the PCI store operation. TCB hhhhhhhh Address of task control block or zero if not running under a task. CC hh Condition code from the PCI store instruction. REQAD hhhhhhhh Address of the program that requested the PCI store instruction to be issued. TRCID hhhhhhhh defined trace identifier that can be used to determine why the PCI store instruction is being Program issued. DATA hhhhhhhh hhhhhhhh The data that was stored. HANDLE hhhhhhhh PCIE function hardware handle. STATUS hh Error status information. PCIAS hh PCIE address space associated with the request. The Generalized Trace Facility (GTF) 267

296 Generalized Trace Facility LENGTH hh Length of the data that was stored. OFFSET hhhhhhhh hhhhhhhh Offset of the data within the PCIE address space that was stored. PGM and PI trace records PGM and PI records represent program interruptions. Minimal Trace Record Format PI CODE... hhh ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh VPH... hhhhhhhh VPA... hhhhhhhh R15... hhhhhhhh R1... hhhhhhhh Comprehensive Trace Record Format PGM... hhh ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc OLD-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh VPH... hhhhhhhh VPA... hhhhhhhh MODN... cccccccc R0... hhhhhhhh R1... hhhhhhhh R2... hhhhhhhh R3... hhhhhhhh R4... hhhhhhhh R5... hhhhhhhh R6... hhhhhhhh R7... hhhhhhhh R8... hhhhhhhh R9... hhhhhhhh R10... hhhhhhhh R11... hhhhhhhh R12... hhhhhhhh R13... hhhhhhhh R14... hhhhhhhh R15... hhhhhhhh PI CODE hhh PGM hhh Program interruption code, in decimal. ASCB hhhhhhhh Address of ASCB for the address space in which the interruption occurred. CPU hhhh Address of the processor on which the interruption occurred. JOBN cccccccc One of the following: cccccccc Name of the job associated with the interruption N/A Not applicable PPPPPPPP A page fault occurred ******** An internal error occurred PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh OLD-PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word stored when the interruption occurred. TCB hhhhhhhh One of the following: hhhhhhhh Address of the TCB for the interrupted task N/A Not applicable as in the case of an interrupted SRB routine 268 z/OS: MVS Diagnosis: Tools and Service Aids

297 Generalized Trace Facility VPH hhhhhhhh VPA hhhhhhhh VPH hhhhhhhh Bytes 0-3 of the translation exception ID (TEID) , displayed only when these bytes are not all zero. VPA hhhhhhhh by principles of operation, bits 0-51 of Bytes 4-7 of the translation exception ID. In cases defined the TEID with 12 zero bits appended on the right are the translation exception address which is the virtual address of the page, the reference to which resulted in the program exception. MODN cccccccc cccccccc is one of the following: mod_name The name of a module that will receive control when the task is dispatched. WAITTCB Indicates that the system wait task was interrupted. SVC-T2 Indicates that a type 2 SVC routine resident in the nucleus was interrupted. SVC-RES load module of a type 4 SVC routine was Indicates that a type 2 SVC routine or the first interrupted. The routine is located in the pageable link pack area (PLPA). SVC-ccc Indicates that the second or subsequent load module of a type 4 SVC routine was interrupted. The module is located in the fixed or pageable link pack area (LPA). The last four characters of the load module name are cccc. **IRB*** Indicates that an asynchronous routine with an associated interrupt request block was interrupted. No module name is available. *ccccccc Indicates that an error recovery module was in control. The last seven characters of the module name are ccccccc. ******** An internal error occurred Rdd hhhhhhhh Contents of general registers when the interruption occurred. RNIO trace records An RNIO record represents a VTAM remote network input/output event. For trace information, see z/OS . Communications Server: SNA Diagnosis Vol 1, Techniques and Procedures Minimal Trace Record Format RNIO ASCB... hhhhhhhh CPU... hhhh R0... hhhhhhhh Comprehensive Trace Record Format RNIO ASCB... hhhhhhhh CPU... hhhh JOB... cccccccc IN... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh R0... hhhhhhhh RNIO ASCB... hhhhhhhh CPU... hhhh JOB... cccccccc OUT... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh R0... hhhhhhhh The Generalized Trace Facility (GTF) 269

298 Generalized Trace Facility ASCB hhhhhhhh Address of the ASCB for the address space of the application associated with the event. CPU hhhh Address of the processor that ran the I/O instruction. JOBN cccccccc One of the following: cccccccc Name of the job associated with the IO event N/A Not applicable PPPPPPPP A page fault occurred ******** An internal error occurred IN hhhhhhhh ... hhhhhhhh OUT hhhhhhhh ... hhhhhhhh IN indicates that the I/O is from NCP to VTAM; OUT indicates that the direction of the I/O is from VTAM to NCP. The hexadecimal data is: • For IN events: the transmission header, the response header, and the response unit. • For OUT events: the transmission header, the request header, and the request unit. R0 hhhhhhhh Contents of general register 1 when the event occurred. RSCH trace records An RSCH record represents a resume subchannel operation. RSCH... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc RST... hhhhhhhh VST... hhhhhhhh DSID... hhhhhhhh CC... hh SEEKA... hhhhhhhh hhhhhhhh GPMSK... hh OPT... hh FMSK... hh DVRID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh RSCH shhhh Device number from the UCBCHAN identifier when appropriate. field of the UCB with subchannel set ASCB hhhhhhhh Address of the ASCB for the address space that started the I/O operation. CPU hhhh Address of the processor on which the I/O operation resumed. JOBN cccccccc One of the following: cccccccc Name of the job associated with the I/O operation N/A Not applicable RST hhhhhhhh field of the IOSB. Address of the channel program. This value comes from the contents of the IOSRST VST hhhhhhhh field of the Virtual address of the channel program. This value comes from the contents of the IOSVST IOSB. 270 z/OS: MVS Diagnosis: Tools and Service Aids

299 Generalized Trace Facility DSID hhhhhhhh used by purge. Contents of the IOSDID Request field identifier of the IOSB (address of the DEB or another control block used by purge). CC hh RSCH condition code in bits 2 and 3. SEEKA hhhhhhhh hhhhhhhh field of the IOSB. Dynamic seek address from the IOSEEKA GPMSK hh of the IOSB. Guaranteed device path mask for GDP requests from the IOSEEKA field OPT hh of the IOSB. IOSB options byte from the IOSOPT field FMSK hh set/file field of the IOSB. Mode mask from the IOSFMSK DVRID hh field of the IOSB. Driver ID from the IOSDVRID IOSLVL hh Function level to provide serialization of I/O requests. This value comes from the IOSLEVEL field of the IOSB. UCBLVL hh field of the UCB. UCB level value from the UCBLEVEL UCBWGT hh Flags from the UCBWGT field of the UCB. BASE shhhh field identifier Device number from the UCBCHAN of the UCB, which includes the subchannel set when appropriate. SLIP trace records A SLIP record represents a SLIP program event interruption. GTF writes four types of SLIP records: • SLIP standard trace record • SLIP stand/user trace record • SLIP user trace record • SLIP debug trace record SLIP standard trace record A SLIP standard (STD) trace record represents a slip trap match when the SLIP command specifies ACTION=TRACE or ACTION=TRDUMP. SLIP STD ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc TID... cccc ASID... hhhh JSP... cccccccc TCB... hhhhhhhh MFLG... hhhh EFLG... hhhh SFLG... hh DAUN... hhhh MODN... cccccccc OFFS... hhhhhhhh IADR... hhhhhhhh hhhhhhhh INS... hhhhhhhh hhhh EXSIAD.. hhhhhhhh hhhhhhhh EXSINS.. hhhhhhhh hhhh BRNGH... hhhhhhhh BRNGA... hhhhhhhh BRNGD... hhhhhhhh OPSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ILC/PIC. hhhhhhhh PERC... hh TYP... hh PKM... hhhh SASID... hhhh AX... hhhh PASID... hhhh ASC... c SA-SPACE ccccccccc cccc DATX... hh ASCB hhhhhhhh The address of the ASCB for the current address space. The Generalized Trace Facility (GTF) 271

300 Generalized Trace Facility CPU hhhh (ID). The processor identifier JOBN cccccccc One of the following: cccccccc Name of the job associated with the SLIP trap N/A Not applicable TID cccc The trap ID. ASID hhhh of the current address space. identifier The JSP cccccccc One of the following: cccccccc Job step program name N/A Not applicable U/A Unavailable TCB hhhhhhhh One of the following: hhhhhhhh TCB address N/A Not applicable MFLG hhhh System mode indicators that indicate the status of the system. The indicators correspond to the field in the SLWA. For a description of the SLWA, see z/OS MVS Data Areas in the z/OS SLWACW . Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) EFLG hhhh Error bytes that indicate the error status of the system. These bytes correspond to SDWAERRA in the SDWA. For a description of the SDWA, see in the z/OS Internet library z/OS MVS Data Areas (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) . SFLD hh SLIP status flags. DAUN hhhhhhhh A counter representing the number of times data was unavailable for the DATA keyword test. fields apply to PER interruptions only. For other than PER interruptions, these fields are not The following applicable and contain: N/A, N/, or N. MODN cccccccc One of the following: cccccccc Load module name in which the interruption occurred N/A Not applicable U/A Unavailable 272 z/OS: MVS Diagnosis: Tools and Service Aids

301 Generalized Trace Facility OFFS hhhhhhhh One of the following: hhhhhhhh Offset into the load module containing the instruction that caused the interruption N/A Not applicable U/A Unavailable IADR hhhhhhhh hhhhhhhh Address of the instruction that caused the interruption. INS hhhhhhhh hhhh Instruction content: the instruction that caused the PER interruption. EXSIAD hhhhhhhh hhhhhhhh One of the following: hhhhhhhh hhhhhhhh is an Execute instruction Target instruction address if the INS field N/A Not applicable U/A Unavailable EXSINS hhhhhhhhhh hhhh One of the following: hhhhhhhh hhhh Target instruction content if an INS is an Execute instruction: 6 bytes of data beginning at the field target instruction address N/A Not applicable U/A Unavailable BRNGH hhhhhhhh BRNGA hhhhhhhh One of the following: hhhhhhhh specified SA. BRNGH identifies the high The beginning range virtual address if the SLIP command the low 4 bytes. 4 bytes. BRNGA identifies N/A Not applicable BRNGD hhhhhhhh One of the following: hhhhhhhh Four bytes of storage starting at the beginning range virtual address if SA was specified N/A Not applicable U/A Unavailable OPSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh The program old PSW. ILC/PIC hhhhhhhh The instruction length code and program interruption code. The Generalized Trace Facility (GTF) 273

302 Generalized Trace Facility PERC hh The PER interruption code. TYP hh The PER trap mode. PKM hhhh The PSW key mask. SASID hhhh The identifier of the secondary address space. AX hhhh The authorization index. PASID hhhh identifier of the primary address space. The ASC c The PSW ASC mode indicator: c Meaning 0 Primary addressing mode 1 Access register addressing mode 2 Secondary addressing mode 3 Home addressing mode SA-SPACE ccccccccccccc identifier, as follows: Storage alteration space • The ASID, for an address space • The owning ASID and the data space name, for a data space DATX hh The DATA filter mismatch count due to an event that occurred in transactional execution mode. 274 z/OS: MVS Diagnosis: Tools and Service Aids

303 Generalized Trace Facility SLIP standard/user trace record The SLIP standard/user trace record represents a slip trap match when the SLIP command specifies ACTION=TRACE or ACTION=TRDUMP and TRDATA=parameters. SLIP S+U ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc TID... cccc ASID... hhhh JSP... cccccccc TCB... hhhhhhhh MFLG... hhhh EFLG... hhhh SFLG... hh DAUN... hhhh MODN... cccccccc OFFS... hhhhhhhh IADR... hhhhhhhh hhhhhhhh INS... hhhhhhhh hhhh EXSIAD.. hhhhhhhh hhhhhhhh EXSINS.. hhhhhhhh BRNGH... hhhhhhhh BRNGA... hhhhhhhh BRNGD... hhhhhhhh OPSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ILC/PIC. hhhhhhhh PERC... hh TYP... hh PKM... hhhh SASID... hhhh AX... hhhh PASID... hhhh ASC... c SA-SPACE ccccccccc cccc DATX... hh GENERAL PURPOSE REGISTER VALUES 0-3... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 4-7... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 8-11... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 12-15... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh GPR HIGH HALF VALUES 0-3... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 4-7... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 8-11... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 12-15... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ACCESS REGISTER VALUES 0-3... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 4-7... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 8-11... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh 12-15... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ASCB hhhhhhhh . . . DATX hh fields are the same as the fields in the SLIP standard trace record. These GENERAL PURPOSE REGISTER VALUES GPR HIGH HALF VALUES ACCESS REGISTER VALUES Contents of the general purpose registers and access registers at the time of the error or interruption, if REGS is in TRDATA on the SLIP command. The GPR high half values will only be traced in z/ specified Architecture mode. SLIP user trace record ACTION=TRACE or The SLIP user record represents a SLIP trap match when the SLIP command specifies ACTION=TRDUMP and TRDATA=parameters. SLIP USR CPU... hhhh EXT... hhhh CNTLN... hh hhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh | cccccccccccccccc | CPU hhhh Processor ID. EXT hhhh Extension number. CNTLN hh Continuation length. hhhh Length for the single range in the SLIP command. If hhhh is zero, either the range was not available or the range was not valid, so that GTF did not collect data for the range. GTF would consider the range not valid if, for example, the ending range address precedes the beginning range address. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh | cccccccccccccccc | data fields that are specified by TRDATA on the SLIP command. The length and data User-defined may be repeated. fields The Generalized Trace Facility (GTF) 275

304 Generalized Trace Facility For a SLIP command, the trace contains as many user records and user continuation records as needed to in the TRDATA parameter on the SLIP command. The header in each trace the data ranges specified filled record contains the processor ID and the extension number. When a record is enough so that the next data range cannot GTF writes the partially filled record to the GTF trace table. GTF builds another fit, record; its extension number is increased by one and the continuation length is set to zero. When the length of data from a range is greater than 249 bytes, the excess data is put in user continuation records. After writing the SLIP USR record, GTF builds a user continuation record. GTF increases the extension number by one and sets the continuation length to the number of bytes of data to be put in the continuation record. If more than 251 bytes of data are left, GTF copies 248 bytes into the record and places it in the GTF trace table. GTF builds user continuation records until all the data from a range is traced. SLIP debug trace record DEBUG. The SLIP debug record represents a SLIP trap match when the SLIP command specifies SLIP S+U ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc TID... cccc ASID... hhhh JSP... cccccccc TCB... hhhhhhhh MFLG... hhhh EFLG... hhhh SFLG... hh DAUN... hhhh MODN... cccccccc OFFS... hhhhhhhh IADR... hhhhhhhh hhhhhhhh INS... hhhhhhhh hhhh EXSIAD.. hhhhhhhh hhhhhhhh EXSINS.. hhhhhhhh BRNGH... hhhhhhhh BRNGA... hhhhhhhh BRNGD... hhhhhhhh OPSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ILC/PIC. hhhhhhhh PERC... hh TYP... hh PKM... hhhh SASID... hhhh AX... hhhh PASID... hhhh ASC... h SA-SPACE hhh hh00 DATX... hh ASCB hhhhhhhh . . . DATX hh fields These in the SLIP standard trace record. The high order bit in the are the same as the fields is set to 1 to indicate a debug record. field SFLG hh00 byte indicates which keyword failed, the second byte Two bytes of debug-produced data. The first contains zeros. Byte 1 (decimal) Keyword That Failed ...1 DATA test failed 3 ASID 4 JOBNAME 5 JSPGM 6 PVTMOD 7 LPAMOD 8 ADDRESS 9 MODE ..10 ... ERRTYP 276 z/OS: MVS Diagnosis: Tools and Service Aids

305 Generalized Trace Facility 13 RANGE 14 DATA 20 ASIDSA 22 REASON CODE 23 NUCMOD 24 PSWASC 26 DSSA SRB trace records An SRB record represents dispatching of an asynchronous routine represented by a service request block (SRB). Minimal Trace Record Format SRB ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh R15... hhhhhhhh SRB... hhhhhhhh R1... hhhhhhhh TYPE... ccccccccccccccccccccccccccc Comprehensive Trace Record Format SRB ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc SRB-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh SRB... hhhhhhhh TYPE... ccccccccccccccccccccccccccc ASCB hhhhhhhh Address of the ASCB for the address space in which the SRB routine is dispatched. This may or may not be the address space in which the SRB was created. CPU hhh Address of the processor on which the SRB routine is dispatched. PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh SRB-PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word under which the SRB routine receives control. JOBN cccccccc One of the following: cccccccc Name of the job associated with the SRB being dispatched N/A Not applicable, as in the case of a global SRB, which is indicated in the TYPE field ******** An internal error occurred SRB hhhhhhhh One of the following: The Generalized Trace Facility (GTF) 277

306 Generalized Trace Facility hhhhhhhh Address of the service request block (SRB) ******** An internal error occurred R15 hhhhhhhh R1hhhhhhhh One of the following: hhhhhhhh Data that will appear in general registers 15 and 1 when the SRB routine is dispatched ******** An internal error occurred PARM hhhhhhhh One of the following: hhhhhhhh to be passed to the SRB routine Four-byte parameter or the address of a parameter field N/A Not applicable, as in the case of a suspended SRB, which is indicated in the TYPE field TYPE ccccccccccccccccccccccccccc Indicates the type of SRB routine, as follows: SUSPENDED Denotes an SRB routine that was dispatched earlier and was subsequently interrupted (for example, by I/O operations or by a request for a lock). The routine is about to be re-dispatched. INITIAL DISPATCH OF SRB Denotes an SRB routine selected from the service priority list that is about to be dispatched for the first time. REDISPATCH OF SUSPENDED SRB Denotes an SRB routine that was dispatched earlier and was subsequently interrupted (for example, by I/O operations or by a request for a lock). The routine is about to be re-dispatched. SRM trace records An SRM record represents an entry to the system resources manager (SRM). Minimal Trace Record Format SRM ASCB... hhhhhhhh CPU... hhhh R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh Comprehensive Trace Record Format SRM ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh ASCB hhhhhhhh One of the following: hhhhhhhh Address of the ASCB for the address space that was current when SRM was entered ******** An internal error occurred CPU hhhh Address of the processor used by the system resources manager. 278 z/OS: MVS Diagnosis: Tools and Service Aids

307 Generalized Trace Facility JOBN cccccccc One of the following: cccccccc Name of the job associated with the entry to SRM N/A Not applicable ******** An internal error occurred R15 hhhhhhhh R0 hhhhhhhh R1 hhhhhhhh Data that was contained in general registers 15, 0, and 1 when the system resources manager passed control to GTF. The data includes the SYSEVENT code in the low-order byte of register 0. SSCH trace records An SSCH record represents a start subchannel operation. SSCH... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc RST... hhhhhhhh VST... hhhhhhhh DSID... hhhhhhhh CC... hh SEEKA... hhhhhhhh hhhhhhhh GPMSK... hh OPT... hh FMSK... hh DVRID... hh IOSLVL.. hh UCBLVL.. hh UCBWGT.. hh BASE... shhhh ORB... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh SSCH shhhh field identifier when appropriate. Device number from the UCBCHAN of the UCB with subchannel set ASCB hhhhhhhh Address of the ASCB for the address space that started the I/O operation. CPU hhhh Address of the processor on which the I/O operation started. JOBN cccccccc One of the following: cccccccc Name of the job associated with I/O operation N/A Not applicable RST hhhhhhhh Address of the channel program. This value comes from the contents of the IOSRST of the IOSB. field VST hhhhhhhh of the Virtual address of the channel program. This value comes from the contents of the IOSVST field IOSB. DSID hhhhhhhh identifier used by purge. This identifier is in the IOSDID field of the IOSB and is the address of Request the DEB or another control block used by PURGE. CC hh SSCH condition code in bits 2 and 3. SEEKA hhhhhhhh hhhhhhhh Dynamic seek address from the IOSEEKA field of the IOSB. GPMSK hh field of the IOSB. Guaranteed device path mask for GDP requests from the IOSGPMSK The Generalized Trace Facility (GTF) 279

308 Generalized Trace Facility OPT hh of the IOSB. IOSB options byte from the IOSOPT field FMSK hh of the IOSB. Mode Set/File mask from the IOSFMSK field DVRID hh Driver ID from the IOSDVRID field of the IOSB. IOSLVL hh of the field Function level to provide serialization of I/O requests. This value comes from the IOSLEVEL IOSB. UCBLVL hh of the UCB. UCB level value from the UCBLEVEL field UCBWGT hh field of the UCB. Flags from the UCBWGT BASE shhhh field of the UCB, which includes the subchannel set identifier Device number from the UCBCHAN when appropriate. ORB hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Contents of the operation request block (ORB). STAE trace records A STAE record represents return to the recovery termination manager (RTM) from a STAE or ESTAE routine. Minimal Trace Record Format STAE PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh CC... hhhhhhhh RF... hhhhhhhh TYCA... hhhhhhhh hhhhhhhh Comprehensive Trace Record Format STAE ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc ESTN... cccccccc ERR-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ABCC... hhhhhhhh ERRT... hhhhhhhh FLG... hhhhhh RC... hh RTRY... hhhhhhhh RTCA... hhhhhhhh ASCB hhhhhhhh Address of the ASCB for the address space involved in the recovery. CPU hhhh Address of the processor. JOBN cccccccc One of the following: cccccccc Name of the job involved in the recovery N/A Not applicable ******** An internal error occurred ESTN cccccccc One of the following: 280 z/OS: MVS Diagnosis: Tools and Service Aids

309 Generalized Trace Facility cccccccc ESTAE routine name U/A Unavailable because the routine did not supply a name ******** An internal error occurred PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ERR-PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh One of the following: hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word at the time of the error U/A Unavailable because the system diagnostic work area (SDWA) was unavailable ******** An internal error occurred CC hhhhhhhh ABCC hhhhhhhh One of the following: hhhhhhhh first four digits are the system completion code and the last four digits are the user The completion code U/A Unavailable because the system diagnostic work area (SDWA) was unavailable ******** An internal error occurred TYCA hhhhhhhh hhhhhhhh Retry address (see RTRY hhhhhhhh following) and an indication of whether the routine was a STAE or ESTAE (see RTCA hhhhhhhh following). RF hhhhhhhh FLG hhhhhh ERRT hhhhhhhh of the SDWA. Error flags from the SDWAFLGS field RC hh Return code RTRY hhhhhhhh One of the following: hhhhhhhh The address supplied by the FRR N/A Not applicable, indicating an FRR return code other than 4 PPPPPPPP A page fault occurred ******** An internal error occurred RTCA hhhhhhhh Indicates if the recovery routine was a STAE or ESTAE. The Generalized Trace Facility (GTF) 281

310 Generalized Trace Facility SVC and SVCR trace records An SVC record represents a supervisor call (SVC) interruption. An SVCR record represents an exit from a supervisor call. SDSP interruptions also build SVC exit records with label SDSP. When both DSP and SVC options are in effect, the SVCR format of trace record is produced by IPCS. If the trace data contains an SVC exit record, the label that appears in the formatted output will depend on the options selected during IPCS. 1. If the SVC option is selected in the IPCS dialog, the SVC exit record and the SVC number will appear with the label SVCR. 2. If only the DSP option is chosen in the IPCS dialog, the formatted output record will remain unchanged; DSP and SDSP labels will appear in the formatted output and no SVC number will be present. 3. If both DSP and SVC options are active in IPCS, the SVCR along with SVC number will appear. It can be concluded, if SVC is one of the options selected during IPCS formatting, all SVC exit records will appear with label SVCR along with SVC number. The format of an SVC and SVCR trace record depends on the SVC interruption being traced. For a break chapter of z/OS MVS down of the information that GTF collects for each SVC, see the SVC Summary . The formats shown are typical. Diagnosis: Reference Minimal Trace Record Format SVC CODE... hhh ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh SVCR CODE... hhh ASCB... hhhhhhhh CPU... hhhh PSW... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh Comprehensive Trace Record Format SVC... hhh ASCB... hhhhhhhh CPU... hhhh JOBNAME. cccccccc OLD-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh MODN... yyyyyyyy R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh SVCR... hhh ASCB... hhhhhhhh CPU... hhhh JOBNAME. cccccccc OLD-PSW. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCB... hhhhhhhh MODN... yyyyyyyy R15... hhhhhhhh R0... hhhhhhhh R1... hhhhhhhh SVC CODE hhh SVC hhh • For SVC, and for SVCR when not X'FFxx': SVC interruption code, which is also called the SVC number. • For SVCR when X'FF00': completion of the system-initiated processing involved with ATTACH, LINK, XCTL or SYNCH processing prior to the target routine getting control. • For SVCR when X'FF01': initial system-initiated processing involved with XCTL processing prior to the target routine getting control. ASCB hhhhhhhh Address of the ASCB for the address space in which the interruption occurred. CPU hhhh Address of the processor on which the interruption occurred. JOBNAME cccccccc One of the following: cccccccc Name of the job associated with SVC interruption 282 z/OS: MVS Diagnosis: Tools and Service Aids

311 Generalized Trace Facility SSSSSSSS Unavailable; GTF cannot provide data for the SVC due to security considerations. ******** An internal error occurred PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh OLD-PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh DSP-PSW hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Program status word stored when the interruption occurred. • For SVC, and for SVCR when SVC Code is not X'FFxx': Program status word stored when the interruption occurred. • For SVCR when SVC Code is X'FF00': PSW of the target routine that will get control as a result of ATTACH, LINK, XCTL or SYNCH processing. • For SVCR when SVC Code is X'FF01': PSW of a system routine that will get control as a result of initial processing involved with XCTL. TCB hhhhhhhh Address of the TCB for the interrupted task, that is, the task that issued the SVC instruction. R15 hhhhhhhh R0 hhhhhhhh R1 hhhhhhhh Data in general registers 15, 0, and 1 when the SVC instruction ran. MODN cccccccc cccccccc is one of the following: mod_name The name of a module that will receive control when the task is dispatched. SVC–T2 Indicates a type 2 SVC routine resident in the nucleus. SVC–RES Indicates a type 3 SVC routine or the first load module of a type 4 SVC routine. The routine is located in the pageable link pack area (PLPA). SVC cccc Indicates the second or subsequent load module of a type 4 SVC routine. The routine is located in or pageable link pack area (LPA). The last four characters of the load module name are fixed the cccc. **IRB**** Indicates an asynchronous routine with an associated interruption request block. No module name is available. *cccccc Indicates an error recovery module. The last seven characters of the load module name are cccccc. PPPPPPPP A page fault occurred ******** An internal error occurred DDNAM cccccc Name of the DD statement associated with the SVC, if applicable. fields additional fields are described for the SVC in the z/OS MVS Diagnosis: Vary with the SVC number. These . Reference The Generalized Trace Facility (GTF) 283

312 Generalized Trace Facility SYNS and SYNE trace records A SYNS trace entry represents the start of a synchronous I/O (zHyperLink) operation. A SYNE trace entry represents the end of a synchronous I/O (zHyperLink) operation. SYNS... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc RST... hhhhhhhh VST... hhhhhhhh DSID... hhhhhhhh DVRID... hh SEEKA... hhhhhhhh hhhhhhhh UCBSFLS. hhhh UCBLVL.. hh PFID... hhhhhhhh HANDLE.. hhhhhhhh SYNTYPE. cccccccc OPCODE.. hh LEN1... hhhh LEN2... hhhh RECCNT.. hh SYNE... shhhh ASCB... hhhhhhhh CPUID... hhhh JOBN... cccccccc TCB... hhhhhhhh DVRID... hh UCBSFLS. hhhh UCBLVL.. hh PFID... hhhhhhhh HANDLE.. hhhhhhhh SYNTYPE. cccccccc OPCODE.. hh LEN1... hhhh HANDLE.. hhhhhhhh SYNTYPE. cccccccc OPCODE.. hh LEN2... hhhh RECCNT.. hh RESP... hhhh RCQ... hhhh ELAPSED. hhhhhhhh hhhhhhhh DEVSTAT. hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh SYNS shhhh or SYNE shhhh of the UCB with subchannel set Device number from the UCBCHAN when appropriate. field identifier, ASCB hhhhhhhh Address of the ASCB for the address space that performed the I/O operation. CPUID hhhh Address of the processor on which the I/O operation was performed. JOBNAME {cccccccc | NA} One of the following: cccccccc Name of the job associated with task that requested the I/O operation N/A Not applicable TCB {hhhhhhhh | N/A} One of the following: hhhhhhhh Address of the TCB for the task that requested the I/O operation N/A Not applicable RST hhhhhhhh Real address of the channel program. This value comes from the contents of the IOSRST of the field IOSB. VST hhhhhhhh of the Virtual address of the channel program. This value comes from the contents of the IOSVST field IOSB. DSID hhhhhhhh identifier used by purge. This identifier is in the IOSDSID field of the IOSB and is the address Request of the DEB or another control block used by PURGE. DVRID hh identifier from the IOSDVRID field of the IOSB Driver SEEKA hhhhhhhh hhhhhhhh field of the IOSB Dynamic seek address from the IOSEEKA UCBSFLS hhhh Contents of the UCB startability flags (UCBSFLS) from the UCB 284 z/OS: MVS Diagnosis: Tools and Service Aids

313 Generalized Trace Facility UCBLVL hh of the UCB UCB level value from the UCBLEVEL field PFID hhhhhhhh (PFID) for PCIE device/function PCIE function identifier HANDLE hhhhhhhh PCIE function hardware handle SYNTYPE cccccccc The type of synchronous I/O request: • Initiate - This is an initiate type request. An initiate request is used when multiple synchronous I/O requests need to be performed in parallel. There is one initiate request issued for each synchronous I/O to be started in parallel. Normally, the system traces only the start of an initiate request (SYNS event). However, if the initiate request fails, the end of the initiate request is also traced (SYNE event). • Complete – This is a complete type request. A complete request is used to wait for previously initiated requests to complete. There is one complete request issued for each synchronous I/O that was initiated successfully. The system traces only the end of the complete request (SYNE event). • Only – This is a standalone (only) request. The system traces the start (SYNS event) and end (SYNE event) of a standalone request. OPCODE hh Operation code for the operation to be performed LEN1 hhh field First data length LEN2 hhh Second data length field RECCNT hh Record count for this I/O operation RESP hhhh Response code RCQ hhhh Response code qualifier ELAPSED hhhhhhhh hhhhhhhh Elapsed time in 0.5 microsecond units DEVSTAT hhhhhhhh hhhhhhhh... specific status (optional) Device SYNCH I/O trace records A SYNCH I/O record represents the processing of a synchronous I/O (zHyperLink) request. SYNCH I/O trace records appear following a SYNE trace record; they do not appear alone. FORMAT 0 cccc SYNCH I/O REQ DEV... hhhhh ASCB... hhhhhhhh CPU... hhhh JOBN... cccccccc CLP Request Block at vvvvvvvv_vvvvvvvv LEN... hhhh CmdCode... hhhh Fmt... hh OpCode... hh Flag... hh Key... hh Func Handle... hhhhhhhh SID... hhhhhhhh WWNN... hhhhhhhh hhhhhhhh Device Spec... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh CLP Response Block at vvvvvvvv_vvvvvvvv LEN... hhhh RespCod... hhhh RCQ... hhhh Flag... hh RecNo... hh TimeStamp... hhhhhhhh hhhhhhhh DiagID... hhhhhhhh hhhhhhhh The Generalized Trace Facility (GTF) 285

314 Generalized Trace Facility Device Status... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Data at rrrrrrrr_rrrrrrrr dddddddd dddddddd dddddddd dddddddd | ... | dddddddd dddddddd dddddddd dddddddd | ... | **** 0020X CONSECUTIVE BYTES ARE 00X *** Back half of split data *** dddddddd dddddddd dddddddd dddddddd | ... | dddddddd dddddddd dddddddd dddddddd | ... | IOSB at vvvvvvvv formatted iosb data IOBE at vvvvvvvv formatted iobe data FORMAT d cccc Format (d) and type of trace event (cccc): SYNE. Format is zero. DEV hhhhh qualified identifier. The device number with the subchannel set ASCB hhhhhhhh field in the SYNE base record. Same as the ASCB CPU hhhh Same as the CPU ID field in the SYNE base record. JOBN cccccccc field in the SYNE base record. Same as the job named (JOBN) CLP Request Block at vvvvvvvv_vvvvvvvv The request block at virtual address vvvvvvvv_vvvvvvvv. The formatted request block follows. Len hhhhh Request block length CmdCode hhhh Command code Fmt hh Request block format OpCode hh Operation code for the operation to be performed Flag hh Request block flags Key hh first four bits Channel program key in the Func Handle hhhhhhhh PCIE function hardware handle SID hhhhhhhh Subsystem id for the associated subchannel/device WWNN hhhhhhhh hhhhhhhh World-wide node name for the control unit Device Spec hhhhhhhh... Device specific parameters CLP Response Block at vvvvvvvv_vvvvvvvv The response block at virtual address vvvvvvvv_vvvvvvvv. The formatted response block follows. Len hhhhh Request block length RespCode hhhh Response code 286 z/OS: MVS Diagnosis: Tools and Service Aids

315 Generalized Trace Facility RCQ hhhh Response code qualifier Flag hh Response flags RecNo hh Record number to which the status pertains or zero TimeStamp hhhhhhhh hhhhhhhh Control unit time stamp at the time the status condition was detected DiagId hhhhhhhh hhhhhhhh Diagnostic information identifier Device Status hhhhhhhh... status (optional) specific Device Data at rrrrrrrr_rrrrrrrr Data buffer at real address rrrrrrrr_rrrrrrrr dddddddd dddddddd dddddddd dddddddd Data transferred to or from the data buffer. If there is not a series of dashes in this field, then all transferred data are displayed in four byte sections. *** Back half of split data *** Indicates there were more bytes of information transferred than were on the START specified command. The default value is 20 bytes, but you can specify the number of bytes to be shown. specified value is halved; for an odd number, the larger section is shown first. The first section The of data displayed comes from the beginning of the buffer from which the data was transferred. The last section comes from the end of the buffer. IOSB vvvvvvvv Fullword virtual address of the IOSB followed by the formatted contents of the IOSB IOBE vvvvvvvv Fullword virtual address of the IOBE followed by the formatted contents of the IOBE. The Generalized Trace Facility (GTF) 287

316 Generalized Trace Facility TCW trace records A TCW record represents the processing of a zHPF channel program. TCW trace records appear following INTG, IOCS, IO, SSCH, and XSCH trace records; they do not appear alone. FORMAT d cccc TCW CHAIN DEV... hhhhh ASCB... hhhhhhhh CPU... hhhh JOBN... hhhhhh TCW at rrrrrrrr (vvvvvvvv) Format... hh Flag1... hh Flag2... hh Flag3... hh TCCBL/R/W... hh Output Address... rrrrrrrr rrrrrrrr Input Address... rrrrrrrr rrrrrrrr TSB Address... rrrrrrrr rrrrrrrr TCCB Address... rrrrrrrr rrrrrrrr Output Count... hhhhhhhh Input Count... hhhhhhhh Interrogate TCW.. rrrrrrrr tsbtype TSB at rrrrrrrr_rrrrrrrr Length... hh Flags... hh DCW Offset... hhhh Count... hhhhhhhh TotalDevTime... hhhhhhhh DeferTime... hhhhhhhh CUQueueTime... hhhhhhhh DevBusyTime... hhhhhhhh DevActOnlyTime.. hhhhhhhh Sense Data... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh TCCB TIDAW at rrrrrrrr_rrrrrrrr Flags... hh Count... hhhhhhhh Addr... rrrrrrrr rrrrrrrr TCA Header at rrrrrrrr_rrrrrrrr Format... hh TCALen... hh Serv Act Code... hhhh Priority... hh DCW at rrrrrrrr_rrrrrrrr Command.. hh Flags.. hh CD Count.. hh Count.. hhhhhhhh DCW Control Data at rrrrrrrr_rrrrrrrr dddddddd dddddddd dddddddd dddddddd | ... | dddddddd dddddddd dddddddd dddddddd | ... | Data TIDAW at rrrrrrrr_rrrrrrrr Flags... hh Count... hhhhhhhh Addr... rrrrrrrr rrrrrrrr Data at rrrrrrrr_rrrrrrrr dddddddd dddddddd dddddddd dddddddd | ... | dddddddd dddddddd dddddddd dddddddd | ... | **** '0020'X CONSECUTIVE BYTES ARE '00'X *** Back half of split data *** dddddddd dddddddd dddddddd dddddddd | ... | dddddddd dddddddd dddddddd dddddddd | ... | TCA Trailer at rrrrrrrr_rrrrrrrr Transport Count... hhhhhhhh = or = TCA Trailer at rrrrrrrr_rrrrrrrr Write Count... hhhhhhhh Read Count... hhhhhhhh TCAX TIDAW at rrrrrrrr_rrrrrrrr Flags... hh Count... hhhhhhhh Addr... rrrrrrrr_rrrrrrrr DCW (TCAX) at rrrrrrrr_rrrrrrrr Command.. hh Flags.. hh CD Count.. hh Count.. hhhhhhhh DCW Control Data (TCAX) at rrrrrrrr_rrrrrrrr dddddddd dddddddd dddddddd dddddddd | ... | dddddddd dddddddd dddddddd dddddddd | ... | IOSB at vvvvvvvv formatted iosb data IOBE at vvvvvvvv formatted iobe data EWA at vvvvvvvv formatted ewa data FORMAT d cccc Format (d) and type of trace event (cccc): INTG, IO, IOCS, SSCH, or XSCH. Format is zero. DEV hhhhh qualified with the subchannel set identifier. The device number 288 z/OS: MVS Diagnosis: Tools and Service Aids

317 Generalized Trace Facility ASCB hhhhhhhh in the INTG, IO, IOCS, SSCH, or XSCH base record. Same as the ASCB field CPU hhhh in the INTG, IO, IOCS, SSCH, or XSCH base record. Same as the CPU ID field JOBN cccccccc Same as the job named (JOBN) field in the INTG, IO, IOCS, SSCH, or XSCH base record. TCW at rrrrrrrr (vvvvvvvv) The Transport Control Word (TCW) at real address rrrrrrrr and virtual address vvvvvvvv. The formatted TCW follows. Fields designated as "rrrrrrrr" or "rrrrrrrr_rrrrrrrr" are real addresses. tsbtype TSB at rrrrrrrr_rrrrrrrr The Transport Status Block (TSB) at real address rrrrrrrr_rrrrrrrr. The formatted TSB follows. The TSB is only formatted for I/O interruptions (trace events INTG, IO, and IOCS). tsbtype Describes the type of TSB. It can be one of the following: • I/O status - This is a TSB for an I/O completion. • Interrogate - This is a TSB for the completion of an interrogate operation. • Program Check - This is a TSB for an I/O completion with status indicating a device detected program check. • Unknown - The TSB type is not recognized. In this case, the TSB is formatted as hexadecimal data. TCCB TIDAW at rrrrrrrr_rrrrrrrr A Transport Indirect Address Word (TIDAW) for the Transport Command Control Block (TCCB) at real address rrrrrrrr_rrrrrrrr. The formatted TIDAW follows. TCA Header at rrrrrrrr_rrrrrrrr The Transport Control Area Header (TCAH) at real address rrrrrrrr_rrrrrrrr. The formatted TCAH follows. DCW at rrrrrrrr_rrrrrrrr A Device Command Word (DCW) at real address rrrrrrrr_rrrrrrrr. The formatted DCW follows. DCW Control Data at rrrrrrrr_rrrrrrrr The control data (command parameters) for the preceding DCW at rrrrrrrr_rrrrrrrr. The control data is formatted as hexadecimal data. Data TIDAW at rrrrrrrr_rrrrrrrr A Transport Indirect Address Word (TIDAW) for the input or output data buffers at real address rrrrrrrr_rrrrrrrr. The formatted TIDAW follows. Data at rrrrrrrr_rrrrrrrr Data transferred by the preceding DCW at real address rrrrrrrr_rrrrrrrr. dddddddd dddddddd dddddddd dddddddd then all transferred Data transferred by the DCW. If there is not a series of dashes in this field, data are displayed in four byte sections. *** Back half of split data *** Indicates there were more bytes of information transferred than were specified on the START command. The default value is 20 bytes, but you can specify the number of bytes to be shown. specified value is halved; for an odd number, the larger section is shown first. The first section The of data displayed comes from the beginning of the buffer from which the data was transferred. The last section comes from the end of the buffer. TCA Trailer at rrrrrrrr_rrrrrrrr The Transport Control Area Trailer (TCAT) at real address rrrrrrrr_rrrrrrrr. The formatted TCAT follows. Transport Count hhhhhhhh Fullword count of total data transferred. The Generalized Trace Facility (GTF) 289

318 Generalized Trace Facility Write Count hhhhhhhh Fullword count of total write data transferred. Read Count hhhhhhhh Fullword count of total read data transferred. TCAX TIDAW at rrrrrrrr_rrrrrrrr A Transport Indirect Address Word (TIDAW) for the Transport Control Area Extension (TCAX) at real address rrrrrrrr_rrrrrrrr. The formated TIDAW follows. DCW (TCAX) at rrrrrrrrr_rrrrrrrr A Device Command Word (DCW) in the Transport Control Area Extension (TCAX) at real address rrrrrrrrr_rrrrrrrr. The formatted DCW follows. DCW Control Data (TCAX) at rrrrrrrrr_rrrrrrrr The control data (command parameters) for the preceding DCW in the TCAX at rrrrrrrr_rrrrrrrr. The control data is formatted as hexadecimal data. IOSB vvvvvvvv Fullword virtual address of the IOSB followed by the formatted contents of the IOSB. IOBE vvvvvvvv Fullword virtual address of the IOBE followed by the formatted contents of the IOBE. EWA vvvvvvvv Fullword virtual address of the error recovery procedure work area (EWA), followed by the formatted contents of EWA. USR trace records The USR record represents processing of a GTRACE macro. A user-supplied formatting routine (AMDUSRhh) formats the record. If a routine is not supplied, GTF prints the record without formatting. This topic shows the unformatted and formatted records, then shows the following examples of USR records created by GTRACE macros in IBM-components: • USRF9 trace records for VSAM • USRFE trace records for BSAM, QSAM, BPAM, and BDAM • USRFF trace records for open, close, and end-of-volume (EOV) The USRFD trace records for VTAM are described in z/OS Communications Server: SNA Diagnosis Vol 1, . Techniques and Procedures USR records contain the following information useful for identifying the user program, MVS component, or IBM product producing the record and the routine you can use to format the record: (EIDs) identify the event that produced the record. See “Event (EIDs) for identifiers Identifiers • Event USR trace records” on page 295 for a list of the EIDs and associated products for USR trace records. Because each EID for USR records start with an E, unformatted USR records show just the last three numbers of the EID after the E. identifiers (FIDs) identify the routine that the system used to format the USR trace record. See • Format Identifiers (FIDs) for USR trace records” on page 297 for a list of the FIDs and associated “Format routines. Unformatted USR trace record An unformatted user trace record represents processing of a GTRACE macro when a formatting routine is not supplied. USR AID hh FID hhhh EID hhhh hhhhhhhh hhhhhhhh ... AID hh identifier, which should always be AID FF. Application 290 z/OS: MVS Diagnosis: Tools and Service Aids

319 Generalized Trace Facility FID hhhh of the routine (AMDUSRhh) that was to format this record. See “Format identifier Identifiers Format (FIDs) for USR trace records” on page 297 for a list of the FIDs and associated formatting routines for user trace records. EID hhhh which identifies the event that produced the record. See “Event Identifiers (EIDs) for Event identifier, USR trace records” on page 295 for a list of the EIDs and associated products for USR trace records. hhhhhhhh hhhhhhhh ... Recorded data (268 bytes maximum). The data are as follows: • Bytes 0-3: ASCB address • Bytes 4-11: jobname • Bytes 12-256: user data Formatted USR trace record A formatted user trace record represents processing of a GTRACE macro when an AMDUSRhh formatting routine is supplied. USRhh hhh ASCB hhhhhhhh JOBN cccccccc xxxx ... USRhh Identifies the user-supplied formatting routine (AMDUSRhh). The following USR records are generated and formatted by system components, and are described in the following topics: • USRF9 Trace Records for VSAM • USRFD Trace Records for VTAM • USRFE Trace Records for BSAM, QSAM, BPAM, and BDAM • USRFF Trace Records for Open/Close/EOV hhh identifier (EID) specified in the GTRACE macro. See “Event Identifiers Last three numbers of the event for a list of the EIDs and associated products for USR trace (EIDs) for USR trace records” on page 295 records. ASCB hhhhhhhh Address of the ASCB for the address space that created the record. JOBN cccccc Name of the job associated with the address space. xxxx ... User-formatted trace data. The Generalized Trace Facility (GTF) 291

320 Generalized Trace Facility USRF9 trace record for VSAM The USRF9 trace record represents opening or closing of a VSAM data set. USRF9 FF5 ASCB hhhhhhhh JOBN cccccc JOB NAME cccccc STEP NAME cccccc TIOT ENT hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ACB hhhhhhhh hhhhhhhh hhhhhhhh... hhhhhhhh hhhhhhhh hhhhhhhh... AMBL hhhhhhhh hhhhhhhh hhhhhhhh... hhhhhhhh hhhhhhhh hhhhhhhh... AMB hhhhhhhh hhhhhhhh hhhhhhhh... hhhhhhhh hhhhhhhh hhhhhhhh... AMDSB hhhhhhhh hhhhhhhh hhhhhhhh... hhhhhhhh hhhhhhhh hhhhhhhh... AMB hhhhhhhh hhhhhhhh hhhhhhhh... hhhhhhhh hhhhhhhh hhhhhhhh... AMDSB hhhhhhhh hhhhhhhh hhhhhhhh... hhhhhhhh hhhhhhhh hhhhhhhh... USRF9 VSAM's trace-record formatting routine (AMDUSRF9). Identifies FF5 identifier (EID) specified Identifiers Last three numbers of the event in the GTRACE macro. See “Event (EIDs) for USR trace records” on page 295 for a list of the EIDs and associated products for USR trace records. ASCB hhhhhhhh Address of the ASCB for the address space in which the event occurred. JOBN cccccc JOB NAME cccccc Name of the job. STEP NAME cccccc Name of the job step during which the event occurred. TIOT ENT hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh Data set entry from the task I/O table (TIOT). ACB hhhhhhhh ... Contents of the data set's access method control block (ACB). AMBL hhhhhhhh ... Contents of the AMB list (AMBL). AMB hhhhhhhh ... first AMB is for data, the second for the index. Contents of the access method block (AMB). The AMDSB hhhhhhhh ... Contents of the access method statistics block (AMDSB). The AMDSB is for data, the second for first the index. USRFD trace record for VTAM z/OS Communications Server: SNA Diagnosis Vol 1, Techniques and Procedures See for samples of the USRFD trace records. 292 z/OS: MVS Diagnosis: Tools and Service Aids

321 Generalized Trace Facility USRFE trace record for BSAM, QSAM, BPAM, and BDAM The USRFE trace record represents abnormal termination of an access method routine for basic sequential access method (BSAM), queued sequential access method (QSAM), basic partitioned access method (BPAM), or basic direct access method (BDAM). USRFE hhh ASCB hhhhhhhh JOBN cccccc BSAM/QSAM/BPAM/BDAM TRACE RECORD DDNAME cccccc ABEND CODE hh cccc...[AT LOCATION hhhhhhhh] hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ... hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ... USRFE the trace-record formatting routine (AMDUSRFE). Identifies hhh (EID) specified in the GTRACE macro. See “Event Identifiers Last three numbers of the event identifier (EIDs) for USR trace records” on page 295 for a list of the EIDs and associated products for USR trace (EID) corresponds to the system completion code as follows: records. The event identifier Code EID FF3 002 008 FF4 FF6 112 FF7 215 119 FF8 235 FF9 239 FFA FFB 145 FFC 251 FFD 451 FFE 169 ASCB hhhhhhhh Address of the ASCB for the address space in which the abnormal termination occurred. JOBN cccccc Name of the job associated with the address space. BSAM/QSAM/BPAM/DBAM TRACE RECORD identification provided by the AMDUSRFE formatting routine. Record DDNAME cccccc Name of the DD statement for the data set being processed. ABEND CODE hhh System completion code for the abnormal termination of the task. RETURN CODE hh Return code from the module that detected the error condition. TIME=dd.dd.dd Time (hour.minute.second) when the GTRACE macro was processed or blank, if the time is not available. The Generalized Trace Facility (GTF) 293

322 Generalized Trace Facility ccc...[AT LOCATION hhhhhhhh] hhhhhhhh hhhhhhhh hhhhhhhh hhhhhhhh ... Data area name, or name and address, followed by the data area contents. USRFF trace record for open/close/EOV abnormal end This USRFF trace record represents an abnormal end during open, close, or end-of-volume (EOV). USRFF FFF ASCB hhhhhhhh JOBN cccccc xxxx ... USRFF the Open/Close/EOV trace record formatting routine (IMDUSRFF). Identifies FFF specified in the GTRACE macro. See “Event Identifiers identifier Last three numbers of the event (EID) (EIDs) for USR trace records” on page 295 for a list of the EIDs and associated products for USR trace records. xxxx ... Unformatted RRCBSA's (recovery routine control block save areas). USRFF trace record for user requested work area This USRFF trace record represents a user request for a work area trace. USRFF FFF ASCB hhhhhhhh JOBN cccccc DCB xxxx ... WKAREA1 xxxx ... WKAREA2 xxxx ... WKAREA3 xxxx ... WKAREA4 xxxx ... WKAREA5 xxxx ... WTG TBL xxxx ... USRFF the Open/Close/EOV trace record formatting routine (IMDUSRFF). Identifies FFF Last three numbers of the event specified in the GTRACE macro. See “Event Identifiers identifier (EID) (EIDs) for USR trace records” on page 295 for a list of the EIDs and associated products for user trace records. DCB Data control block. WKAREA1 file labels, DSCBs or message area. See z/OS DFSMS Using Magnetic Tapes . Volume labels, WKAREA2 Job control block. file WKAREA3 Internal control blocks for Open/Close/EOV. These blocks are the data control block (DCB), data extent block (DEB), and the input/output block (IOB). WKAREA4 WKAREA5 Where-to-go-table used in transferring control among CSECTs of Open/Close/EOV. 294 z/OS: MVS Diagnosis: Tools and Service Aids

323 Generalized Trace Facility XSCH trace record An XSCH record represents a cancel subchannel operation. For zHPF I/O operations, a cancel subchannel can be used to initiate an interrogate operation to query the status of the I/O operation at the device. XSCH... ddddd ASCB... aaaaaaaa CPUID... cccc JOBN... jjjjjjjj SID... ssssssss CC... cc DVRID... dd IOSLVL.. ll UCBLVL.. ll UCBWGT.. ww BASE... sbbbb INTTCW.. aaaaaaaa XSCH sdddd identifier that the XSCH was issued for. Device number with the subchannel set ASCB aaaaaaaa Address of the ASCB. CPU cccc Address of the processor. JOBN jjjjjjjj Name of the job associated with I/O operation. SID ssssssss Subchannel ID from the UCBSID field of the UCB CC cc The condition code of the XSCH request. DVRID dd field (IOSDVRID) of the request that is attempting to be cancelled. The IOSB driver ID IOSLVL ll of the Function level to provide serialization of I/O requests. This value comes from the IOSLEVEL field IOSB. UCBLVL ll UCB level value from the UCBLEVEL field of the UCB. UCBWGT ww field Flags from the UCBWGT of the UCB. BASE sbbbb The base device number and subchannel set id if the device is a PAV. INTTCW The virtual address of the interrogate TCW, if the XSCH was used to initiate an interrogate operation, or zero. (EIDs) for USR trace records Event Identifiers (EID) in GTF trace records is a 2-byte hexadecimal number that identifies the event The event identifier producing the record. You can use it to identify the product that produced the record. Table 41 on page shows the full 2-byte EID, but because EIDs for USR records start with an E, often unformatted USR 295 records show just the last three numbers of the EID after the E. If you have a three number EID, such as FF5, look for EFF5 in the table. Table 41: Event identifiers for USR trace records EID (hex) Symbolic Name Issued by GTF user program E000-E3FF Reserved for IBM use E400-E5F0 E5F1 PVM The Generalized Trace Facility (GTF) 295

324 Generalized Trace Facility Table 41: Event identifiers for USR trace records (continued) Issued by EID (hex) Symbolic Name Reserved for IBM use E5F2-E5F3 ® NetView Session Monitor E5F4-E5F5 E5F6 NetView E5F7 IMDOMGM Omegamon for DB2 Reserved for IBM use E5F8-E5F9 ALCS E5FA-E5FB E5FC-EF0F Reserved for IBM use EF10-EF1C Reserved for IBM use EF1D-EF1F MVS Job Management - Dynamic Allocation (SVC 99) EF20-EF3F LANRES Reserved for IBM use EF40-EF41 EF42 IBM Client I/O Sockets IMDEF42 MVS System logger EF43 IMDEF43 EF44-EF45 RACF EF46 Reserved for IBM use EF47 IMDEF47 OSI IOS EF48 BDT EF49 Reserved for IBM use EF4A-EF51 EF52 Netview EF53 OSI EF54-EF5D FSI EF5E Reserved for IBM use EF5F DB2 JES3 EF60 EF61 VSAM Buffer Manager EF62 Dynamic output SVC installation exit EF63 Converter/Interpreter installation exit APPC/VM VTAM Support (AVS) EF64 GETMAIN FREEMAIN STORAGE trace (MVS) EF65 Reserved for IBM use EF66-EF6B EF6C CICS EF6D-EF8C Netware EF8D-EF8F Reserved for IBM use IMDVTMDS VTAM EF90 Reserved for IBM use EF91-EF9F EFA0-EFA9 TCAM 296 z/OS: MVS Diagnosis: Tools and Service Aids

325 Generalized Trace Facility Table 41: Event identifiers for USR trace records (continued) Issued by EID (hex) Symbolic Name VTAM VM/SNA Console Services (VSCS) EFAA DFSMS Media Manger EFAB NetSpool EFAC EFAD-EFAE VM EFAF-EFCF Reserved for IBM use Print Service Facility EFD0-EFD4 EFD5-EFE0 Reserved for IBM use ISTVIEID VTAM EFE1 EFE2 ISTTHEID VTAM EFE3 ISTTREID VTAM ISTTDEID EFE4 VTAM JES2 EFE5-EFEE EFEF VTAM ISTTPEID EFEF ISTTPEID VTAM EFF0 ISTRPEID VTAM ISTCLEID VTAM EFF1 EFF2 ISTLNEID VTAM IGGSP002 SAM/PAM/DAM EFF3 IGGSP008 EFF4 SAM/PAM/DAM VSAM EFF5 IDAAM01 IGGSP112 SAM/PAM/DAM EFF6 EFF7 IGGSP215 SAM/PAM/DAM SAM/PAM/DAM EFF8 IGGSP119 SAM/PAM/DAM IGGSP235 EFF9 EFFA IGGSP239 SAM/PAM/DAM EFFB IGGSP145 SAM/PAM/DAM IGGSP251 SAM/PAM/DAM EFFC IGGSP451 EFFD SAM/PAM/DAM SAM/PAM/DAM EFFE IGGSP169 EFFF IHLMDMA1 OPEN/CLOSE/EOV Format Identifiers (FIDs) for USR trace records As Table 42 on page 298 identifier (FID) in GTF trace records is a one-byte hexadecimal shows, the format number that is used to determine the name of the GTFTRACE module you can use to format USR records. See z/OS MVS IPCS Customization for information about the GTFTRACE formatting appendage for formatting USR trace records. The Generalized Trace Facility (GTF) 297

326 Generalized Trace Facility Table 42: Format identifiers for USR trace records Issued by FID (hex) Optional format module EID CSECT AHLFFILT in AHLFINIT 00 E000-EFE4 User/component E000-E3FF User IMDUSR or AMDUSR (01-50) 01-50 AMDUSR57 57 EF44-EF45 RACF IMDUSR81 or AMDUSR81 81 VMSI 84 VMSI/VTAM IMDUSR84 or AMDUSR84 DC PVM IMDUSRDC or AMDUSRDC IMDUSRE2-IMDUSER3 or AMDUSRE2- E2-E3 PSF/MVS AMDUSER3 OSI E6 IMDUSRE6 or AMDUSRE6 IMDUSRE8 or AMDUSRE8 FSI E8 DB2/VSAM IMDUSRE9 or AMDUSRE9 E9 EB APPC/VM VTAM Support IMDUSREB or AMDUSREB (AVS) EC VTAM IMDUSREC or AMDUSREC VTAM/VSCS IMDUSRF5 or AMDUSR5 F5 F9 EFF5 VSAM IMDUSRF9 or AMDUSRF9 EFAB DFSMS Media Manager IMDUSRFA or AMDUSRFA FA EFEF-EFF2 FD VTAM IMDUSRFD or AMDUSRFD IMDUSRFE or AMDUSRFE EFF3-EFF4, EFF6- FE SAM/PAM/DAM EFFE Unformatted GTF trace output This topic describes GTF output records that are not formatted by IPCS or other routines. You can use this information to write your own formatting or analysis routines. fields of the following records, it signals this by Note: When GTF cannot obtain the data normally placed in field placing one of the following values in the out the field. • C'U/A'. Blanks are added on the right to fill out the field. • C'*'. Asterisks are replicated to fill There are several types of output records: . • Control records, see “Control records” on page 299 . • Lost data records, see “Unformatted lost event records” on page 300 . • User data record, see “User data records” on page 300 • System data records, see “System data records” on page 302 . The lost data, user data and system data records all contain optional which are fields that only fields, fields. Make sure appear under certain conditions. The conditions are covered in the explanation for the fields into account. that your formatting or analysis routine takes these variable This section also describes the GTF system data records for individual events. See “CCW trace record” on page 303 through “SVC minimal trace record” on page 318 . 298 z/OS: MVS Diagnosis: Tools and Service Aids

327 Generalized Trace Facility Control records GTF creates a control record at the start of each block of trace output. The control record can be followed by lost data, user data, and system data records. If this trace output was merged from multiple systems using the IPCS COPYTRC subcommand, then the control record reflects the combined GTF options in z/OS MVS IPCS Commands for more information about the COPYTRC effect from all the systems. See subcommand. Figure 100 on page 299 shows the format of a control record. ┌──────┬─────┬─────┬─────┬─────────┬──────────┬───────┐ │ res │ AID │ FID │ time zone │ time stamp │ options │ ... source descriptors ... │ length └──┬───┴──┬──┴──┬──┴──┬──┴────┬────┴────┬─────┴───┬───┘ 2 2 1 1 4 8 8 bytes bytes byte byte bytes bytes bytes Figure 100: Unformatted control record fields in the control record contain the following information: The length Total length of the record, in bytes. res Two bytes of zeroes. Reserved for IBM use. AID Application identifier, which is always zero for control records. FID Format identifier of the routine that will format the record, which is always X'01' for a control record. time zone Value showing the difference between local time and Greenwich mean time (GMT) in binary units of 1.048576 seconds when tracing began. time stamp Time stamp showing the eight-byte Greenwich mean time (GMT) when the control record was created. options field five bytes identify the GTF options in effect for a first containing the following: The An eight-byte in the z/OS Internet z/OS MVS Data Areas block of trace output. See mapping macro AHLZGTO in library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) . The remaining 3 bytes contain the following important flags, in bit ranges 0-7: GTWCFSID - Byte 6, Bit 6 1, if the individual trace records have SIDs (system identifiers) indicating that the GTF trace data from multiple systems was merged using the IPCS COPYTRC command. In this case, there is multiple source descriptors, one for each system. The source descriptors are ranged in order by identifier (SID). Use the value in the SID field as an array index to locate the source system descriptor for a particular system. The source descriptor information is identical in all control records within a single trace data set. 0, if the trace records have no SIDs. GTWCFNEW - Byte 6, Bit 7 1. Source descriptors One or more arrays of information about the origins of the records in this block of trace data, such as the release level of the system issuing the trace data and the GTF options in effect. If GTF trace data was merged from multiple systems, there are multiple source descriptors, one for each system. Use field as an array index to locate the source descriptor for a particular system. the value in the SID z/OS MVS Data Areas in the z/OS Internet library (www.ibm.com/ See mapping macro AHLZGTS in servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) , and check the format of the source descriptor information. The Generalized Trace Facility (GTF) 299

328 Generalized Trace Facility Unformatted lost event records A lost event record indicates that GTF lost the trace records for one or more events because of an error or shows the format of a lost event record. overflow of the trace buffer. Figure 101 on page 300 ┌──────┬─────┬─────┬─────┬─────────┬──────────┬─────┬──────────┐ │ │ AID │ FID │ time zone │ │ res count │ SID │ │ length time stamp └──┬───┴──┬──┴──┬──┴──┬──┴────┬────┴────┬─────┴──┬──┴────┬─────┘ 2 2 1 1 4 8 4 2 bytes bytes byte byte bytes bytes bytes bytes (optional) Figure 101: Unformatted Lost Event Record fields The in the lost event record contain the following information: length Total length of the record, in bytes. res Two bytes of zeroes. Reserved for IBM use. AID Application identifier, which is always zero for lost event records. FID Format identifier. The value of FID is one of the following: • X'02', if some trace records are missing because of an error or an overflow of the trace buffer. • X'03', if an entire block of trace records is missing because of an error or an overflow of the trace buffer. time zone Value showing the difference between local time and Greenwich mean time (GMT) in binary units of 1.048576 seconds when tracing began. time stamp Time stamp showing the eight-byte Greenwich mean time (GMT) when the control record was created. count field If the FID is X'02', indicating that some trace records are missing, this contains the number of trace events that are lost. If the FID is X'03', indicating that an entire block of trace data is missing, this field contains zeros. SID The system field only exists identifier of the system where this trace record was created. This 2-byte when GTF trace data from multiple systems was merged using the IPCS COPYTRC command. When present, the SID is an array index you can use to locate the source descriptor information for a particular system. For example, if the SID value for a record is 3, the source descriptor information for the system issuing the record is the third source descriptor in the control record. To check to see whether trace data for a block of output comes from multiple systems, look in the options field and see if the GTWCFSID bit is set on. See “Control records” on control record for the for the page 299 field. options User data records This topic describes the format of user trace records requested using the GTRACE macro. specifies more than 256 bytes of data, the user records may be split. If a If the application using GTRACE user trace record is a split record, the AID will contain a value of X'F0', X'F1', or X'F2'. Split records contain sequence and total length fields. the optional The records have the general format shown in Figure 102 on page 301 . 300 z/OS: MVS Diagnosis: Tools and Service Aids

329 Generalized Trace Facility ┌──────┬─────┬─────┬─────┬──────────┬─────┬──────────┬──────────┬────────────┬─────┬────────┐ total length │ AID │ FID │ time stamp │ EID │ SID │ sequence │ │ │ ASCB │ job name │ ... data ... res length │ └──┬───┴──┬──┴──┬──┴──┬──┴────┬─────┴──┬──┴────┬─────┴────┬─────┴─────┬──────┴──┬──┴───┬────┘ 2 2 1 1 8 2 2 2 4 4 8 bytes bytes byte byte bytes bytes bytes bytes bytes bytes bytes (optional) (optional) (optional) Figure 102: Unformatted User trace record Format in the record contain the following information: The fields length Total length of the record, in bytes. res Two bytes of zeros. Reserved for IBM use. AID identifier, which is one of the following: Application • X'FF'-- Non-split record first record of a series of split records • X'F0'-- The • X'F1'-- A middle record in a series of split records • X'F3'-- The last record in a series of split records FID Format identifier of the routine that will format the trace record. See “Format Identifiers (FIDs) for USR trace records” on page 297 for a list of FIDs and associated formatting routines. time stamp Time stamp showing the eight-byte Greenwich mean time (GMT) when the record was created. EID Event identifies the event that produced the trace record. See “Event Identifiers identifier, which for a list of the EIDs and associated products for user trace (EIDs) for USR trace records” on page 295 records. SID which identifies the system where the record was produced. This 2-byte field only System identifier, exists in the following cases: • GTF trace data from multiple systems was merged using the IPCS COPYTRC command. • The record is a split one. If the trace data containing this split record was not merged from multiple systems, the SID field for the split record contains zeros. You can use the SID from merged trace data as an array index to locate the source descriptor information for a particular system. For example, if the SID value for a record is 3, the source descriptor information for the system issuing the record is the third source descriptor in the control record. To check to see whether trace data for a block of output comes from multiple systems, look in the options control record for the and see if the GTWCFSID bit is set on. See “Control records” on field for the field. page 299 options sequence field only exists for split records. Sequence number, in hexadecimal, of this split record. This total length Total length of the split trace data. This only exists for split records. field ASCB The address of the address space control block (ASCB) for the address space where the GTRACE macro was issued. jobname The name of the job associated with the task where the GTRACE macro was issued. The Generalized Trace Facility (GTF) 301

330 Generalized Trace Facility data varies according to Contains the trace data gathered for the requested event. The length of this field field the event being traced. The number of bytes of data in the data for user records is equal to the number of bytes on the GTRACE macro. specified System data records GTF creates trace records for each system event you select when requesting GTF tracing. The header portion of system data records for events is shown in Figure 103 on page 302 . Individual event record formats The format of individual system data records are shown in “Unformatted trace records for events” in alphabetical order. Note that this section does not include all system events. on page 302 ┌──────┬─────┬─────┬─────┬──────────┬─────┬──────────┐ │ res │ AID │ FID │ time stamp │ EID │ SID │ ... data ... length │ └──┬───┴──┬──┴──┬──┴──┬──┴────┬─────┴──┬──┴────┬─────┘ 2 2 1 1 8 2 2 bytes bytes byte byte bytes bytes bytes (optional) Figure 103: Header for Unformatted System trace record Format fields in the record contain the following information: The length Total length of the record, in bytes. res Two bytes of zeros. Reserved for IBM use. AID Application identifier, which is always X'FF' for system data records. FID identifier of the routine that will format the trace record. Format time stamp Time stamp showing the eight-byte Greenwich mean time (GMT) when the record was created. EID identifier, identifies the event that produced the trace record. Event which SID which identifies the system where the record was produced. The SID field System identifier, contains field is only created when GTF trace data from zeros when the record is a split record. This 2-byte multiple systems was merged using the IPCS COPYTRC command. When present, the SID is an array index you can use to locate the source descriptor information for a particular system. For example, if the SID value for a record is 3, the source descriptor information for the system issuing the record is the third source descriptor in the control record. To check to see whether trace data for a block of output comes from multiple systems, look in the options field and see if the GTWCFSID bit is set on. See “Control records” on control record for the for the field. options page 299 data Trace data gathered for the requested event. The length of this field varies according to the event being traced. The data portions for individual system trace records are shown starting on . “Unformatted trace records for events” on page 302 Unformatted trace records for events This topic presents the records for a selection of system events in alphabetical order. It shows the unformatted layout of the data for individual event records. See “System data records” on page 302 to see the header section for the records. Note that not all system events are included in this topic. Fields in a trace record may contain the following special indicators: 302 z/OS: MVS Diagnosis: Tools and Service Aids

331 Generalized Trace Facility N/A does not apply in this record. In a 2-byte Not applicable. The N/ . field, field not applicable appears as U/A unavailable appears as . field, U/ Unavailable. GTF could not gather the information. In a 2-byte The offsets for all the data records are relative and do not reflect the actual number of bytes into the record for each field. The offsets begin at the start of the data portion of the each record because the is present. field header section varies in length, depending on whether the optional SID ADINT trace record For a complete mapping of the adapter interruption trace record, see the AHLPCIE (PCIE trace record in the z/OS Internet library (www.ibm.com/servers/ formats) data area in z/OS MVS Data Areas . resourcelink/svc00100.nsf/pages/zosInternetLibrary) CCW trace record z/OS MVS Data Areas in the z/OS Internet For a complete mapping of the AHLMCWRC data area, see library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosInternetLibrary) . DSP comprehensive trace record GTF builds a DSP record when an entry is made to the dispatcher to dispatch a unit of work and TRACE=DSP is the GTF option in effect. The FID for the DSP comprehensive trace record is X'00'. The EID is one of the following: • X'0001' - indicates SRB dispatching. • X'0002' - indicates LSR dispatching. • X'0003' - indicates TCB dispatching. • X'0004' - indicates exit prolog dispatching. Table 43: DSP trace record offset, size, and description. Size Description Offset 4 0 (0) ASCB. CPUID. 4 (4) 2 8 Jobname. 6 (6) 14 (E) 16 Resume PSW for new task. New TCB (for LSR and TCB, SRB for SRB). 30 (1E) 4 For TCB only: 34 (22) 8 CDE name. For SRB only: 4 Parm address. 34 (22) 1 For SRB only, SRB routine type indicator. 38 (26) S for a suspended SRB that is about to be re-dispatched. I for an SRB that is about to be dispatched for the first (initial) time. DSP minimal trace record GTF builds a DSP minimal record when an entry is made to the dispatcher to dispatch a unit of work and TRACE=SYSM,DSP are the GTF options in effect. both X'03' . The EID is one of the following values: The FID for the DSP minimal trace record is • X'0001' - indicates SRB dispatching. The Generalized Trace Facility (GTF) 303

332 Generalized Trace Facility • X'0002' - indicates LSR dispatching. - indicates TCB dispatching. • X'0003' • - indicates exit prolog dispatching. X'0004' Table 44: Values for DSP minimal trace record Description Size Offset 4 ASCB. 0 (0) 2 4 (4) CPUID. 6 (6) 16 Resume PSW for work unit that is being dispatched. Current TCB or N/A (for TCB and LSR only). 22 (16) 4 Register 15. 4 26 (1A) Register 0 or SRB. 30 (1E) 4 4 Register 1. 34 (22) 38 (26) 1 For SRB only. The SRB routine type indicator. S for a suspended SRB that is about to be redispatched. (initial) time. I for an SRB that is about to be dispatched for the first EXT comprehensive trace record GTF builds a EXT comprehensive record when an external interruption occurs and either TRACE=SYS or TRACE=EXT are the GTF options in effect. The FID for the EXT comprehensive trace record is X'02'. The EID is X'6201'. interruption. Table 45: EXT comprehensive trace record offset, size, and description. Size Description Offset 4 0 (0) ASCB. CPUID. 4 (4) 2 8 Jobname. 6 (6) 14 (E) 16 External old PSW. Old TCB. 30 (1E) 4 For SIGP interrupt: 4 PARMFIELD. 34 (22) 38 (26) 2 CPUID. For clock comparator interrupt: 2 Reserved for IBM use. 34 (22) 4 TQE exit. 36 (24) 40 (28) 4 TQE ASCB. For CPU timer interrupt: 34 (22) 2 Reserved for IBM use. 4 TQE exit. 36 (24) EXT minimal trace record GTF builds an EXT minimal record when an external interruption occurs and TRACE=SYSM is the GTF option in effect. 304 z/OS: MVS Diagnosis: Tools and Service Aids

333 Generalized Trace Facility The FID for the EXT minimal trace record is X'03'. An EID of X'6201' indicates an external interruption. Description Offset Size ASCB. 0 (0) 4 4 (4) CPUID. 2 External old PSW. 16 6 (6) 22 (16) TCB of interrupted task or N/A. 4 26 (1A) 4 NTQE TCB or INT CPU or N/A. I/O summary trace record GTF builds an I/O summary record when an I/O interruption occurs and TRACE=IOX or TRACE=IOXP is a GTF option in effect. To trace PCI I/O interruptions, TRACE=PCI must also be in effect. The FID for the I/O summary record is X'08'. The EID is one of the following: • X'2100' - indicates a PCI I/O interruption • X'5107' - indicates an EOS I/O interruption • X'5202' - indicates an I/O interruption with a valid UCB • X'5203' - indicates a IOCS I/O interruption. It indicates an I/O interruption that also contains concurrent sense information, for devices that support the concurrent sense facility. The I/O summary record will always contain a header section, followed by a section header and a common section. The section header describes the type and length of the following section and an indicator if this is the last section of the record. A typical I/O summary record for a dasd device would have a header section, a common section, a data set section, a CMB section and, probably, one or more CCW sections. If an I/O summary record has to be extended the following extension records would consist of a header section with the header record number greater than 1, a common section and one or more CCW sections. Header section Size Description Offset 0 (0) 4 ASCB. CPUID. 2 4 (4) 8 Jobname. 6 (6) Device number. 14 (E) 2 System ID. 4 16 (10) 20 (14) 1 Driver ID. 1 Trace version. 21 (15) 2 Record count. 22 (16) Section header Offset Size Description 1 Section type: 0 (0) • FL1'0': Common section • FL1'1': CMB section • FL1'3': CCW Orientation section • FL1'4': Data set section The Generalized Trace Facility (GTF) 305

334 Generalized Trace Facility Offset Size Description Flag 1 (1) identifiers. 1 1... ... Last section of this record. 2 (2) Section length. 2 Common section Offset Size Description 1 0 (0) Device class. Device status. 1 1 (1) 2 (2) 1 Error codes: indicate errors found during CCW analysis. See “CCW error codes” on page 307 for a description. Flag byte. 3 (3) 1 Last trace recordof this I/O event. 1... ... .1.. ... Reserve (conditional or unconditional). ..1. ... Release. ...1 ... At least one search CCW. 6 Volume serial. 4 (4) 10 (A) 4 Device type. Data set section Size Description Offset 0 (0) 1 Data set type. Name length. 1 1 (1) 44 Data set name. 2 (2) CMB Section Size Description Offset Number of SSCH instructions. 0 (0) 2 Number of SSCH instructions for which data was collected. 2 2 (2) 4 (4) 4 Sum of device connect times. 8 (4) 4 Sum of SSCH request pending times. 4 Sum of subchannel disconnect times. 12 (C) 4 16 (10) Sum of control unit queueing times. Time stamp for the start of this I/O request. 20 (14) 8 28 (1C) 4 Device active only time. 32 (20) 4 Number of SSCH instructions 4 Number of SSCH instructions for which data was collected 36 (24) 4 Sum of device busy times 40 (28) 44 (2C) 4 Sum of initial command response times 306 z/OS: MVS Diagnosis: Tools and Service Aids

335 Generalized Trace Facility CCW orientation section Description Offset Size Orientation sequence number. 0 (0) 1 1 1 (1) Flag byte 1. At least one SILI bit on. 1... ... At least one suspend bit on. .1.. ... ..1. ... At least one PCI. At least one skip bit on. ...1 ... ... 1... Read record zero or read home address. ... .1.. Reserved. Read multiple CKD or track. ... ..1. At least one erase CCW. ... ...1 Flag byte 2. 1 2 (2) file read or written. 1... ... End of .1.. ... At least one format write. ..1. ... This record is for an FCX (zHPF) channel program 1 Count of erase, read MCKD. 3 (3) 4 (4) 2 Number of blocks read. 6 (6) 2 Number of blocks written. 4 Number of bytes read. 8 (8) 4 12 (C) Number of bytes written. Number of data chain CCWs. 2 16 (10) 2 Number of COM chain CCWs. 18 (12) 20 (14) 1 External global attribute. 11.. ... '11' (only allowed value). ..1. ... CKD conversion mode. ...1 ... Subsystem operation mode. ... ..1. Cache fast write. ... ...1 Inhibit DASD fast write. 1 External global attribute extended. 21 (15) 4 22 (16) External end of extent CCH. Seek/locate code. 26 (1A) 1 27 (1B) 5 CCHHR (search ID equal). 32 (20) 1 Operation code from locate parameter. 1 Sector number from parameter. 33 (21) 1 Extended operation code. 34 (22) 35 (23) 2 Extended parameters. CCW error codes The Generalized Trace Facility (GTF) 307

336 Generalized Trace Facility Table 46: CCW error codes Description Error code (Hex) Error Code Name IONOCCW 03 Bad CCW 04 Insufficient space in table IOINSPAC 05 IOX4K Target crosses 4K boundary 06 IOLASTCC Last CCW not trace Search CCW with data chain IOSRCHCD 07 08 IOINSCNT Insufficient count 09 IOCPUNAV Channel program unavailable IORCKD8 0A Read CKD with count <8 No IDAW where needed IONOIDAW 0B IOCSWINV Invalid CSW 0C 0D IOTICBAD Invalid TIC address 0E IOEBIDA IDAL across page bound IOEBIDAL IDAL not aligned on correct boundary 0F 10 IOMIDNOQ MIDAW not aligned on correct boundary IOMIDZCT MIDAW contains a zero count 11 IOMIDPBD 12 MIDAW crosses a page boundary (ignored if the skip bit is on) Both the IDAW and MIDAW bits are on 13 IOMIDIDA IONOTCW Failure accessing TCW 14 15 IONOTCAH Failure accessing TCA header Failure accessing TSB 16 IONOTSB Failure accessing TIDAW IONOTIDA 17 18 IONODCW Failure accessing DCW 19 IOINCMDL TCW command length in error IOCmdParmInvalid Command dependent parameters contain invalid information 1A I/O trace record GTF builds an I/O record when an I/O interruption occurs and TRACE=SYSM, TRACE=SYS, TRACE=IO, or TRACE=IOP are the GTF options in effect. To trace PCI I/O interruptions, TRACE=PCI must also be in effect. The FID for the I/O trace record is X'07'. The EID is one of the following: • X'2100' - indicates a PCI I/O interruption. • X'5101' - indicates an EOS I/O interruption. • X'5200' - indicates an I/O interruption with a valid UCB. • X'5201' - indicates a IOCS I/O interruption. It indicates an I/O interruption that also contains concurrent sense information, for devices that support the concurrent sense facility. Offset Description Size 4 ASCB. 0 (0) 4 (4) 2 CPUID. 308 z/OS: MVS Diagnosis: Tools and Service Aids

337 Generalized Trace Facility Offset Size Description Jobname. 6 (6) 8 2 14 (E) Device number. 16 (10) I/O old PSW. 16 32 (20) 20 IRB words 0-4. 52 (34) 4 TCB. Sense bytes. 2 56 (38) 58 (3A) 1 IOSB Flag (IOSFLA). IOSB Option (IOSOPT). 59 (3B) 1 IOS Driver ID. 60 (3C) 1 IOS level. 61 (3D) 1 1 UCB level. 62 (3E) 63 (3F) 1 Flags (UCBGWT). Base device number. 64 (40) 2 44 IRB words 5–15 (for EID X'5201' only). 66 (42) PCIDMX trace record For a complete mapping of the PCIE de-multiplexing trace record, see the AHLPCIE (PCIE trace record z/OS MVS Data Areas in the z/OS Internet library (www.ibm.com/servers/ formats) data area in . resourcelink/svc00100.nsf/pages/zosInternetLibrary) PCILG trace record For a complete mapping of the PCILG trace record, see the AHLPCIE (PCIE trace record formats) data area in in the z/OS Internet library (www.ibm.com/servers/resourcelink/ z/OS MVS Data Areas svc00100.nsf/pages/zosInternetLibrary) . PCISTG trace record For a complete mapping of the PCISTG trace record, see the AHLPCIE (PCIE trace record formats) data in the z/OS Internet library (www.ibm.com/servers/resourcelink/ area in z/OS MVS Data Areas . svc00100.nsf/pages/zosInternetLibrary) PI comprehensive trace record GTF builds a PI comprehensive record when a program interruption occurs and either TRACE=PI or TRACE=SYS are the GTF options in effect. The FID for the PI comprehensive trace record is X'00'. The EID is one of the following: • X'6101' - indicates a program interruption with codes 1-17, 19, and 128. • X'6200' - indicates a program interruption with code 18. Offset Description Size 4 ASCB. 0 (0) 4 (4) 2 CPUID. 6 (6) 8 Jobname. 16 Program old PSW. 14 (E) 4 INT TCB. 30 (1E) 34 (22) 4 Virtual page address low half. The Generalized Trace Facility (GTF) 309

338 Generalized Trace Facility Offset Size Description RB or CDE name. 38 (26) 8 64 46 (2E) Reserved for IBM use. 110 (6E) Virtual page address high half. 4 PI minimal trace record GTF builds a PI minimal record when a program interruption occurs and TRACE=SYSM is the GTF option in effect. The FID for the PI minimal trace record is X'03'. The EID is one of the following: • X'6101' - indicates a program interruption with codes 1-17, 19, and 128. • X'6200' - indicates a program interruption with code 18. Size Description Offset ASCB. 0 (0) 4 CPUID. 4 (4) 2 Program old PSW. 6 (6) 16 4 Old TCB. 22 (16) Virtual page address low half. 26 (1A) 4 Register 15. 4 30 (1E) 34 (22) 4 Register 1. 4 Virtual page address high half. 38 (26) RR comprehensive trace record GTF builds an RR comprehensive record when a recovery routine is invoked and TRACE=SYS or TRACE=RR are the GTF options in effect. The FID for the RR comprehensive trace record is X'04'. The EID is one of the following: • X'4002' - indicates STAE/ESTAE invocation. • X'4003' - indicates FRR invocation. Size Description Offset 0 (0) 4 ASCB. CPUID. 4 (4) 2 8 Jobname. 6 (6) 14 (E) 8 Name of recovery routine or U/A. 16 PSW current when error occurred. 22 (16) 4 Completion code. 38 (26) 42 (2A) 8 Reserved for IBM use. 50 (32) 4 Retry address or N/A. 4 Address of SDWA (STAE/ESTAE only). 54 (36) RR minimal trace record GTF builds an RR minimal record when a recovery routine is invoked and TRACE=SYS is the GTF option in effect. 310 z/OS: MVS Diagnosis: Tools and Service Aids

339 Generalized Trace Facility The FID for the RR minimal trace record is X'03'. The EID is one of the following: • X'4002' - indicates STAE/ESTAE invocation. • X'4003' - indicates FRR invocation. Size Offset Description ASCB. 0 (0) 4 4 (4) CPUID. 2 6 (6) 16 Error PSW. 22 (16) 4 Completion code. Reserved for IBM use. 4 26 (1A) 30 (1E) 3 Reserved for IBM use. 33 (21) 1 Return code from recovery routine (STAE/ESTAE only). 4 Note: If no return code at offset 33, begin retry 34 (22) Retry address or N/A. address at offset 33. 4 Note: If retry address begins at offset 38 (26) Address of SDWA (STAE/ESTAE only). 33, SDWA address begins at offset 37. SLIP trace records GTF builds a SLIP trace record when TRACE=SLIP is the GTF option in effect and: specified on the SLIP command. • A SLIP trap has matched and either TRACE or TRDUMP has been • A SLIP trap is in DEBUG mode (specified on the SLIP command) and is inspected by the SLIP processor as a result of any SLIP event. The SLIP trace records are: • SLIP Standard Trace Record • SLIP Standard/User Trace Record • SLIP User Trace Record • SLIP DEBUG Trace Record SLIP standard trace record The FID for the SLIP standard trace record is X'04'. The EID is X'4004'. A field will contain asterisks if an error occurred when attempting to obtain data or the data is unavailable because it is paged out. Description Size Offset 4 ASCB address. 0 (0) 4 (4) 2 CPUID. ( Note: When SLIP is entered from RTM2, the CPUID recorded may be different from the CPUID when RTM2 was running.) 8 Jobname from current address space (or N/A). 6 (6) 4 SLIP trap ID. 14 (E) 18 (12) 2 ASID of current address space. 20 (14) 8 Job step program name (or U/A or N/A). 4 TCB address (or N/A). 28 (1C) 1 System mode indicators, byte 1: 32 (20) 1... ... Supervisor control mode. The Generalized Trace Facility (GTF) 311

340 Generalized Trace Facility Offset Size Description Disabled for I/O and external interrupts. .1.. ... Global spin lock held. ..1. ... ...1 ... Global suspend lock held. Local lock held. ... 1... Type 1 SVC in control. ... .1 ... ..1. SRB mode. TCB mode. ... ...1 33 (21) 1 System mode indicators, byte 2: 1... ... Recovery routine in control (always zero if a PER interrupt). .1.. ... Problem program state. ..1. ... Supervisor state. System key. ...1 ... ... 1... Problem program key. ... .1.. Any global lock held. Any lock held. ... ..1. Error byte 1 (or zeros if a PER interrupt): 1 36 (24) 1... ... Program check interrupt. .1.. ... Restart interrupt. ..1. ... SVC error. ...1 ... Abend; task issued SVC 13. Paging I/O error. ... 1... ... .1.. Dynamic address translation error. ... ..1. Software error caused by machine check. ... ...1 Abnormal address space termination. 35 (23) 1 Error byte 2 (or zeros if a PER interrupt): 1... ... Memterm. 36 (24) 1 SLIP flags: 1... ... DEBUG record. .1.. ... Registers collected. 2 37 (25) for the trap). Data unavailable counter (or zeros if DATA was not specified apply only to PER interrupts otherwise set to N/A (or N for one-byte fields The following fields). Offset Size Description 8 Load module name in which the interrupt occurred (or U/A or N/A). 39 (27) 4 Offset in load module (or U/A or N/A). 47 (2F) 51 (33) 8 Address of the instruction that caused the PER interrupt. 6 Instruction content (six bytes of data beginning at the address of the 59 (3D) instruction that caused the PER interrupt). 312 z/OS: MVS Diagnosis: Tools and Service Aids

341 Generalized Trace Facility Offset Size Description Target instruction address if EXECUTE instruction (or N/A or U/A). 65 (41) 8 6 73 (49) Target instruction content if EXECUTE instruction (six bytes of data beginning at the target instruction address), or (N/A or U/A). 4 Beginning range virtual address if SA (storage-alteration) specified on SLIP 79 (4F) command (or N/A). 83 (53) 4 Four bytes of storage starting at beginning range virtual address if SA (or N/A or U/A). specified 16 Program old PSW. 87 (57) 103 (67) 4 Program interrupt code (PIC) and instruction length code. 107 (6B) 1 PER interrupt code: 1.. ... Successful-branch event (SB). Instruction-fetch event (IF). .1.. ... ..1. ... Storage-alteration event (SA). 108 (6C) 1 PER trap mode: 1... ... Successful-branch monitoring (SB). .1.. ... Instruction-fetch monitoring (IF). ..1. ... Storage-alteration monitoring (SA). ...x ... Reserved. ... 1... PER trap. Recovery specified. ... .1.. ... ..1. Message flag. ... ...1 Message flag. Key mask. 109 (6D) 2 SASID. 2 111 (6F) 113 (71) 2 Authorization index. 115 (73) 2 PASID. 1 PSW ASC mode indicator 117 (75) • F0: primary addressing mode • F1: access register addressing mode • F2: secondary addressing mode • F3 home addressing mode 118 (76) 13 Storage Alteration Space Identifier • For an address space: contains the ASID • For a data space: contains the owning ASID and the dataspace name 4 High-half of begin range 131 (83) 1 Transactional execution DATA filter mismatch count 135 (87) SLIP standard + user trace record The FID for the SLIP Standard + User trace record is X'04'. The EID is X'4005'. The Generalized Trace Facility (GTF) 313

342 Generalized Trace Facility Offset Size Description 0 (0) 136 through 135 Fields are identical to the SLIP standard record. user-defined Length of data. 136 (88) 2 data (specified 138 (8A) variable User-defined through the TRDATA parameter on the SLIP command). SLIP user trace record The FID for the SLIP user trace record is X'04'. The EID is X'4006'. Description Offset Size CPUID. 2 0 (0) Extension number. 2 (2) 2 1 Continuation length. 4 (4) Length of the user defined data. 5 (5) 2 User-defined data (specified through the TRDATA parameter on the SLIP variable 7 (7) command). Note: first field in the 1. If the SLIP user requests registers to be placed in the SLIP user record, they are the record. 2. A length user-defined data was not available (for example, the data is field of zero indicates that the paged out). specifies 3. The TRDATA parameter on the SLIP command one or more data ranges. The number of The trace contains a records needed to trace these ranges depends on the size of the ranges specified. standard plus (+) user record from the next range or a user record followed by as many user records and user continuation records as needed to trace the ranges The header for each record specified. contains the CPUID and extension number to help correlate the output (extension numbers apply only to user and user continuation records). When a record is partially filled and the data from the next fit in the remaining space; the partially filled record is written to the trace data set. range will not Another user record is built, the extension number is increased by one, and the continuation length is set to zero. The data length and data is then copied into this record. When the length of the data from a range is greater than 249 bytes, the excess data is put in user first 248 bytes are put in a user continuation records in the following manner. The data length and record. After writing that record a user continuation record is built. The extension number is increased by one and the continuation length is set to the number of bytes of data to be put in this record. If more than 251 bytes of data are left, 248 bytes are copied into record, and it is written. User continuation records are built until all the data in from that range is traced. SLIP DEBUG trace record The FID for the SLIP DEBUG trace record is X'04'. The EID is X'4005'. Offset Description Size 0 (0) 136 through 135 Fields are identical to the SLIP standard record. 314 z/OS: MVS Diagnosis: Tools and Service Aids

343 Generalized Trace Facility Offset Size Description DEBUG byte; indication of which keyword failed: 136 (88) 1 • Decimal 2 indicates COMP keyword • Decimal 3 indicates ASID keyword • Decimal 4 indicates JOBNAME keyword • Decimal 5 indicates JSPGM keyword • Decimal 6 indicates PVTMOD keyword • Decimal 7 indicates LPAMOD keyword • Decimal 8 indicates ADDRESS keyword • Decimal 9 indicates MODE keyword • Decimal 10 indicates ERRTYP keyword • Decimal 13 indicates RANGE keyword • Decimal 14 indicates DATA keyword • Decimal 20 indicates ASIDSA keyword • Decimal 22 indicates REASON CODE keyword • Decimal 23 indicates NUCMOD keyword • Decimal 24 indicates PSWASC keyword • Decimal 26 indicates DSSA keyword 1 137 (89) Reserved. field The high-order bit in the SLIP flags (SFLG) Note: (at offset X'34') is set on to indicate a DEBUG record. SRM comprehensive trace record GTF builds an SRM comprehensive record when system resource manager is invoked and TRACE=SYS or TRACE=SRM are the trace options in effect. The FID for the SRM trace record is X'04'. The EID is X'4001'. Size Description Offset 4 ASCB. 0 (0) 2 4 (4) CPUID. Jobname 6 (6) 8 4 Register 15. 14 (E) Register 0. 18 (12) 4 Register 1. 22 (16) 4 SRM minimal trace record GTF builds an SRM minimal record when system resource manager is invoked and TRACE=SYSM is the GTF option in effect. The FID for the SRM minimal trace record is X'03'. The EID is X'4001'. Offset Description Size 4 ASCB. 0 (0) 4 (4) 2 CPUID. 4 Register 15. 6 (6) 4 Register 0. 10 (A) The Generalized Trace Facility (GTF) 315

344 Generalized Trace Facility Offset Size Description Register 1. 14 (E) 4 SSCH trace record GTF builds an SSCH record when an SSCH event occurs and TRACE=SYSM, TRACE=SYS, TRACE=SYSP, TRACE=SSCH or TRACE=SSCHP are the GTF options in effect. The FID for the SSCH trace record is X'00'. The EID is X'5105'. Offset Description Size 0 (0) 4 ASCB. CPUID. 4 (4) 2 6 (6) 8 Jobname. Device number. 14 (E) 2 Real address of channel program. 4 16 (10) Virtual address of channel program. 20 (14) 4 4 Reserved for IBM use. 24 (18) 28 (1C) 1 Condition code. 29 (1D) 12 Reserved for IBM use. 8 Dynamic seek address. 41 (29) 49 (31) 1 Reserved for IBM use. 1 Reserved for IBM use. 50 (32) 1 51 (33) Reserved for IBM use. Reserved for IBM use. 1 52 (34) 1 Reserved for IBM use. 53 (35) 54 (36) 1 Reserved for IBM use. SVC comprehensive trace records GTF builds SVC comprehensive records when an SVC interruption occurs and either the TRACE=SYS or TRACE=SVC GTF option is in effect. All SVC records contain the basic data described below; however, many SVC numbers invoke additional data recording, described following the basic data. The FID for the SVC comprehensive trace record is X'010'. The EID is X'1000'. Table 47: Basic SVC comprehensive trace record Offset Size Description 0 (0) 4 ASCB. 2 CPUID. 4 (4) 8 Job name. 6 (6) 14 (E) 16 SVC old PSW. The seventh and eighth bytes contain the SVC number. 30 (1E) 4 Old TCB. 8 CDE name. 34 (22) 4 Register 15. 42 (2A) 46 (2E) 4 Register 0. 316 z/OS: MVS Diagnosis: Tools and Service Aids

345 Generalized Trace Facility Table 47: Basic SVC comprehensive trace record (continued) Description Offset Size Register 1. 50 (32) 4 GTF builds only a basic comprehensive trace record for the following SVCs: Number Number Name Name EXIT 3 97 TEST 100 GETMAIN/FREEMAIN 10 SUBMIT 101 11 TIME QTIP 103 SYNCH XLATE 12 MGCR TOPCTL 104 34 IMBLIB 105 WTL 36 REQUEST TTROUTER 38 106 MODESET CIRB 107 43 109 TTIMER None 46 TTOPEN DSTATUS 110 49 JECS 111 NOP 50 RELEASE OLTEP 59 112 SIR 113 61 TSAV 72 BLKPAGE 115 CHATR 76 None 116 (IFBSTAT) 79 STATUS None 117 DSSPATCH SMFWTM 118 83 119 (IGC084) TESTAUTH 84 SWAP GETMAIN/FREEMAIN 120 85 None 121 EMSERV 89 LINK, LOAD, XCTL VOLSTAT 91 122 PURGEDQ 123 93 TPUT/TGET 94 TPIO 124 TSO terminal control 95 SYSEVENT Basic SVC comprehensive trace record with parameter list information For detailed information about data gathered for the following SVCs, see z/OS MVS Diagnosis: Reference . Name Name Number Number STIMER 47 EXCP 0 DEQ 48 1 WAIT/WAITR 2 SNAP 51 POST 4 RESTART 52 GETMAIN FREEMAIN 5 RELEX 53 The Generalized Trace Facility (GTF) 317

346 Generalized Trace Facility Name Number Number Name DISABLE LINK 54 6 55 EOV 7 XCTL 8 56 ENQ/RESERVE LOAD DELETE 9 57 FREEDBUF 58 ABEND 13 RELBUF/REQBUF 60 14 SPIE STAE 62 ERREXCP DETACH 15 PURGE CHKPT 63 16 RESTORE 64 17 RDJFCB 18 66 BLDL/FIND BTAMTEST BSP OPEN 19 69 CLOSE 20 GSERV 70 ASGNBFR/BUFINQ/ 71 STOW 21 RLSEBFR OPEN TYPE = J 73 22 SPAR DAR 23 CLOSE TYPE = T 74 DEVTYPE 24 DQUEUE 75 25 LSPACE 78 TRKBAL 26 CATLG GJP 80 SETPRT OBTAIN 81 27 86 SCRATCH 29 ATLAS 87 30 RENAME DOM 88 MOD88 FEOB 31 ALLOC 92 32 TCBEXCP 35 98 WTO/WROR PROTECT Dynamic allocation 37 SEGLD/SEGWT 99 LABEL 39 EXCPVR 114 40 EXTRACT 41 IDENTIFY 42 ATTACH CHAP 44 45 OVLYBRCH SVC minimal trace record GTF builds an SVC minimal record when an SVC interruption occurs and TRACE=SYSM is the GTF option in effect. The FID for the SVC minimal trace record is X'010'. The EID is X'1000'. Offset Size Description 4 ASCB. 0 (0) 2 CPUID. 4 (4) 318 z/OS: MVS Diagnosis: Tools and Service Aids

347 Generalized Trace Facility Offset Size Description SVC old PSW. The seventh and eighth bytes contain the SVC number. 16 6 (6) 22 (16) Old TCB. 4 26 (1A) 4 Register 15. 4 Register 0. 30 (1E) 4 Register 1. 34 (22) TCW trace record For a complete mapping of the AHLFCXG (FCX/zHPF channel program) data area, see z/OS MVS Data in the z/OS Internet library (www.ibm.com/servers/resourcelink/svc00100.nsf/pages/ Areas . zosInternetLibrary) The Generalized Trace Facility (GTF) 319

348 Generalized Trace Facility 320 z/OS: MVS Diagnosis: Tools and Service Aids

349 Chapter 11. The generic tracker facility The intended purpose of generic tracker is to be a migration aid and to help assess exploitation of old and new function. For example, you can assess use of interfaces you intend to make obsolete, and assess exploitation of old and new function in general. For functions that are already obsolete in a new release, you can use generic tracker to assess their use on previous releases. The generic tracker facility is a tracking facility that provides theses services. • A callable tracking service that users can instrument code with: – The caller passes an event address and other related information to the service. – The service attempts to resolve the event address to a program name and store it with the other information for later analysis. • Provides a callable query service that extracts previously stored track records and tracking facility information. • Provides operator commands to display and maintain tracking facility information and configuration details. • Supports parmlib members for easy reuse of tracking facility statements. configuration • Provides more tools to aid in the use of the tracking facility and the information it stores. The generic tracker Facility replaces the Console Tracking Facility, which was available in releases before z/OS V2R1. The Console Tracking Facility operator commands are available only in releases before z/ OSV2R1. Macro CNZTRKR continues to be supported, but the recommendation is to use macro GTZTRACK instead. Any information CNZTRKR collects is stored in the new tracking facility. Do not continue to use service CNZTRKR. When possible, replace existing CNZTRKR invocations with GTZTRACK invocations. The generic tracker consists of the following parts: • A system parameter named GTZ - see z/OS MVS Initialization and Tuning Guide . • Support for GTZPRMxx parmlib members. See z/OS MVS Initialization and Tuning Guide – Shipped with GTZPRM00, which includes an exclusion list. • Operator commands. See . z/OS MVS System Commands – SET GTZ – add GTZPRMxx members – SETGTZ – control the tracking facility – DISPLAY GTZ – report tracking facility information. • Callable macro services. See z/OS MVS Programming: Assembler Services Reference ABE-HSP . – GTZTRACK – track an event - Associated mapping macro GTZZTRK – GTZQUERY – report tracking facility information - Associated mapping macros for Assembler (GTZZQRY) and METAL-C (GTZHQRY) • REXX callable functions. See “GTZLQRY REXX callable function” on page 324 . – GTZLQRY – report tracking facility information • Utility programs – GTZPRINT – report tracking facility information - Associated mapping macro GTZZPRT – GTZCNIDT – create GTZPRMxx from CNIDTRxx - Associated mapping macro GTZZCNI © Copyright IBM Corp. 1988, 2017 321

350 – GTZSMFU2 and GTZSMFU3 – retrieve GTZ data from standard SMF record backend stores and format the data in text form • Samples – see SYS1.SAMPLIB – GTZCNIDJ – start utility program GTZCNIDT – GTZPRNTJ – start utility program GTZPRINT – GTZSHCK – a sample health check to report tracked events – GTZSHCKJ – build health check GTZSHCK – GTZSMFJ – use of utility programs GTZSMFU2 and GTZSMFU3 The generic tracker is a system address space that starts automatically during the IPL of the system. A restart is not required or recommended unless it is explicitly requested, for example to apply service. The to source of the IBM supplied started procedure GTZ can be the MEMLIMIT, which modified configure determines how much information the tracking facility can store. Actual tracking (that is, recording track events) is disabled by default. When tracking is disabled, invocations of GTZTRACK are allowed, but ignored by the system. Use the SETGTZ TRACKING=ON operator command to enable tracking. Besides storing track data in the dynamic storage of the GTZ address space, you can also enable the tracking facility to persist track data using SMF records. For more information, see “GTZLQRY "TRACKDATA" interface” on page 328 . Before you enable tracking and allow the tracking facility to store data and report it back to the users, consider protecting the DISPLAY GTZ and SETGTZ operator commands. As mentioned in z/OS MVS System Commands profiles for the OPERCMDS class. , these GTZ commands can be protected by RACF resource The security administrator can for example take the following steps to give a user profile access to the MVS.SETGTZ.GTZ resource: 1. Ensure that the OPERCMDS class is active: SETROPTS CLASSACT(OPERCMDS) RACLIST(OPERCMDS) profile 2. Create the MVS.SETGTZ.GTZ resource and require explicit access to be given: RDEFINE OPERCMDS MVS.SETGTZ.GTZ UACC(NONE) 3. Grant individual access to the resource: PERMIT MVS.SETGTZ.GTZ CLASS(OPERCMDS) ID(user) ACCESS(UPDATE) 4. Refresh the OPERCMDS class to activate the changes: SETROPTS RACLIST(OPERCMDS) REFRESH All SETGTZ operator commands can be used in GTZPRMxx parmlib members. For example, you can put a TRACKING=ON statement into a GTZPRMxx parmlib member. System parameter GTZ can be set to one or more suffixes, which identify the GTZPRMxx parmlib members that the tracking facility must process at startup. See the description of system parameter GTZ in z/OS MVS Initialization and Tuning Reference . It contains requirements and details on how to grant the tracking facility permission to access the parmlib members at start-up. If you do not specify system parameter GTZ, or specify PARM='GTZPRM=*NONE' in procedure GTZ, the tracking facility will start without reading any parmlib members initially. You can add more GTZPRMxx parmlib members later with the operator command SET GTZ. You can use the SETGTZ CLEAR operator command to remove configuration data previously added via GTZPRMxx members and to remove previously recorded track data. To prevent certain known track events from recording any data, you can add EXCLUDE statements. The tracking facility will ignore any future track data that matches such EXCLUDE filters and it will remove any 322 z/OS: MVS Diagnosis: Tools and Service Aids

351 matching previously recorded track data. Typically EXCLUDE statements are provided in GTZPRMxx parmlib members and can be via the SETGTZ EXCLUDE operator command as well. specified A standard list of EXCLUDE statements for known track events is shipped in parmlib member GTZPRM00. You can download it from z/OS downloads (www.ibm.com/systems/z/os/zos/downloads) . It is recommended that you use the GTZPRMxx parmlib member as is and enable it by default by adding the suffix your_suffixes ). Keeping GTZPRM00 to the system parameter GTZ in IEASYSxx using GTZ=(00, 00 separate allows for easier updates when z/OS releases a new GTZPRM00 version. More GTZPRMxx parmlib members would then have any additional EXCLUDEs and for example a TRACKING=ON, if wanted. If you used the Console Tracking Facility and its CNIDTRxx parmlib members for exclusion lists before, you can use the GTZCNIDT utility program to create GTZPRMxx parmlib members from existing CNIDTRxx parmlib members. The sample JCL GTZCNIDJ explains how to start GTZCNIDT. identified by the following A unique tracked event is which are referenced by the EXCLUDE filters. fields, The tracking facility increments an associated occurrence count if a GTZTRACK call results in an identical fields: set of unique • The program name and program offset as resolved from the passed in event address. • The name of the owner and source of the track event. • The event description text. • The (binary) event data. • Job names and ASIDs associated with the track event. • The authorization state that is associated with the track event. For events that are difficult to track, where the program name cannot be determined by the system from the passed in event address, you can define DEBUG filters using the SETGTZ DEBUG operator command or in a GTZPRMxx parmlib member. The DEBUG statement allows for example to trigger a non-percolating ABEND, code E77, with custom reason codes, that you can SLIP traps for to collect dumps define You can use the DISPLAY GTZ operator command to display: • General status and statistics for the tracking facility – DISPLAY GTZ[,STATUS]. • All or a subset of the track data that is currently stored in the tracking facility – DISPLAY filters )]. GTZ,TRACKDATA[( • All the EXCLUDE statements – DISPLAY GTZ,EXCLUDE. • All the DEBUG statements – DISPLAY GTZ,DEBUG. Using the utility program GTZPRINT, you can collect information in a data set instead of reading it on the console or in the system LOG. The sample JCL GTZPRNTJ explains how to use GTZPRINT. Here are some typical scenarios • Use GTZPRINT to preserve tracking information for later analysis. This helps when you must submit the information to IBM, or an independent software vendor (ISV) product to have them analyze the output or diagnose problems. • Use DISPLAY GTZ for quick interactive access. Certain command line and output length limits might apply. • Use callable macro service GTZQUERY when you want to access tracking facility information from a program. For example, for a custom reporting tool or for a health check for the IBM Health Checker for z/OS. See the sample health check GTZSHCK shipped in SAMPLIB. This can be built with the sample JCL GTZSHCKJ. While local health checks run authorized, other uses of GTZQUERY require the calling user ID to have access to the GTZ. sysname .QUERY RACF profile that is used similar to how the GTZ operator commands are protected. The generic tracker facility 323

352 GTZLQRY REXX callable function REXX callable function GTZLQRY allows REXX programs access to data that is provided by the existing macro service GTZQUERY. The GTZLQRY function uses corresponding request types that are provided by REXX (input) variable GTZLQRY_REQUEST to support all four published request types of the GTZQUERY macro service: • GTZLQRY_REQUEST = "STATUS" • GTZLQRY_REQUEST = "TRACKDATA" • GTZLQRY_REQUEST = "EXCLUDE" • GTZLQRY_REQUEST = "DEBUG" The requested data is provided as REXX STEM output variables. filters that allow you to Like the GTZQUERY macro service, the TRACKDATA request supports additional limit the resulting data to only a subset of the potentially very many available track data entries. For TRACKDATA entries, EXCLUDE statements, and DEBUG statements, which are the three request types that return lists of items, GTZLQRY supports additional OPTION input parameters to further limit the result sets. GTZLQRY "STATUS" interface Accepts input using a single variable. The following required statement requests to return status information: GTZLQRY_REQUEST="STATUS" GTZLQRY with REQUEST="STATUS" returns output with STEM variable GTZQUAAS. Diagnostic information such as the return code is provided with separate variables. Table 48: REQUEST="STATUS" output variable names and descriptions Output variable name Variable description GtzQuaaS.TrackEnabled 1, if tracking is currently enabled, otherwise "0" GtzQuaaS.Full 1, if the tracking facility is full, otherwise "0" GtzQuaaS.ExcludeNoPrm 1, if some EXCLUDE statements did not originate from GTZPRMxx, otherwise "0" GtzQuaaS.DebugNoPrm 1, if some DEBUG statements did not originate from GTZPRMxx, otherwise "0" GtzQuaaS.GtzPrmFull 1, if some GTZPRMxx could not be recorded centrally, otherwise "0" GtzQuaaS.ClearedALL 1, if a CLEAR=ALL has been used at some time for this tracker instance, otherwise "0" GtzQuaaS.ClearedTRACKDATA 1, if a CLEAR=TRACKDATA or a CLEAR=ALL removed trackdata at some time for this tracker instance, otherwise "0" GtzQuaaS.ClearedEXCLUDE 1, if a CLEAR=EXCLUDE or a CLEAR=ALL removed EXCLUDE statements at some time for this tracker instance, otherwise "0" GtzQuaaS.ClearedDEBUG 1, if a CLEAR=DEBUG or a CLEAR=ALL removed DEBUG statements at some time for this tracker instance, otherwise "0" 324 z/OS: MVS Diagnosis: Tools and Service Aids

353 Table 48: REQUEST="STATUS" output variable names and descriptions (continued) Output variable name Variable description ON ('1'b), if data persistence via SMF records is GtzQuaaS.PersistSMF enabled. GtzQuaaS.EnabledCount Number of times the tracking facility moved from disabled to enabled. An unsigned number in the single-word (32-bit) range. GtzQuaaS.TrackDataEntriesAvailable Total number of unique tracked instances currently known to the tracking facility. An unsigned number in the double-word (64-bit) range. GtzQuaaS.ExcludeEntriesAvailable Total number of exclusion statements currently known to the tracking facility. An unsigned number in the double-word (64-bit) range. GtzQuaaS.DebugEntriesAvailable Total number of DEBUG statements currently known to the tracking facility. An unsigned number in the double-word (64-bit) range. GtzQuaaS.TrackDataEntriesEncountered Total number of non-unique tracked instances currently known to the tracking facility. An unsigned number in the double-word (64-bit) range. GtzQuaaS.ExcludeRejectCount Total number of GTZTRACK requests rejected due to a matching EXCLUDE statement. This counter is reset when the EXCLUDE statements are cleared. An unsigned number in the double-word (64-bit) range. GtzQuaaS.DebugActionCount Total number of GTZTRACK requests which triggered a DEBUG action as specified by a matching DEBUG statement (with its LIMIT not exceeded yet). This counter is reset when the DEBUG statements are cleared. An unsigned number in the double-word (64-bit) range. Number of GTZPRMxx members currently known GtzQuaaS.GtzPrmSuffixes.0 to the tracking facility. An unsigned number in the half-word (16-bit) range. GtzQuaaS.GtzPrmSuffixes The i=1..GtzQuaaS.GtzPrmSuffixes.0 GTZPRMxx 2- character currently known to the tracking suffixes facility. GtzQuaaS.GtzPrmIplSuffixes.0 Number of GTZPRMxx members specified at IPL time via system parameter GTZ. The currently known GTZPRMxx suffix list might be different than this IPL-time list, if have been added or suffixes cleared in between. An unsigned number in the half-word (16-bit) range. GtzQuaaS.GtzPrmIplSuffixes The i=1..GtzQuaaS.GtzPrmIplSuffixes.0 GTZPRMxx 2-character suffixes specified at IPL time. The generic tracker facility 325

354 Table 48: REQUEST="STATUS" output variable names and descriptions (continued) Output variable name Variable description A number between 0 and 100, indicating the GtzQuaaS.MemAvailPercent percentage of how much of the tracking facility's total dynamic memory is still available to store data for tracking entries, EXCLUDE statements, etc. When GtzQuaaS.Full is "1" then GtzQuaaS.MemAvailPercent will be zero. GtzQuaaS.SystemName The name of the system the (unique per system) tracking facility is running on. An up to 8 character long string. The timestamp when tracking was last enabled (if GtzQuaaS.EnabledTOD GtzQuaaS.TrackEnabled="1"), or when tracking was last disabled (if GtzQuaaSTrackEnabled = "0"), where for the latter this might be the time of when the facility started, if tracking has not been enabled since. See also GtzQuaaS.EnabledCount. This value is provided in STCK format. See for example BLSUXTOD to format this as human readable timestamp. GTZLQRY_RC Return code. Same as the REXX supplied output variable RESULT which REXX sets if the function result is not explicitly captured via for example RC = GTZLQRY(). This is a decimal text string so that for example RC=12 is reported as "12", not "0C". The possible return codes are as follows: 0 Meaning: The GTZLQRY request completed successfully. 4 The GTZLQRY request completed Meaning: successfully, but issued a warning. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 8 Meaning: The GTZLQRY request encountered an error and did not complete successfully. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 12 (X'C') Meaning: The GTZLQRY request encountered a severe error, typically related to the environment in which GTZLQRY was invoked, and did not complete successfully. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 16 (X'10') Meaning: The GTZLQRY request encountered an internal, component error and did not complete successfully. Action: Contact IBM Service. 326 z/OS: MVS Diagnosis: Tools and Service Aids

355 Table 48: REQUEST="STATUS" output variable names and descriptions (continued) Output variable name Variable description (See the description following this table.) GTZLQRY_RSN GTZLQRY_SYSTEMDIAG Additional diagnostic information for some non- zero return codes. An up to 100-character string. Description for output variable GTZLQRY_RSN: Reason code. For non-zero return codes. This is a hexadecimal text string so that for example RSN=X'00000841' is reported as "00000841", not "2113". The reason codes are as follows: "rrrr0401" Meaning: The underlying GTZQUERY service reported a return code of 4 and reason code "rrrr". Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. Action: "rrrr0801" Meaning: The underlying GTZQUERY service reported a return code of 8 and reason code "rrrr". Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. Action: "rrLL0802" Meaning: An unrecognized GTZLQRY_REQUEST value has been found. Action: Ensure you only specify valid GTZLQRY request types ("STATUS", "TRACKDATA", "EXCLUDE", or "DEBUG"). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_REQUEST input variable. "LLLL0803" Meaning: An unrecognized GTZLQRY_REQUEST value has been found. Ensure you only specify valid GTZLQRY request types ("STATUS", "TRACKDATA", "EXCLUDE", or Action: "DEBUG"). If "LLLL" is not zero then it is the last two bytes of the length as reported by service IRXEXCOM used to retrieve the GTZLQRY_REQUEST input variable. "rrrr0C01" Meaning: The underlying GTZQUERY service reported a return code of 12 (X'C') and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "xxxx0C02" Meaning: GTZLQRY was invoked with a NUL REXX ENVBLOCK address in register 0 on entry. Action: Only invoke GTZLQRY from within a REXX program/environment, ensuring standard REXX calling conventions. "xxxx0C03" Meaning: GTZLQRY was invoked with an unrecognized ENVBLOCK, pointed to by register 0 on entry. Action: Only invoke GTZLQRY from within a REXX program/environment, ensuring standard REXX calling conventions. In addition, GTZLQRY can issue an ABEND with system completion code E77 with the following possible ABEND reason codes: The generic tracker facility 327

356 Table 49: REQUEST="STATUS" ABEND reason codes and descriptions ABEND reason code Reason code description X'rrrr0C27' Meaning: GTZLQRY could not write any output REXX variables. Ensure that GTZLQRY is called within a Action: valid REXX environment,which includes GTZLQRY being called with a valid ENVBLOCK in register 0 on entry. A non-zero "rrrr" value provides additional diagnostic information. Check the GTZLQRY_RSN variable description for possibly related values. X'xxxx0C29' An error occurred while accessing the Meaning: internal GTZLQRY parameter list. Action: Ensure that GTZLQRY is called within a valid REXX environment,ensuring standard REXX linkage conventions. X'xxxx10xx' Meaning: An unexpected error occurred. Action: Contact IBM Service. GTZLQRY "TRACKDATA" interface Accepts input using multiple variables. See also the description of corresponding parameters on the GTZQUERY macro service for more details on single parameters. The following required statement requests to return trackdata entries: GTZLQRY_REQUEST="TRACKDATA" The following optional statement requests to return only up to maxresults number of trackdata entries values: GTZLQRY_OPTION.MAXRESULTS = { "ALL" | "maxresults" } Enter special value "ALL" or an unsigned number in the double-word (64-bit) range. filter variables, all starting with GTZLQRY_FILTER. Note that all Optionally enter one or more values, filter except for SOURCETYPE and PROGRAMTYPE, also accept values including wild card characters. For text values, an asterisk ('*') will match zero or more characters of any type, and a question mark ('?') will match a single character of any type. For numeric or binary values, such as EVENTDATA or EVENTASID, only a single asterisk ('*') is supported, as a way to explicitly specify the otherwise implied default value of "match all or match any value". The following optional statement requests to return only such tracked instances that have a matching OWNER value. GTZLQRY_FILTER.OWNER = "owner" The value is a 1-16 character string. The following optional statement identifies what type of tracked instance source values to match. GTZLQRY_FILTER.SOURCETYPE = { "ALL" | "NOPATH" | "PATH" } The following optional statement requests to return only those tracked instances that have a matching SOURCE value. GTZLQRY_FILTER.SOURCE = "source" 328 z/OS: MVS Diagnosis: Tools and Service Aids

357 The value is a 1-8 character string that also requires the specification of GTZLQRY_FILTER.SOURCETYPE = "NOPATH". The following optional statement requests to return only that tracked instances that have a matching SOURCEPATH value. GTZLQRY_FILTER.SOURCEPATH = "sourcepath" specification of The value is a 1-1024 character string that also requires the GTZLQRY_FILTER.SOURCETYPE = "PATH". The following optional statement requests to return only those tracked instances that have a matching EVENTDESC value. GTZLQRY_FILTER.EVENTDESC = "eventdesc" The value is a 0-64 character string. The following optional statement requests to return only those tracked instances that have a matching EVENTDATA value. GTZLQRY_FILTER.EVENTDATA = {"eventdata" | "*"} The value, if not "*", is a 16 byte string with a binary representation that is used for comparisons. The following optional statement requests to return only those tracked instances that have a matching EVENTASID value. GTZLQRY_FILTER.EVENTASID = {"eventASID" | "*"} The value is a number between 0 and 65535 ('FFFF'X) Tip: REXX function X2D can help specify the number in hex format in the REXX source. The following optional statement requests to return only those tracked instances that were associated with a matching job name of the address space identified by the EVENTASID value. GTZLQRY_FILTER.EVENTJOB = "eventjob" The value is a 1-8 character string. identifies the type of tracked instance program values to match. The following optional statement GTZLQRY_FILTER.PROGRAMTYPE = { "ALL" | "NOPATH" | "PATH" } The following optional statement requests to return only those tracked instances that have a matching PROGRAM value. GTZLQRY_FILTER.PROGRAM = "program" The value is a 1-8 character string that also requires the specification of GTZLQRY_FILTER.PROGRAMTYPE = "NOPATH". The following optional statement requests to return only those tracked instances that have a matching PROGRAMPATH values. GTZLQRY_FILTER.PROGRAMPATH = "programpath" The value is a 1-1024 character string that also requires the specification of GTZLQRY_FILTER.PROGRAMTYPE = "PATH". The following optional statement requests to return only those tracked instances that have a matching PROGRAMOFFSET value. GTZLQRY_FILTER.PROGRAMOFFSET = { "programoffset" | "*"} The generic tracker facility 329

358 The value is an unsigned number in the double-word (64-bit) range. Tip: REXX function X2D can help specify the number in hex format in the REXX source. The following optional statement requests to return only those tracked instances that have a matching HOMEASID value. GTZLQRY_FILTER.HOMEASID = { "homeASID" | "*"} The value is a number between 0 and 65535 ('FFFF'X). REXX function X2D can help specify the number in hex format in the REXX source. Tip: The following optional statement requests to return only those tracked instances that have a matching HOMEJOB value. GTZLQRY_FILTER.HOMEJOB = "homejob" The value is a 1-8 character string. Specifying GTZLQRY with REQUEST="TRACKDATA" returns its output with the variables described in the following table. Table 50: REQUEST="TRACKDATA" output variable names and descriptions Variable description Output variable name GTZQUAAT.TrackDataEntriesAvailable Number of TRACKDATA entries which are known to the tracking facility and which match the (optional) filter. GTZQUAAT.TrackDataEntriesProvided Number (n) of TRACKDATA entries provided, if n > 0, via variables GTZQUAAT. . with i=1..n. This i number n is determined as MIN(GTZQUAAT.TrackDataEntriesAvailable, GTZLQRY_OPTION.MAXRESULTS). i .isSourcePath 1, if GtzQuaaT. i GtzQuaaT. .Source represents a SOURCE, otherwise "0", to indicate a SOURCEPATH GtzQuaaT. i .isProgramPath 1, if GtzQuaaT.Program represents a PROGRAM, otherwise "0", to indicate a PROGRAMPATH GtzQuaaT. i .isAuthorized 1, if the tracked event ran authorized, otherwise "0" GtzQuaaT. .FirstTOD The timestamp when the first instance of this i (unique) tracked instance was recorded (all others just had the occurrence count Incremented). This value is provided in STCK format. See for example BLSUXTOD to format this as human readable timestamp. GtzQuaaT. i .Count How often this (unique) tracked instance was recorded. GtzQuaaT. i .Owner OWNER value, an up to 16-character string GtzQuaaT. .Source SOURCE or SOURCEPATH value, depending on i GtzQuaaT. i .isSourcePath, an up to 8-character resp. 1024-character string GtzQuaaT. i .EventDesc EVENTDESC value, an up to 64-character string GtzQuaaT. i .EventData EVENTDATA value, a 16-byte binary string 330 z/OS: MVS Diagnosis: Tools and Service Aids

359 Table 50: REQUEST="TRACKDATA" output variable names and descriptions (continued) Output variable name Variable description i .EventJob GtzQuaaT. The derived EVENTJOB-name value, an up to 8- character string i The derived HOMEJOB-name value,an up to 8- GtzQuaaT. .HomeJob character string .Program GtzQuaaT. i The derived PROGRAM or PROGRAMPATH value, i .isProgramPath, an up to depending on GtzQuaaT. 8-character resp. 1024-character string i GtzQuaaT. The derived PROGRAMOFFSET value, a decimal .ProgramOffset unsigned number in the double-word (64-bit) range GtzQuaaT. .EventASID EVENTASID value, a decimal number in the range 0 i through 65535 (X'FFFF') i GtzQuaaT. HOMEASID value, a decimal number in the range 0 .HomeASID through 65535 (X'FFFF') GTZLQRY_RC Return code. Same as the REXX supplied output variable RESULT which REXX sets if the function result is not explicitly captured via for example RC = GTZLQRY(). This is a decimal text string so that for example RC=12 is reported as "12", not "0C". The possible return codes are as follows: 0 Meaning: The GTZLQRY request completed successfully. 4 Meaning: The GTZLQRY request completed successfully, but issued a warning. Refer to the action under the individual Action: reason code returned in GTZLQRY_RSN. 8 Meaning: The GTZLQRY request encountered an error and did not complete successfully. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 12 (X'C') Meaning: The GTZLQRY request encountered a severe error, typically related to the environment in which GTZLQRY was invoked, and did not complete successfully. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 16 (X'10') Meaning: The GTZLQRY request encountered an internal, component error and did not complete successfully. Action: Contact IBM Service. GTZLQRY_RSN (See the description following this table.) The generic tracker facility 331

360 Table 50: REQUEST="TRACKDATA" output variable names and descriptions (continued) Output variable name Variable description Additional diagnostic information for some non- GTZLQRY_SYSTEMDIAG zero return codes. An up to 100-character string. Description for output variable GTZLQRY_RSN: Reason code. For non-zero return codes. This is a hexadecimal text string so that for example RSN=X'00000841' is reported as "00000841", not "2113". The reason codes are as follows: "rrrr0401" Meaning: The underlying GTZQUERY service reported a return code of 4 and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "rrrr0801" Meaning: The underlying GTZQUERY service reported a return code of 8 and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "rrLL0802" Meaning: An unrecognized GTZLQRY_REQUEST value has been found. Action: Ensure you only specify valid GTZLQRY request types ("STATUS", "TRACKDATA", "EXCLUDE", or "DEBUG"). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_REQUEST input variable. "LLLL0803" An unrecognized GTZLQRY_REQUEST value has been found. Meaning: Action: Ensure you only specify valid GTZLQRY request types ("STATUS", "TRACKDATA", "EXCLUDE", or "DEBUG"). If "LLLL" is not zero then it is the last two bytes of the length as reported by service IRXEXCOM used to retrieve the GTZLQRY_REQUEST input variable. "rrLL0804" An unrecognized GTZLQRY_OPTION.MAXRESULTS value has been found. Meaning: Action: Ensure you only specify valid GTZLQRY_OPTION.MAXRESULTS values ("ALL"or a valid number). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_OPTION.MAXRESULTS input variable. "xxxx0805" Meaning: No SOURCETYPE or an invalid SOURCETYPE has been specified via input variable GTZLQRY_FILTER.SOURCETYPE. Action: specified on input, ensure that you also specify a When GTZLQRY_FILTER.SOURCE is matching GTZLQRY_FILTER.SOURCETYPE of "NOPATH". "xxxx0806" No PROGRAMTYPE or an invalid PROGRAMTYPE has been specified via input variable Meaning: GTZLQRY_FILTER.PROGRAMTYPE. When GTZLQRY_FILTER.PROGRAM is specified on input, ensure that you also specify a Action: matching GTZLQRY_FILTER.PROGRAMTYPE of "NOPATH". "xxxx0807" Meaning: No SOURCETYPE or an invalid SOURCETYPE has been specified via input variable GTZLQRY_FILTER.SOURCETYPE. When GTZLQRY_FILTER.SOURCEPATH is specified on input, ensure that you also specify a Action: matching GTZLQRY_FILTER.SOURCETYPE of "PATH". "xxxx0808" Meaning: No PROGRAMTYPE or an invalid PROGRAMTYPE has been specified via input variable GTZLQRY_FILTER.PROGRAMTYPE. Action: When GTZLQRY_FILTER.PROGRAMPATH is specified on input, ensure that you also specify a matching GTZLQRY_FILTER.PROGRAMTYPE of "PATH". 332 z/OS: MVS Diagnosis: Tools and Service Aids

361 "rrLL0809" Meaning: An unrecognized GTZLQRY_FILTER.SOURCETYPE value has been found. Ensure you only specify valid GTZLQRY_FILTER.SOURCETYPE values ("ALL", "PATH", or Action: "NOPATH"). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.SOURCETYPE input variable. "rrLL080A" An unrecognized GTZLQRY_FILTER.PROGRAMTYPE value has been found. Meaning: Action: Ensure you only specify valid GTZLQRY_FILTER.PROGRAMTYPE values ("ALL", "PATH", or "NOPATH"). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.PROGRAMTYPE input variable. "rrLL080B" When attempting to retrieve the GTZLQRY_FILTER.SOURCE input value an error was Meaning: encountered. Action: Ensure you only specify valid GTZLQRY_FILTER.SOURCE values (up to eight characters long). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.SOURCE input variable. "rrLL080C" Meaning: When attempting to retrieve the GTZLQRY_FILTER.PROGRAM input value an error was encountered. Action: Ensure you only specify valid GTZLQRY_FILTER.PROGRAM values (up to eight characters long). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.PROGRAM input variable. "rrLL080D" Meaning: When attempting to retrieve the GTZLQRY_FILTER.SOURCEPATH input value an error was encountered. Action: Ensure you only specify valid GTZLQRY_FILTER.SOURCEPATH values (up to 1024 characters long). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.SOURCEPATH input variable. "rrLL080E" Meaning: When attempting to retrieve the GTZLQRY_FILTER.PROGRAMPATH input value an error was encountered. Ensure you only specify valid GTZLQRY_FILTER.PROGRAMPATH values (up to 1024 characters Action: long). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.PROGRAMPATH input variable. "rrLL080F" Meaning: When attempting to retrieve the GTZLQRY_FILTER.EVENTDESC input value an error was encountered. Ensure you only specify valid GTZLQRY_FILTER.EVENTDESC values (up to 64 characters long). Action: If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.EVENTDESC input variable. "rrLL0810" Meaning: When attempting to retrieve the GTZLQRY_FILTER.EVENTDATA input value an error was encountered. Action: Ensure you only specify valid GTZLQRY_FILTER.EVENTDATA values (16 bytes long, or '*'). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.EVENTDATA input variable. The generic tracker facility 333

362 "rrLL0811" Meaning: When attempting to retrieve the GTZLQRY_FILTER.EVENTJOB input value an error was encountered. Action: Ensure you only specify valid GTZLQRY_FILTER.EVENTJOB values (up to eight characters long). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.EVENTJOB input variable. "rrLL0812" Meaning: When attempting to retrieve the GTZLQRY_FILTER.HOMEJOB input value an error was encountered. Action: Ensure you only specify valid GTZLQRY_FILTER.HOMEJOB values (up to eight characters long). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.HOMEJOB input variable. "rrLL0813" Meaning: When attempting to retrieve the GTZLQRY_FILTER.OWNER input value an error was encountered. Action: Ensure you only specify valid GTZLQRY_FILTER.OWNER values (up to 16 characters long). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.OWNER input variable. "rrLL0814" An unrecognized GTZLQRY_FILTER.PROGRAMOFFSET value has been found. Meaning: Ensure you only specify valid GTZLQRY_FILTER.PROGRAMOFFSET values (double-word Action: number). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.PROGRAMOFFSET input variable. "rrLL0815" Meaning: An unrecognized GTZLQRY_FILTER.EVENTASID value has been found. Action: Ensure you only specify valid GTZLQRY_FILTER.EVENTASID values (half-word number). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.EVENTASID input variable. "rrLL0816" Meaning: An unrecognized GTZLQRY_FILTER.HOMEASID value has been found. Ensure you only specify valid GTZLQRY_FILTER.HOMEASID values (half-word number). If Action: "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_FILTER.HOMEASID input variable. "rrrr0C01" Meaning: The underlying GTZQUERY service reported a return code of 12 (X'C') and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "xxxx0C02" GTZLQRY was invoked with a NUL REXX ENVBLOCK address in register 0 on entry. Meaning: Action: Only invoke GTZLQRY from within a REXX program/environment, ensuring standard REXX calling conventions. "xxxx0C03" Meaning: GTZLQRY was invoked with an unrecognized ENVBLOCK, pointed to by register 0 on entry. Action: Only invoke GTZLQRY from within a REXX program/environment, ensuring standard REXX calling conventions. In addition, GTZLQRY can issue an ABEND with system completion code E77 with the following possible ABEND reason codes: 334 z/OS: MVS Diagnosis: Tools and Service Aids

363 Table 51: REQUEST="TRACKDATA" ABEND reason codes and descriptions ABEND reason code Reason code description X'rrrr0C27' Meaning: GTZLQRY could not write any output REXX variables. Ensure that GTZLQRY is called within a Action: valid REXX environment,which includes GTZLQRY being called with a valid ENVBLOCK in register 0 on entry. A non-zero "rrrr" value provides additional diagnostic information. Check the GTZLQRY_RSN variable description for possibly related values. X'xxxx0C29' An error occurred while accessing the Meaning: internal GTZLQRY parameter list. Action: Ensure that GTZLQRY is called within a valid REXX environment,ensuring standard REXX linkage conventions. X'xxxx10xx' Meaning: An unexpected error occurred. Action: Contact IBM Service. GTZLQRY "EXCLUDE" interface Accepts input using multiple variables. See also the description of corresponding parameters on the GTZQUERY macro service for more details on single parameters. The following required statement requests to return EXCLUDE statements: GTZLQRY_REQUEST="EXCLUDE" The following optional statement requests to return only up to maxresults number of EXCLUDE statements: GTZLQRY_OPTION.MAXRESULTS = { "ALL" | "maxresults" } Enter special value "ALL" or an unsigned number in the double-word (64-bit) range. Note: This is provided mainly for consistency among the list requests such as REQUEST="TRACKDATA". Unlike REQUEST="TRACKDATA", which potentially can return tens of thousands or more entries, configuration. REQUEST="EXCLUDE" is expected to return at most a few dozen entries in a typical Specifying GTZLQRY with REQUEST="EXCLUDE" returns its output with the variables described in the following table. Table 52: REQUEST="EXCLUDE" output variable names and descriptions Output variable name Variable description GTZQUAAE.ExcludeEntriesAvailable Number of EXCLUDE statements known to the tracking facility. GTZQUAAE.ExcludeEntriesProvided Number (n) of EXCLUDE statements provided, if n > 0, via variables GTZQUAAE. i . with i=1..n. This number n is determined as MIN(GTZQUAAE.ExcludeEntriesAvailable, GTZLQRY_OPTION.MAXRESULTS). The generic tracker facility 335

364 Table 52: REQUEST="EXCLUDE" output variable names and descriptions (continued) Output variable name Variable description i .OriginType GtzQuaaE. Indicates where this EXCLUDE originated from: PARMLIB - A GTZPRMxx parmlib member, COMMAND - A SETGTZ EXCLUDE command, PROGRAM - A program interface i .OriginSuffix If this EXCLUDE was specified via a GTZPRMxx GtzQuaaE. parmlib member, as indicated by a .OriginType value of "PARMLIB", this GtzQuaaE. i suffix. here contains the 2-character xx field .Filter. A set of variables indicating what TRACKDATA GtzQuaaE. i entries this EXCLUDE statement is supposed to out. For all but GtzQuaaE. i .Filter.SourceType filter i .Filter.ProgramType this might be a and GtzQuaaE. single wildcard character "*", when not filtering for specific value, indicating that all values for the a will match this respective filter. field .Filter.SourceType GtzQuaaE. filter is defined i Indicates what type of source this to match: SOURCE, "SOURCEPATH", or "ALL" i GtzQuaaE. Indicates what type of program this filter is defined .Filter.ProgramType to match: PROGRAM, "PROGRAMPATH", or "ALL" i .Filter.Owner OWNER filter value. An up to 16-character string. GtzQuaaE. GtzQuaaE. i .Filter.Source SOURCE or SOURCEPATH filter value, depending on the value of GtzQuaaE. i .Filter.SourceType: For filter, SourceType="SOURCE" it is a source for SourceType="SOURCEPATH" it is a source path filter, and for SourceType="ALL" it will always be "*" (match all). An up to 8-character resp. 1024- character string i .Filter.EventDesc Event description filter value. An up to 64- GtzQuaaE. character string. GtzQuaaE. .Filter.EventData Event data filter value. A 16-byte binary string or i "*". i .Filter.EventJob Event job filter value. An up to 8-character string. GtzQuaaE. GtzQuaaE. i .Filter.HomeJob Home job filter value. An up to 8-character string. GtzQuaaE. i PROGRAM or PROGRAMPATH filter value, .Filter.Program depending on the value of GtzQuaaE. .Filter.ProgramType: For i filter, ProgramType="PROGRAM" it is a source for ProgramType="PROGRAMPATH" it is a program path filter, and for ProgramType="ALL" it will always be "*" (match all). An up to 8-character resp. 1024-character string i .Filter.ProgramOffset PROGRAMOFFSET filter value. A decimal unsigned GtzQuaaE. number in the double-word (64-bit) range GtzQuaaE. i .Filter.EventASID Event ASID filter value. A decimal number in the range 0 through 65535 (X'FFFF') 336 z/OS: MVS Diagnosis: Tools and Service Aids

365 Table 52: REQUEST="EXCLUDE" output variable names and descriptions (continued) Output variable name Variable description i .Filter.HomeASID filter value. A decimal number in the GtzQuaaE. Home ASID range 0 through 65535 (X'FFFF') Return code. Same as the REXX supplied output GTZLQRY_RC variable RESULT which REXX sets if the function result is not explicitly captured via for example RC = GTZLQRY(). This is a decimal text string so that for example RC=12 is reported as "12", not "0C". The possible return codes are as follows: 0 The GTZLQRY request completed Meaning: successfully. 4 The GTZLQRY request completed Meaning: successfully, but issued a warning. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 8 The GTZLQRY request encountered Meaning: an error and did not complete successfully. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 12 (X'C') Meaning: The GTZLQRY request encountered a severe error, typically related to the environment in which GTZLQRY was invoked, and did not complete successfully. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 16 (X'10') Meaning: The GTZLQRY request encountered an internal, component error and did not complete successfully. Action: Contact IBM Service. GTZLQRY_RSN (See the description following this table.) GTZLQRY_SYSTEMDIAG Additional diagnostic information for some non- zero return codes. An up to 100-character string. Description for output variable GTZLQRY_RSN: Reason code. For non-zero return codes. This is a hexadecimal text string so that for example RSN=X'00000841' is reported as "00000841", not "2113". The reason codes are as follows: "rrrr0401" Meaning: The underlying GTZQUERY service reported a return code of 4 and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "rrrr0801" Meaning: The underlying GTZQUERY service reported a return code of 8 and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. The generic tracker facility 337

366 "rrLL0802" Meaning: An unrecognized GTZLQRY_REQUEST value has been found. Ensure you only specify valid GTZLQRY request types ("STATUS", "TRACKDATA", "EXCLUDE", or Action: "DEBUG"). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_REQUEST input variable. "LLLL0803" Meaning: An unrecognized GTZLQRY_REQUEST value has been found. Action: Ensure you only specify valid GTZLQRY request types ("STATUS", "TRACKDATA", "EXCLUDE", or "DEBUG"). If "LLLL" is not zero then it is the last two bytes of the length as reported by service IRXEXCOM used to retrieve the GTZLQRY_REQUEST input variable. "LLLL0804" Meaning: An unrecognized GTZLQRY_OPTION.MAXRESULTS value has been found. Ensure you only specify valid GTZLQRY_OPTION.MAXRESULTS values ("ALL" or a valid Action: number). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_OPTION.MAXRESULTS input variable. "rrrr0C01" The underlying GTZQUERY service reported a return code of 12 (X'C') and reason code Meaning: "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "xxxx0C02" GTZLQRY was invoked with a NUL REXX ENVBLOCK address in register 0 on entry. Meaning: Action: Only invoke GTZLQRY from within a REXX program/environment, ensuring standard REXX calling conventions. "xxxx0C03" Meaning: GTZLQRY was invoked with an unrecognized ENVBLOCK, pointed to by register 0 on entry. Action: Only invoke GTZLQRY from within a REXX program/environment, ensuring standard REXX calling conventions. In addition GTZLQRY can issue an ABEND with system completion code of E77 with the following possible ABEND reason codes: Table 53: REQUEST="EXCLUDE" ABEND reason codes and descriptions ABEND reason code Reason code description X'rrrr0C27' Meaning: GTZLQRY could not write any output REXX variables. Action: Ensure that GTZLQRY is called within a valid REXX environment,which includes GTZLQRY being called with a valid ENVBLOCK in register 0 on entry. A non-zero "rrrr" value provides additional diagnostic information. Check the GTZLQRY_RSN variable description for possibly related values. X'xxxx0C29' Meaning: An error occurred while accessing the internal GTZLQRY parameter list. Action: Ensure that GTZLQRY is called within a valid REXX environment,ensuring standard REXX linkage conventions. X'xxxx10xx' Meaning: An unexpected error occurred. Action: Contact IBM Service. 338 z/OS: MVS Diagnosis: Tools and Service Aids

367 GTZLQRY "DEBUG" interface Accepts input using multiple variables. See also the description of corresponding parameters on the GTZQUERY macro service for more details on single parameters. The following required statement requests to return DEBUG statements: GTZLQRY_REQUEST="DEBUG" The following optional statement requests to return only up to maxresults number of DEBUG statements: GTZLQRY_OPTION.MAXRESULTS = { "ALL" | "maxresults" } Enter special value "ALL" or an unsigned number in the double-word (64-bit) range. This is provided mainly for consistency among the list requests such as REQUEST="TRACKDATA". Note: Unlike REQUEST="TRACKDATA", which potentially can return tens of thousands or more entries, REQUEST="DEBUG" is expected to return at most a few dozen entries in a typical configuration. Specifying GTZLQRY with REQUEST="DEBUG" returns its output with the variables described in the following table. Table 54: REQUEST="DEBUG" output variable names and descriptions Output variable name Variable description Number of DEBUG statements known to the GTZQUAAD.DebugEntriesAvailable tracking facility. GTZQUAAD.DebugEntriesProvided Number (n) of DEBUG statements provided, if n > i 0, via variables GTZQUAAD. . with i=1..n. This number n is determined as MIN(GTZQUAAD.DebugEntriesAvailable, GTZLQRY_OPTION.MAXRESULTS). GTZQUAAD. .OriginType Indicates where this DEBUG originated from: i PARMLIB - A GTZPRMxx parmlib member, COMMAND - A SETGTZ DEBUG command, PROGRAM - A program interface GTZQUAAD. i .OriginSuffix If this DEBUG was specified via a GTZPRMxx parmlib member, as indicated by a GtzQuaaD. .OriginType value of "PARMLIB", this i here contains the 2-character xx field suffix. i .Reason The DEBUG REASON code. A decimal number in GtzQuaaD. the range 0 through 65535 (X'FFFF') GtzQuaaD. i .Action The ACTION requested when this DEBUG is matched: "ABEND" or "DUMP". GtzQuaaD. i .ActionLimit How often the system is allowed to trigger the action for this DEBUG statement (when matched by a new tracked instance candidate). A value of "NOLIMIT" means "no limit", otherwise a decimal number in the range 1 through 65535. GtzQuaaD. i .ActionCount How often this DEBUG statement triggered an action so far. A decimal number in the range 0 through 65535 which counts towards the ActionLimit, unless "NOLIMIT". The generic tracker facility 339

368 Table 54: REQUEST="DEBUG" output variable names and descriptions (continued) Output variable name Variable description i .Filter. GtzQuaaD. A set of variables indicating what TRACKDATA entries this DEBUG statement is supposed to i trigger for. For all but GtzQuaaD. .Filter.SourceType and GtzQuaaD. i .Filter.ProgramType this might be a single wildcard character "*", when not filtering for value, indicating that all values for the a specific will match this filter. field respective GtzQuaaD. i .Filter.Owner OWNER filter value. An up to 16-character string. i .Filter.Source SOURCE or SOURCEPATH filter value, depending on GtzQuaaD. i the value of GtzQuaaD. .Filter.SourceType: For filter, SourceType="SOURCE" it is a source for SourceType="SOURCEPATH" it is a source path filter, and for SourceType="ALL" it will always be "*" (match all). An up to 8-character resp. 1024- character string i .Filter.EventDesc Event description filter value. An up to 64- GtzQuaaD. character string. GtzQuaaD. .Filter.EventData Event data filter value. A 16-byte binary string or i "*". i .Filter.EventJob Event job filter value. An up to 8-character string. GtzQuaaD. GtzQuaaD. i .Filter.HomeJob Home job filter value. An up to 8-character string. GtzQuaaD. i PROGRAM or PROGRAMPATH filter value, .Filter.Program depending on the value of GtzQuaaD. i .Filter.ProgramType: For for filter, ProgramType="PROGRAM" it is a source ProgramType="PROGRAMPATH" it is a program path filter, and for ProgramType="ALL" it will always be "*" (match all). An up to 8-character resp. 1024-character string GtzQuaaD. .Filter.ProgramOffset PROGRAMOFFSET filter value. A decimal unsigned i number in the double-word (64-bit) range i .Filter.EventASID Event ASID filter value. A decimal number in the GtzQuaaD. range 0 through 65535 (X'FFFF') GtzQuaaD. i Home ASID filter value. A decimal number in the .Filter.HomeASID range 0 through 65535 (X'FFFF') i .Filter.Owner OWNER filter value. An up to 16-character string. GtzQuaaD. GtzQuaaD. i .Filter.Source SOURCE or SOURCEPATH filter value, depending on the value of GtzQuaaD. .Filter.SourceType: For i SourceType="SOURCE" it is a source filter, for SourceType="SOURCEPATH" it is a source path filter, and for SourceType="ALL" it will always be "*" (match all). An up to 8-character resp. 1024- character string 340 z/OS: MVS Diagnosis: Tools and Service Aids

369 Table 54: REQUEST="DEBUG" output variable names and descriptions (continued) Output variable name Variable description Return code. Same as the REXX supplied output GTZLQRY_RC variable RESULT which REXX sets if the function result is not explicitly captured via for example RC = GTZLQRY(). This is a decimal text string so that for example RC=12 is reported as "12", not "0C". The possible return codes are as follows: 0 Meaning: The GTZLQRY request completed successfully. 4 Meaning: The GTZLQRY request completed successfully, but issued a warning. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 8 The GTZLQRY request encountered Meaning: an error and did not complete successfully. Refer to the action under the individual Action: reason code returned in GTZLQRY_RSN. 12 (X'C') Meaning: The GTZLQRY request encountered a severe error, typically related to the environment in which GTZLQRY was invoked, and did not complete successfully. Action: Refer to the action under the individual reason code returned in GTZLQRY_RSN. 16 (X'10') The GTZLQRY request encountered Meaning: an internal, component error and did not complete successfully. Contact IBM Service. Action: GTZLQRY_RSN (See the description following this table.) GTZLQRY_SYSTEMDIAG Additional diagnostic information for some non- zero return codes. An up to 100-character string. Description for output variable GTZLQRY_RSN: Reason code. For non-zero return codes. This is a hexadecimal text string so that for example RSN=X'00000841' is reported as "00000841", not "2113". The reason codes are as follows: "rrrr0401" Meaning: The underlying GTZQUERY service reported a return code of 4 and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "rrrr0801" Meaning: The underlying GTZQUERY service reported a return code of 8 and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "rrLL0802" Meaning: An unrecognized GTZLQRY_REQUEST value has been found. The generic tracker facility 341

370 Action: Ensure you only specify valid GTZLQRY request types ("STATUS", "TRACKDATA", "EXCLUDE", or "DEBUG"). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_REQUEST input variable. "LLLL0803" Meaning: An unrecognized GTZLQRY_REQUEST value has been found. Action: Ensure you only specify valid GTZLQRY request types ("STATUS", "TRACKDATA", "EXCLUDE", or "DEBUG"). If "LLLL" is not zero then it is the last two bytes of the length as reported by service IRXEXCOM used to retrieve the GTZLQRY_REQUEST input variable. "LLLL0804" Meaning: An unrecognized GTZLQRY_OPTION.MAXRESULTS value has been found. Ensure you only specify valid GTZLQRY_OPTION.MAXRESULTS values ("ALL" or a valid Action: number). If "rrLL" is not zero then "rr" is the return code and "LL" is the last byte of the length of the variable as reported by service IRXEXCOM used to retrieve the GTZLQRY_OPTION.MAXRESULTS input variable. "rrrr0C01" Meaning: The underlying GTZQUERY service reported a return code of 12 (X'C') and reason code "rrrr". Action: Refer to the action under reason code "rrrr" in the documentation for service GTZQUERY. "xxxx0C02" GTZLQRY was invoked with a NUL REXX ENVBLOCK address in register 0 on entry. Meaning: Action: Only invoke GTZLQRY from within a REXX program/environment, ensuring standard REXX calling conventions. "xxxx0C03" Meaning: GTZLQRY was invoked with an unrecognized ENVBLOCK, pointed to by register 0 on entry. Action: Only invoke GTZLQRY from within a REXX program/environment, ensuring standard REXX calling conventions. In addition GTZLQRY can issue an ABEND with system completion code of E77 with the following possible ABEND reason codes: Table 55: REQUEST="DEBUG" ABEND reason codes and descriptions Reason code description ABEND reason code X'rrrr0C27' Meaning: GTZLQRY could not write any output REXX variables. Ensure that GTZLQRY is called within a Action: valid REXX environment,which includes GTZLQRY being called with a valid ENVBLOCK in register 0 on entry. A non-zero "rrrr" value provides additional diagnostic information. Check the GTZLQRY_RSN variable description for possibly related values. X'xxxx0C29' An error occurred while accessing the Meaning: internal GTZLQRY parameter list. Action: Ensure that GTZLQRY is called within a valid REXX environment,ensuring standard REXX linkage conventions. X'xxxx10xx' Meaning: An unexpected error occurred. Action: Contact IBM Service. 342 z/OS: MVS Diagnosis: Tools and Service Aids

371 Data persistence and simplified generic tracking services Use generic tracker service GTZTRACK to provide persisted records of tracked events in SMF type 125 records. With this function, you can retrieve historical information about tracked events whenever needed. Generic tracker keeps track of many different types of data, including the following data types: • An "exclusion list" made up of one or more EXCLUDE statements • A set of DEBUG statements • A set of TRACKDATA instances • STATUS information Of all of these, only TRACKDATA is enabled for persistence using SMF records. This persistence of TRACKDATA is done in parallel to the TRACKDATA that is kept in the dynamic memory of the GTZ address space. The TRACKDATA that is persisted as SMF records is meant to serve as a backup, or long-term storage for later analysis, of such data. This is because the data that is kept in dynamic memory is only available until the GTZ address space shuts down, at the latest before the next system restart. You can still achieve GTZ data persistence across those system restarts without using SMF records by instead using the existing tools GTZPRINT, GTZQUERY, or DISPLAY GTZ. These tools can explicitly extract the data from the live GTZ address space. The external interface for the TRACKDATA persistence using SMF records consists of the following pieces: • SETGTZ operator sub-command PERSIST. SETGTZ PERSIST enables or disables recording using SMF records. • GTZPRMxx parmlib member statement PERSIST, which is equivalent to the SETGTZ PERSIST operator command. • Operator command DISPLAY GTZ,STATUS reports the current enablement status of SMF recording for GTZ data. • Macro service GTZQUERY REQUEST=STATUS reports the current enablement status of SMF recording for GTZ data. • REXX callable function GTZLQRY with GTZLQRY_REQUEST="STATUS" reports the current enablement status of SMF recording for GTZ data among other information. • Programs GTZSMFU2 and GTZSMFU3 allow for the retrieval of GTZ data from standard SMF record backend stores (dataset or logstream). • Mapping macro GTZZSMF1 for the new top-level SMF record type 125, which is assigned to GTZ for its data persistence. • Macro GTZZSMFU for return and reason codes from programs GTZSMFU2 and GTZSFMU3. • Sample member GTZSMFJ in SYS1.PARMLIB demonstrates the use of SMF dump program exit routines GTZSMFU2 and GTZSMFU3. SMF already provides the following dump programs to retrieve raw binary data from different SMF backend stores for SMF records: • Program IFASMFDP for SMF records that are stored in data sets • Program IFASMFDL for SMF data records that are stored in log streams. However, these existing dump programs also support the use of user exit routines to filter and process individual SMF records from the overall set of SMF records that are stored in the targeted SMF record store (dataset or logstream). Generic Tracker provides exit routines for two of those dump program user exits in order to extract and format, in text form that is very similar to the existing DISPLAY GTZ,TRACKDATA output format, any GTZ SMF records that are contained in the SMF record source: The generic tracker facility 343

372 • Program GTZSMFU2, to be used as an exit routine for exit USER2, is given control only when the SMF data set dump program selects a record to be written. GTZSMFU2 gains control for each record that is filtering that is through the existing supported input to the selected by any optional general specified SMF dump programs. GTZSMFU2 ignores any non-GTZ SMF records and formats GTZ SMF records as text in a new output DD, by the name of GTZOUT, of the SMF dump program. • Program GTZSMFU3, to be used as an exit routine for exit USER3, is given control after the output data set is closed. Pair it with USER2 exit routine GTZSMFU2 so that GTZSMFU3 can close any GTZ output data sets that GTZSMFU2 opened initially and shared across multiple calls for different SMF records that are fed into GTZSMFU2. In addition to GTZOUT as output DD, the exit routines GTZSMFU2 and GTZSMFU3 also expect a DD GTZPRINT as target for additional messages from the GTZ processing. Both GTZ DDs require LRECL=80. Usage details are also described in the prologue of the GTZSMFJ sample job. Note: On exit, the GTZOUT DD contains text similar to that in the following example: /* GENERATED BY GTZSMFU2 (HBB77AZ-14260) 2014-09-17 19:40:09 */ ---------------------------------------------------------------------- INSTANCE: 1 COUNT: 1 EVENTDESC: 'GTZFCT neutral event description' OWNER: IBM_GTZ_FCT SOURCE: MYSOURCE EVENTDATA: xC7E3E9C6C3E3C2C5 xC5C6F1F500000004 PROGRAM: *UNKNOWN PROGRAMOFFSET: x0000000000000064 HOMEJOB: MAINASID HOMEASID: x003A EVENTJOB: MAINASID EVENTASID: x003A AUTHORIZED: YES FIRST TIME: 2014-09-17 18:38:04 SYSPLEX: PLEX1 SYSTEM: SY39 SMF SID: SY39 ---------------------------------------------------------------------- INSTANCE: 2 COUNT: 1 EVENTDESC: 'GTZTRACK DIAGNOSE' OWNER: IBMGTZ SOURCE: GTZKCTRL EVENTDATA: x0000000000000002 x4040404040404040 PROGRAM: GTZKPVT PROGRAMOFFSET: x000000000002A762 HOMEJOB: *MASTER* HOMEASID: x0001 EVENTJOB: *MASTER* EVENTASID: x0001 AUTHORIZED: YES FIRST TIME: 2014-09-17 19:10:09 SYSPLEX: PLEX1 SYSTEM: SY39 SMF SID: SY39 /* GTZSMFU2 END TIME 2014-09-17 19:40:10 */ Mapping macro GTZZSMF1 provides the mapping for SMF records of type 125 and all supported subtypes. There is currently only one subtype, for TRACKDATA. Mapping macro GTZZSMF1 is also referenced in the standard SMF record mapping macro IFASMFRD, which covers record types 124-127 and is referenced by the main include IFASMFR. That way customers can also create mappings for the GTZ SMF record type 125 using standard SMF include protocol 'IFASMFR 125'. Use new operator command SETGTZ PERSIST or new statement PERSIST in the GTZPRMxx parmlib member to enable or disable track data persistence. For more information, see the SETGTZ PERSIST command in z/OS MVS System Commands and GTZPRMxx (Generic Tracker parameters) in z/OS MVS Initialization and Tuning Reference . DFSMS tracking • Event description starting with GDGLIMIT – EVENTDESC: 'GDGLIMIT jobname stepname procname’ The field name GDGLIMIT was used in a call to Catalog Management and did not also include GDGLIMTE. This may indicate that a program or utility is not capable of handling extended Generation Data Groups (GDGs). jobname is the name of the user application job, stepname and procname are also listed if they are not blanks. 344 z/OS: MVS Diagnosis: Tools and Service Aids

373 An example of tracked usage reported by the catalog for using GDGLIMIT (and not also using GDGLIMTE) could appear as the following: ---------------------------------------------------------------------- INSTANCE: 1 COUNT: 1 EVENTDESC: 'GDGLIMIT CSIRXJCL STEP1 ' OWNER: IBMDFSMS SOURCE: IGG0CLFA EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: *UNKNOWN PROGRAMOFFSET: x0000000000000000 HOMEJOB: CATALOG HOMEASID: x002F EVENTJOB: CATALOG EVENTASID: x002F AUTHORIZED: YES FIRST TIME: 2014-10-29 09:06:46 ---------------------------------------------------------------------- Figure 104: Example of tracked usage reported by the catalog for using GDGLIMIT (and not also using GDGLIMTE) • Event description starting with SMS- – See the “EAV migration assistance tracker” section in z/OS DFSMSdfp Advanced Services . JES3 control statement tracking JES3 is instrumented to report the use of JES3 control statements (JECL) in jobs that have been submitted to the system. Occurrences of JES3 JECL statements in a job will be reported during input service using the Generic Tracker macro, GTZTRACK. When GTZ tracking is enabled, JES3 will record GTZ data identifying the JES3 JECL statements found within a job stream. identified with the OWNER field set to IBMJES3. Information in the JES3 JES3 generated GTZ records are record will aid in identifying the source of the job stream and the JES3 control statements found in the job stream. ---------------------------------------------------------------------- INSTANCE: 1 COUNT: 1 EVENTDESC: '|01110000 000xxxxx| INTRDR CRJOB002 IBMUSER ' OWNER: IBMJES3 SOURCE: IATISLG EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: *UNKNOWN PROGRAMOFFSET: x0000000000000000 HOMEJOB: JES3 HOMEASID: x001E EVENTJOB: JES3 EVENTASID: x001E AUTHORIZED: YES FIRST TIME: 2014-04-11 08:30:23 ---------------------------------------------------------------------- INSTANCE: 2 COUNT: 1 EVENTDESC: '|00000001 000xxxxx| RDR011 CRJOB001 RDR011 ' OWNER: IBMJES3 SOURCE: IATISRI EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: *UNKNOWN PROGRAMOFFSET: x0000000000000000 HOMEJOB: JES3 HOMEASID: x001E EVENTJOB: JES3 EVENTASID: x001E AUTHORIZED: YES FIRST TIME: 2014-04-11 08:30:52 ---------------------------------------------------------------------- INSTANCE: 3 COUNT: 1 EVENTDESC: '|00110010 000xxxxx| RDR011 CRJOB001 ' OWNER: IBMJES3 SOURCE: IATISLG EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: *UNKNOWN PROGRAMOFFSET: x0000000000000000 HOMEJOB: JES3 HOMEASID: x001E EVENTJOB: JES3 EVENTASID: x001E AUTHORIZED: YES FIRST TIME: 2014-04-11 08:30:53 ---------------------------------------------------------------------- INSTANCE: 4 COUNT: 1 EVENTDESC: '|00110010 000xxxxx| RDR011 CRJOB0X1 ' OWNER: IBMJES3 SOURCE: IATISLG EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: *UNKNOWN PROGRAMOFFSET: x0000000000000000 HOMEJOB: JES3 HOMEASID: x001E EVENTJOB: JES3 EVENTASID: x001E AUTHORIZED: YES FIRST TIME: 2014-04-11 08:30:53 ---------------------------------------------------------------------- Figure 105: Examples of JES3 control statement GTZ records The generic tracker facility 345

374 Description of the GTZ record fields with data provided by JES3: identifies the JES3 subsystem as the source of the GTZ record. • OWNER is the string IBMJES3 and the JES3 module which the occurrence of a JES3 control statement in the • SOURCE identifies identified job stream. This will either be IATISLG or IATISRI. • EVENTDATA will be set to zeros. • PROGRAM will be *UNKNOWN and PROGRAMOFFSET will be zeros as JES3 provides no program information. specific • EVENTDESC is a 46 character string in which JES3 provides information about the job stream and the JES3 control statement usage within the job stream. The contents of EVENTDESC by character position is: 1 = A starting delimiter, which is the vertical bar character, for the JES3 control statement usage indicators. identifies specific JES3 control 2-18 = Each character whether or not a statement is used in the job stream. 0=Not used. 1=Used. 2 = JES3 command statement 3 = //*DATASET statement 4 = //*FORMAT statement 5 = //*MAIN statement 6 = //*NET statement 7 = //*NETACCT statement 8 = //*OPERATOR statement 9 = //*PAUSE statement 10 = Blank character 11 = //*PROCESS statement 12 = //*ROUTE statement 13 = //*SIGNON statement 14-18 = Reserved 19 = An ending delimiter which is the vertical bar character. 20 = Blank character 21-28 = JES3 point of entry for the job stream. 29 = Blank character 30-37 = Job name when SOURCE=IATISLG. DDNAME of the reader when SOURCE=IATISRI. 38 = Blank character 39-46 = Submitting TSO userid when SOURCE=IATISLG. DDNAME of the reader when SOURCE=IATISRI. Data for the remaining GTZ record fields is supplied by the Generic Tracker Facility. MVS Allocation tracking Event description 'IEFALC 01:

’ • See message IEF384I “WARNING: VOLUME NOT RETRIEVED FROM CATALOG”. Note that the ALLOCxx parmlib member option SYSTEM VERIFY_UNCAT(FAIL|TRACK|MSGTRACK| LOGTRACK) determines whether message IEF348I is issued and where: – Option SYSTEM VERIFY_UNCAT(TRACK) enables tracking, but does not issue message IEF348I. – Option SYSTEM VERIFY_UNCAT(MSGTRACK) specifies that message IEF348I is issued only to the job log. – Option SYSTEM VERIFY_UNCAT(LOGTRACK) specifies that message IEF348I is issued to both the job log and hardcopy-only WTO. The default for SYSTEM VERIFY_UNCAT is FAIL. 346 z/OS: MVS Diagnosis: Tools and Service Aids

375 D GTZ,TRACKDATA GTZ1002I 23.42.10 GTZ TRACKDATA 239 FOUND 1 MATCHING TRACKED INSTANCE(S) ---------------------------------------------------------------------- INSTANCE: 1 COUNT: 1 EVENTDESC: 'IEFALC 01: STEP1 DD1' OWNER: IBMCNZ SOURCE: CNZTRKR EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: *UNKNOWN PROGRAMOFFSET: x0000000000000000 HOMEJOB: BEANSZZ HOMEASID: x001D EVENTJOB: BEANSZZ EVENTASID: x001D AUTHORIZED: YES FIRST TIME: 2013-09-28 23:35:31 Figure 106: Example of MVS allocation tracking SDSF tracking • Event description: SDSF NOPARM FALLBACK: ISFPRMXX NOT ACTIVE • Event description: SDSF MENU TABLE DISABLED: ISFMIGMN ALLOCATED For these events: – OWNER is IBMSDSF – EVENTDATA is set to zeros – PROGRAM is the SDSF module that detected the event See z/OS SDSF Operation and Customization . D GTZ,TRACKDATA GTZ1002I 17.44.01 GTZ TRACKDATA 649 FOUND 1 MATCHING TRACKED INSTANCE(S) ---------------------------------------------------------------------- INSTANCE: 1 COUNT: 1 EVENTDESC: 'SDSF NOPARM FALLBACK: ISFPRMXX NOT ACTIVE' OWNER: IBMSDSF SOURCE: ISFINITC EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: ISFVTBL PROGRAMOFFSET: x000000000020C15E HOMEJOB: KIMURA HOMEASID: x0067 EVENTJOB: KIMURA EVENTASID: x0067 AUTHORIZED: YES FIRST TIME: 2017-10-08 17:43:21 D GTZ,TRACKDATA GTZ1002I 00.39.55 GTZ TRACKDATA 863 FOUND 1 MATCHING TRACKED INSTANCE(S) ---------------------------------------------------------------------- INSTANCE: 1 COUNT: 1 EVENTDESC: 'SDSF MENU TABLE DISABLED: ISFMIGMN ALLOCATED' OWNER: IBMSDSF SOURCE: ISFINITC EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: ISFVTBL PROGRAMOFFSET: x000000000020C15E HOMEJOB: KIMURA HOMEASID: x003A EVENTJOB: KIMURA EVENTASID: x003A AUTHORIZED: YES FIRST TIME: 2017-09-20 00:39:43 Figure 107: Examples of SDSF tracking TSO/E tracking Event description: 'MVSSERV CALL' The MVSSERV command was executed to invoke the Enhanced Connectivity Facility function. The generic tracker facility 347

376 An example of tracked usage reported by TSO/E could appear as the following: INSTANCE: 1 COUNT: 1 EVENTDESC: 'MVSSERV CALL' OWNER: IBMTSO SOURCE: MVSSERV EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: CHSTCPS PROGRAMOFFSET: x0000000000000000 HOMEJOB: IBMUSER HOMEASID: x0022 EVENTJOB: IBMUSER EVENTASID: x0022 AUTHORIZED:NO FIRST TIME: 2016-06-09 06:13:02 Figure 108: Example of tracked usage by TSO/E VSM tracking Event description: 'JOB REQUESTED V=R REGION (ADDRSPC=REAL)' An event with event description 'JOB REQUESTED V=R REGION (ADDRSPC=REAL)' indicates that a job ran with V=R (ADDRSPC=REAL) settings. See Verify that the new default value for REAL is acceptable in z/OS Migration for more information. For this event: • OWNER is always IBMVSM • SOURCE is always IGVGRRGN • EVENTDATA is always zero • PROGRAM and PROGRAMOFFSET are not relevant and undefined • The JOB and ASID fields identify an actual job that used ADDRSPC=REAL. An example of a tracked event reported by VSM would look like the following: INSTANCE: 4 COUNT: 1 EVENTDESC: 'JOB REQUESTED V=R REGION (ADDRSPC=REAL)' OWNER: IBMVSM SOURCE: IGVGRRGN EVENTDATA: x0000000000000000 x0000000000000000 PROGRAM: *UNKNOWN PROGRAMOFFSET: x0000000000000000 HOMEJOB: REAL0JB HOMEASID: x0039 EVENTJOB: REAL0JB EVENTASID: x0039 AUTHORIZED: YES FIRST TIME: 2017-03-02 12:29:34 Figure 109: Example of an event tracked by VSM 348 z/OS: MVS Diagnosis: Tools and Service Aids

377 Component Trace Chapter 12. Component trace The component trace service provides a way for MVS components to collect problem data about events. Each component that uses the component trace service has set up its trace in a way that provides the unique data needed for the component. A component trace provides data about events that occur in the component. The trace data is used by the IBM Support Center, which uses the trace data to: • Diagnose problems in the component • See how the component is running. You will typically use component trace while recreating a problem. Some component traces use minimal system resources, especially while Usage of System Resources: tracing a small number of events. These minimal traces often run anytime the component is running. Other traces use system resources, especially when many kinds of events are traced. These significant large traces are usually requested only when the IBM Support Center asks for them. Run concurrent traces: You can run more than one component trace at a time; you can run component traces: • Concurrently for several components on one system. • Concurrently for one or more components on some or all of the systems in a sysplex. • Concurrently for one component on a system. Multiple concurrent traces for a component are sublevel traces . • Concurrently for several components on some or all of the systems in a sysplex and with sublevel traces. The following topics describe tasks for component traces: • “Planning for component tracing” on page 350 tells you about the tasks needed to plan component tracing. tells you how to request a specific component trace that is • “Obtaining a component trace” on page 358 needed to diagnose a problem. The tasks depend on where you plan to put trace output and if you are running traces on multiple systems in a sysplex; therefore, requesting traces is presented in three topics: – “Request component tracing to address space or data space trace buffers” on page 359 – “Request writing component trace data to trace data sets” on page 361 – “Request component tracing for systems in a sysplex” on page 366 • “Verifying component tracing” on page 367 tells how an operator can check that a requested trace is running and that a component trace writer is running. • “Viewing the component trace data” on page 370 tells you how to format the trace output. This topic uses tables to show the similarities and differences in the individual traces from different components. Table 56 on page 349 summarizes each BCP component trace that uses the component trace service. Table 56: Summary of BCP component traces that use the component trace service Reference Component “SYSAPPC component trace” on page 371 Advanced Program-to-Program Communication/MVS (APPC/MVS) Base control program internal interface (BCPii) “SYSBCPII component trace” on page 387 ® socket support “SYSBHI component trace” on page 391 Basic HyperSwap © Copyright IBM Corp. 1988, 2017 349

378 Component Trace Table 56: Summary of BCP component traces that use the component trace service (continued) Component Reference “SYSCEA component trace” on page 395 Common Event Adapter (CEA) Cross-system coupling facility (XCF) “SYSXCF component trace” on page 486 “SYSXES component trace” on page 491 Cross-system extended services (XES) “SYSDLF component trace” on page 398 Data lookaside facility (DLF) of VLF Distributed function of SOMobjects “SYSDSOM component trace” on page 400 “SYSGRS component trace” on page 406 Global resource serialization Allocation Component “SYSIEFAL component trace” on page 414 “SYSIOS component trace” on page 420 IOS Component Trace JES common coupling services “SYSJES component trace” on page 425 JES2 rolling trace table “SYSjes2 component trace” on page 433 “SYSLLA component trace” on page 436 Library lookaside (LLA) of contents supervision z/OS UNIX System Services (z/OS UNIX) “SYSOMVS component trace” on page 443 Operations services (OPS) “Requesting a SYSOPS trace” on page 454 Resource recovery services (RRS) “SYSRRS component trace” on page 458 Real storage manager (RSM) “SYSRSM component trace” on page 464 SDUMP “SYSDUMP component trace” on page 402 Service processor interface (SPI) “SYSSPI component trace” on page 479 System logger “SYSLOGR component trace” on page 437 “SYSAXR component trace” on page 384 System REXX “SYSTTRC transaction trace” on page 480 Transaction trace (TTRC) “SYSVLF component trace” on page 481 Virtual lookaside facility (VLF) Workload manager (WLM) “SYSWLM component trace” on page 484 A program product or application, if authorized, can also use the component trace service to provide an application trace . See the documentation for the program product or application for information about its trace. • See z/OS MVS Initialization and Tuning Reference for the CTncccxx parmlib member. z/OS MVS System Commands for the TRACE CT command. • See • See z/OS MVS IPCS Commands for the COPYDUMP, COPYTRC, CTRACE, GTFTRACE, and MERGE subcommands. MVS System Messages . • For a description of these messages, see • See z/OS MVS Programming: Authorized Assembler Services Guide for information on creating an application trace . Planning for component tracing Planning for component tracing consists of the following tasks, which are performed by the system programmer: • “Create CTncccxx parmlib members for some components” on page 351 : – “Specify buffers” on page 353 350 z/OS: MVS Diagnosis: Tools and Service Aids

379 Component Trace • “Select the trace options for the component trace” on page 356 • “Decide where to collect the trace records” on page 357 Create CTncccxx parmlib members for some components shows if a component has a parmlib member, if the member is a default member Table 57 on page 351 needed at system or component initialization, and if the component has default tracing. Some components run default tracing at all times when the component is running; default tracing is usually minimal and covers only unexpected events. Other components run traces only when requested. When preparing your production SYS1.PARMLIB system library, do the following: identified in the table. If parmlib does not contain 1. Make sure the parmlib contains all default members the default members at initialization, the system issues messages. Make sure that the IBM-supplied CTIITT00 member is in the parmlib. PARM=CTIITT00 can be on a TRACE CT command for a component trace that does not have a parmlib member; specified CTIITT00 prevents the system from prompting for a REPLY after the TRACE CT command. In a sysplex, CTIITT00 is useful to prevent each system from requesting a reply. 2. Decide if each default member meets the needs of your installation. If it does not, customize it. 3. Decide if the buffer size specified in the default members meets the needs of your installation. Some component traces do not allow buffer size change after initialization. Change the buffer size, if needed. Most components can run only one component trace at a time; some components can run concurrent . Each sublevel trace is traces, called by its sublevel trace name. For some sublevel traces identified components, you need to identify the component's CTncccxx member in another parmlib member; the components with this requirement have the other parmlib member listed in the default member column in Table 57 on page 351 . For example, for XCF specify CTIXCF00 on the CTRACE parameter in the COUPLExx parmlib member. COUPLE SYSPLEX( ... CTRACE(CTIXCF00) ... Table 57: Determining if a component has a parmlib member Parmlib member Default member Default tracing beginning at Sublevel Trace initialization traces CTnAPPxx (see “CTnAPPxx No No; cannot turn trace ON or No SYSAPPC parmlib member” on page OFF in CTnAPPxx ) 372 CTIAXR00 Yes No SYSAXR CTIAXRnn (see “CTIAXRnn parmlib member” on page ). 385 CTIHWI00 Yes; minimal diagnostic CTIHWI00 SYSBCPII No tracing is always in effect. The presence of a valid CTIHW100 parmlib at BCPii startup can modify these default trace options. SYSBHI CTIBHIxx CTIBHI00 Yes; minimal; unexpected No events CTICEAnn (see “CTICEAnn SYSCEA No Yes CTICEA00 parmlib member” on page ) 396 Component trace 351

380 Component Trace Table 57: Determining if a component has a parmlib member (continued) Default member Default tracing beginning at Sublevel Parmlib member Trace traces initialization None No N/A SYSDLF Yes; always on when DLF is running No Yes None SYSDSOM N/A Yes, full tracing No SYSDUMP CTIDMPxx CTIDMP00 SYSGRS CTIGRS00, which is specified Yes, if global resource CTnGRSxx (see “CTnGRSxx No in GRSCNF00 member parmlib member” on page serialization is active; CONTROL and MONITOR ). 406 options CTIIEFAL No SYSIEFAL CTIIEFxx (see “CTIIEFxx Yes parmlib member” on page 415 ) No Yes; minimal; unexpected No CTnIOSxx (see “CTnIOSxx SYSIOS parmlib member” on page events 422 ) Yes CTIJES01, CTIJES02, SYSJES CTnJESxx (see “CTnJESxx Yes; full tracing for sublevels CTIJES03, CTIJES04 parmlib member” on page XCFEVT and FLOW; minimal ) 427 tracing of unexpected events You should also receive and for sublevels USRXIT and rename members IXZCTION MSGTRC and IXZCTIOF supplied in SYS1.SAMPLIB to CTIJESON and CTIJESOF. jes2 None Yes; always on when JES2 is Yes SYS N/A running None N/A Yes; always on when LLA is SYSLLA No running Yes; activated during system CTnLOGxx (see “CTnLOGxx CTILOG00, which can be SYSLOGR No logger (IXGLOGR) address in IXGCNFxx specified parmlib member” on page member. 440 space initialization ). Yes; minimal; unexpected SYSOMVS No CTIBPX00, which must be CTnBPXxx (see “CTnBPXxx parmlib member” on page in BPXPRM00 events specified ) 444 member SYSOPS CTnOPSxx (see “CTnOPSxx CTIOPS00, which must be No Yes; minimal; unexpected parmlib member” on page in CONSOLxx specified events member ) 454 SYSRRS CTnRRSxx (see “CTnRRSxx No None, but member Yes; minimal; unexpected ATRCTRRS supplied in events parmlib member” on page SYS1.SAMPLIB can be used. 459 ) See SET-UP and ACTIVATION instructions in the ATRCTRRS sample. CTnRSMxx (see “CTnRSMxx SYSRSM No No No parmlib member” on page ) 465 None N/A No No SYSSPI N/A No No N/A SYSTTRC None N/A Yes; minimal; unexpected SYSVLF No events 352 z/OS: MVS Diagnosis: Tools and Service Aids

381 Component Trace Table 57: Determining if a component has a parmlib member (continued) Default member Parmlib member Default tracing beginning at Trace Sublevel initialization traces No N/A None SYSWLM Yes; minimal; unexpected events SYSXCF CTnXCFxx (see “CTnXCFxx CTIXCF00, which can be No Yes; minimal; unexpected events specified parmlib member” on page in COUPLE00 ) 487 member CTnXESxx (see “CTnXESxx SYSXES CTIXES00, which can be Yes Yes; minimal; unexpected in COUPLE00 parmlib member” on page specified events member 493 ) Specify buffers specified. Each component determines the buffer size and how it is Depending on the component, you may or may not be able to change the buffer size. You may be able to change the size only at system or component initialization, or when the trace is started, or at any time, including while the trace is running. specifications. Table 58 on page 353 shows how the buffers The buffer size determines whether you get all the records needed for diagnosis; when the buffer is full, the system wraps the buffer, overwriting the oldest records. To change the size of the buffer, specify an nnnnK or nnnnM parameter on the TRACE CT operator command or a BUFSIZE parameter in the parmlib member. Usually you should increase the size of the trace buffer when you increase the amount of tracing. However, if you plan to place a component's trace records in a trace data set, you can probably leave the buffer at its original size. Many component traces do not allow you to change the buffer size after initialization; the table indicates those component traces. If you increase the amount of tracing for one of these traces, specify use of a trace data set, if the component supports its use. Table 58: Component trace options Trace Size set by Change size after IPL Buffer location Default size and size range Data space. A TRACE CTnAPPxx member or SYSAPPC 512KB Yes, while a trace is running CT,OFF command REPLY for TRACE CT 64KB - 32MB requests a dump, command which includes the trace buffers 2MB Yes, when restarting a CTIAXRnn parmlib AXR private; AXR trace SYSAXR dataspace trace after stopping it member or REPLY to 1MB - 2GB TRACE CT command MVS system 4M Data space. A SLIP or SYSBCPII No DUMP command can 4M always be issued to capture the trace buffers for the BCPii address space. (Specify ASID=(BCPii's ASID),DSPNAME= ('HWIBCPII'.*)) In addition, if CTrace for SYSBCPII is ON, a Trace CT,OFF command requests a dump, which includes the trace buffers. Component trace 353

382 Component Trace Table 58: Component trace options (continued) Size set by Change size after IPL Default size and Buffer location Trace size range 4MB SYSBHI Yes, while trace is 64-bit Common CTIBHIxx parmlib Service Area (ECSA) member or REPLY to running 4MB - 64MB TRACE CT command 2MB SYSCEA CTICEAnn parmlib Yes, when restarting a CEA private; CEA trace dataspace member or REPLY to trace after stopping it 1MB - 2GB TRACE CT command MVS system No Data space. In the SYSDLF N/A REPLY for the DUMP command, specify DSPNAME= ('DLF'.CCOFGSDO) MVS system N/A No SYSDSOM Private address space 4MB SYSDUMP Yes 64-bit common CTIDMPxx parmlib storage area member or TRACE CT 4MB - 32MB command 16M SYSGRS CTnGRSxx member Yes. In the GRS address space above the bar 128KB - 2047MB which means it will not (System rounds size constrain GRS virtual up to nearest 64KB storage. Options such boundary.) as FLOW, REQUEST, and MONITOR produce a large number of entries in a short period of time. When dumping by SDUMP, specify ASID=GRS's asid and SDATA=(RGN,NUC). The RGN is needed for blocks that address the ctrace buffer. Note that SDATA=GRSQ does not collect GRS CTRACE. 4M Yes. In the component SYSIEFAL CTIIEFxx member address space 256KB - 8MB 324KB CTnIOSxx member or SYSIOS Yes Extended system REPLY for TRACE CT queue area (ESQA). 324KB-1.5MB command Full buffers are Note: copied to an IOS data space to allow for more data capture. For information about specifying an IOS data space size at IPL, see “OPTIONS parameter” on page 422 . N/A MVS system No In the component SYSJES address space SYS jes2 N/A JES2 No In the component address space 354 z/OS: MVS Diagnosis: Tools and Service Aids

383 Component Trace Table 58: Component trace options (continued) Trace Buffer location Size set by Default size and Change size after IPL size range No SYSLLA MVS system N/A In the component address space MVS system, CTnLOGxx SYSLOGR 2MB Yes Data space. In the REPLY for the DUMP member, or REPLY for 2MB - 2047MB command, specify TRACE CT command. DSPNAME= ('IXLOGR'.*). See “Obtaining a dump of system logger information” on page 437 . SYSOMVS 4MB Yes, when initializing Data space. In the CTxBPXxx member or REPLY for TRACE CT z/OS UNIX. REPLY for the DUMP 16KB - 64MB command, specify command DSPNAME= (asid.SYSZBPX2) where asid is the ASID for z/OS UNIX. CTnOPSxx member or 2M Yes, when restarting a Console address space SYSOPS trace after stopping it (private). REPLY for TRACE CT 64KB - 16MB command 1MB SYSRRS CTxRRSxx member or Data space and Yes, when restarting a trace after stopping it component address REPLY for TRACE CT 1MB - 2045MB command space. In the REPLY for the DUMP command, specify DSPNAME=('RRS' .ATR TRACE) and SDATA=RGN. 3 buffers of 132 Common service area SYSRSM Yes, when starting a CTnRSMxx member or pages REPLY for TRACE CT trace (LIKECSA) or, if in CTnRSMxx, specified command 2 - 7 page-fixed high virtual private primary buffers, storage of the RASP 4 - 262,144 address space. pages per buffer 1 - 2047 MB for secondary buffers 64KB MVS system Yes, when starting a SYSSPI In the component address space trace 1 MB Yes Data space owned by MVS system SYSTTRC the system trace 16K - 999K address space 1MB - 32MB Component trace 355

384 Component Trace Table 58: Component trace options (continued) Size set by Default size and Trace Change size after IPL Buffer location size range No MVS system SYSVLF Data space. Enter N/A DISPLAY J,VLF to identify the VLF data spaces. In the REPLY for the DUMP command, specify DSPNAME= ('VLF'.Dclsname, 'VLF'.Cclsname), where is a VLF class clsname name. 64KB MVS system Extended common SYSWLM Yes, when starting a trace service area (ECSA) 64KB - 16M SYSXCF 4MB CTnXCFxx member No Extended local system queue area (ELSQA) of 16KB - 16MB the XCF address space (System rounds size up to a multiple of 72 bytes.) SYSXES 336KB CTnXESxx member or Yes, while a trace is 64-bit common REPLY for TRACE CT running. storage above the 2 GB 16KB - 16MB command bar. In the REPLY for the DUMP command, specify SDATA=XESDATA. Select the trace options for the component trace If the IBM Support Center requests a trace, the Center might specify the options, if the component trace uses an OPTIONS parameter in its parmlib member or REPLY for the TRACE CT command. The options are: Trace Trace Request OPTIONS parameter. SYSAPPC See “OPTIONS parameter” on page 373 See “OPTIONS parameter” on page 386 SYSAXR SYSBCPII See “OPTIONS parameter” on page 389 SYSBHI See “OPTIONS parameter” on page 393 See “OPTIONS parameter” on page 397 SYSCEA None SYSDLF None SYSDSOM SYSDUMP See “OPTIONS parameter” on page 397 SYSGRS See “OPTIONS parameter” on page 407 SYSIEFAL See “OPTIONS parameter” on page 416 See “OPTIONS parameter” on page 422 SYSIOS None SYSJES SYS jes2 None 356 z/OS: MVS Diagnosis: Tools and Service Aids

385 Component Trace Trace Trace Request OPTIONS parameter. None SYSLLA See “OPTIONS parameter” on page 441 SYSLOGR SYSOMVS See “OPTIONS parameter” on page 445 See “OPTIONS parameter” on page 455 SYSOPS See “OPTIONS parameter” on page 460 SYSRRS SYSRSM See “OPTIONS parameter” on page 466 None SYSTTRC None SYSSPI None SYSVLF SYSWLM None See “OPTIONS parameter” on page 488 SYSXCF SYSXES See “OPTIONS parameter” on page 494 You must specify all options you would like to have in effect when you start a trace. Options for a specified previous trace of the same component do not continue to be in effect when the trace is started again. If the component has default tracing started at initialization by a parmlib member without an OPTIONS parameter, you can return to the default by doing one of the following: • Stopping the tracing with a TRACE CT,OFF command. • Specifying OPTIONS() in the REPLY for the TRACE CT command or in the CTncccxx member. For XCF, the IBM Support Center identifies the options needed to diagnose a particular problem as both of the following: SERIAL STATUS Decide where to collect the trace records shows, depending on the component, the potential locations of the trace data As Table 59 on page 357 are: • In address-space buffers, which are obtained in a dump • In data-space buffers, which are obtained in a dump • In a trace data set or sets, if supported by the component trace Table 59: Location of trace buffers for components Component Trace Data Set Address-Space Buffer Data-Space Buffer No Yes No SYSAPPC Yes Yes Yes SYSAXR No No Yes SYSBCPII SYSBHI Yes No Yes Yes Yes Yes SYSCEA Component trace 357

386 Component Trace Table 59: Location of trace buffers for components (continued) Data-Space Buffer Component Trace Data Set Address-Space Buffer No SYSDLF Yes Yes Yes No Yes SYSDSOM Yes SYSDUMP Yes No Yes No SYSGRS Yes SYSIEFAL Yes No Yes Yes Yes SYSIOS Yes No SYSJES Yes Yes Yes No jes2 No SYS SYSLLA Yes No No Yes SYSLOGR Yes Yes No Yes Yes SYSOMV SYSOPS Yes No Yes Yes Yes Yes SYSRRS Yes SYSRSM Yes Yes Yes No No SYSTTRC SYSSPI Yes No No Yes No SYSVLF Yes No Yes Yes SYSWLM SYSXCF Yes No Yes No Yes Yes SYSXES If the trace records of the trace you want to run can be placed in more than one location, you need to select the location. For a component that supports trace data sets, you should choose trace data sets for the following reasons: • Because you expect a large number of trace records • To avoid interrupting processing with a dump of the trace data • To keep the buffer size from limiting the amount of trace data • To avoid increasing the buffer size Depending on the component, you might also want to dump the address-space trace buffers and data- space trace buffers. You may need to consider the amount of auxiliary storage required to back data space buffers. In Note: general, most components which use data space buffers establish a small default value less than 500 kilobytes of virtual storage. Some components allow you to specify values up to 2 gigabytes. The SYSIOS component trace uses a default of 512 megabytes for data space buffers. You should consider SYSIOS and other component data space buffers to ensure that the potential cumulative effect of all CTRACE data space buffers for your system can be accommodated by the local page data sets that you have allocated. z/OS MVS Initialization and Tuning Guide . For more information on auxiliary storage, refer to Obtaining a component trace specific component trace, use one of the following procedures: To obtain a 358 z/OS: MVS Diagnosis: Tools and Service Aids

387 Component Trace • “Request component tracing to address space or data space trace buffers” on page 359 • “Request writing component trace data to trace data sets” on page 361 • “Request component tracing for systems in a sysplex” on page 366 Request component tracing to address space or data space trace buffers This topic describes how to obtain component trace records in dumps. The trace records are in address- space or data-space trace buffers. The topic contains information about how to: specific component trace to trace buffers” on page 359 • “Prepare for a • “Perform component tracing to trace buffers” on page 360 . specific Prepare for a component trace to trace buffers The system programmer performs the tasks. For most component traces, the request is made by: 1. Select How the Operator Is to Request the Trace: • A TRACE CT operator command without a PARM parameter, followed by a reply containing the options a CTncccxx parmlib member • A TRACE CT operator command with a PARM parameter that specifies containing the options If you do not use a parmlib member, tell the operator the options. 2. Create a parmlib member, if used: If you use a parmlib member, create the member and place it on SYS1.PARMLIB. Use a parmlib member if the options are complicated and you have access to the SYS1.PARMLIB data set, or if a parmlib member is required by the component, or if you had already set up a parmlib member with the needed options. Use a REPLY for simple options. See “Create CTncccxx parmlib members for some components” on page 351 . For XCF, for example, you can create CTWXCF03 to specify the options. TRACEOPTS ON OPTIONS('SERIAL','STATUS') shows how to Table 60 on page 359 3. Determine the dump to be used to obtain the trace records: request SVC dumps for the component traces. Possible ways of requesting SVC dumps are: • By a DUMP operator command • By a SLIP trap • By the component For the following failures, use another type of dump: • Failure of an application program or program product: The program requests a SYSMDUMP dump. • The system waits, hangs, or enters a loop: The operator requests a stand-alone dump. Table 60: How to request SVC dumps for component traces Trace Request of SVC Dump By the component when the operator stops SYSAPPC tracing with a TRACE CT,OFF SYSAPPC command SYSAXR By DUMP or SLIP command SYSBCPII By DUMP or SLIP command, or by the component, if Ctrace is ON for SYSBCPII and a TRACE CT,OFF command is issued. By DUMP or SLIP command if the Basic HyperSwap Management address space or SYSBHI one of the BHIHSRV address spaces are to be included in the dump. SYSCEA By DUMP or SLIP command Component trace 359

388 Component Trace Table 60: How to request SVC dumps for component traces (continued) Trace Request of SVC Dump By DUMP or SLIP command SYSDLF SYSDSOM By DUMP or SLIP command By DUMP or SLIP command SYSGRS By DUMP or SLIP command SYSIEFAL By DUMP or SLIP command, or by the component SYSIOS • In the REPLY for the DUMP command, specify the IOS address space to be dumped By the component SYSJES By DUMP or SLIP command or component SYS jes2 SYSLLA By the component SYSLOGR By DUMP or SLIP command By DUMP or SLIP command SYSOMVS SYSOPS By DUMP or SLIP command SYSRRS By DUMP or SLIP command SYSRSM • By DUMP or SLIP command • Through the DMPREC option on the CTnRSMxx parmlib member or on the REPLY for the TRACE CT command when RSM enters recovery processing (default) • Through the DMPOFF option of CTnRSMxx or the TRACE CT reply when SYSRSM tracing is turned off Automatically dumped by the Tailored SVC Dump Exits function SYSTTRC By the component SYSSPI SYSVLF By DUMP or SLIP command or when SYSVLF full tracing is turned off SYSWLM By DUMP or SLIP command SYSXCF By DUMP or SLIP command SYSXES By DUMP or SLIP command The location of the address-space and data- 4. Make Sure the component trace Buffers Will Be Dumped: space buffers depends on the component being traced. See the table in “Specify buffers” on page 353 for the location of the buffers. When the component being traced requests an SVC dump, the dump will contain the address-space and/or data-space trace buffers. Perform component tracing to trace buffers The operator performs the tasks. Note that these tasks are for a component trace, rather than for specific a trace started by the system at initialization. 1. Start the component trace: The operator enters a TRACE operator command on the console with MVS specified. master authority. The operator replies with the options that you In the following example, the TRACE CT command does not specify a parmlib member. trace ct,on,comp=sysxcf * 21 ITT006A ... r 21,options=(serial,status),end 360 z/OS: MVS Diagnosis: Tools and Service Aids

389 Component Trace This next example requests the same trace using parmlib member CTWXCF03. When TRACE CT specifies a parmlib member, the system does not issue message ITT006A. trace ct,on,comp=sysxcf,parm=ctwxcf03 . 2. Verify that the Trace Is Running: See “Verifying component tracing” on page 367 The operator obtains the dump that 3. Obtain the Dump Containing the component trace Records: contains the component trace records: an SVC dump, a stand-alone dump, or a dump requested by the component when a problem occurs or when the operator stops the tracing. This example shows a DUMP operator command entered on the console with MVS master authority. The system issues message IEE094D in response to the DUMP command. If you requested, the operator enters dump options in the reply to IEE094D. SDATA options are needed to obtain the trace buffers An (ASID) should be specified for the XCF address space; in the example, XCF is in address space identifier address space 6. dump comm=(dump for xcf component trace) * 32 IEE094D ... r 32,sdata=(couple,sqa,lsqa),asid=6,end . . . IEA911E ... The system identifies the data set containing the dump in message IEA911E. If an installation exit moves the dump, the operator should look for a message identifying the data set containing the moved dump and tell you the name of the dump and the data set containing it. If desired, the operator can request more than one dump while a component trace is running. The operator enters a TRACE CT,OFF command on the console with MVS 4. Stop the component trace: master authority. For some component traces, the command requests a dump, which contains the trace records. The following example shows how to specify the TRACE CT,OFF command. trace ct,off,comp=sysxcf Request writing component trace data to trace data sets The following topics describe only the component traces that can write to trace data sets. You can also change the trace data sets that are in use without stopping the trace. See “Change trace data sets” on page 365 . Prepare for a specific component trace to trace data sets The system programmer performs the following tasks: 1. Determine the dispatching priority required for the external writer started task, the server address space for the component's trace: While component trace runs under the master scheduler address space, you need to verify that the priority of the external writer is at least equal to, and preferably greater than the priority of the component being traced. For example, if you are tracing COMP(SYSXES) for JOBNAME(IRLMA), the dispatching priority of the external writer should be equal to or greater than that assigned to IRLMA. See z/OS MVS Initialization and Tuning Guide for more information on setting priorities. 2. Select How the Operator Is to Request the Trace: For most component traces, the request can be made by: • A TRACE CT operator command without a PARM parameter, followed by a reply containing the options specifies a CTncccxx parmlib member • A TRACE CT operator command with a PARM parameter that containing the options Component trace 361

390 Component Trace If you do not use a parmlib member, tell the operator the options. 3. Create Source JCL for the External Writer: Create source JCL to invoke an external writer, which will send the component trace output to one or more trace data sets. Add a procedure to the SYS1.PROCLIB system library or a job as a member of the data set in the IEFJOBS or IEFPDSI concatenation. for a component but can be used by any application. So you can use the An external writer is not specific same source JCL again for other tracing later, if needed. Concurrent traces for different components must use separate source JCL to place their traces in separate data sets. specifies Because the writer source JCL data sets, use a different set of source JCL for each system in a sysplex. Several systems cannot share the same data set; attempting to share the same data set will lead to contention problems. If your sysplex uses a common SYS1.PROCLIB, you need to specify a unique writer procedure for each system or use a unique job as the source JCL, when tracing the same component on several systems. places trace data on two DASD data sets. The procedure The procedure shown in Figure 110 on page 362 is placed in member WTRD2 of SYS1.PROCLIB. //WTDASD2 PROC //IEFPROC EXEC PGM=ITTTRCWR,REGION=32M //TRCOUT01 DD DSNAME=SYS1.CTRACE1,VOL=SER=TRACE6,UNIT=DASD, // SPACE=(CYL,10),DISP=(NEW,KEEP),DSORG=PS //TRCOUT02 DD DSNAME=SYS1.CTRACE2,VOL=SER=TRACE7,UNIT=DASD, // SPACE=(CYL,10),DISP=(NEW,KEEP),DSORG=PS Figure 110: Example: Cataloged Procedure for an External Writer Rules for the Source JCL for an External Writer: specified on the TRACE CT command or CTncccxx parmlib member is the member name of • The name the source JCL; in the preceding example, WTRD2. The name is 1 to 7 alphanumeric or national characters, with the first character alphabetic or national. National characters are represented by the following hexadecimal codes (in other languages, the codes represent different characters): Code U.S. English EBCDIC Character X'5B' $ X'7B' # X'7C' @ • The procedure must invoke the external writer program ITTTRCWR. Code the REGION= keyword on the EXEC statement to specify the maximum storage size required by the external writer. • The source JCL can specify up to 16 trace data sets. The DD statements have ddnames of TRCOUTxx, where xx is 01 through 16. • The trace data sets must be sequential data sets. You can use extended format sequential data sets as dump data sets for trace output. Extended format sequential data sets have the following features: – Have a greater capacity than sequential data sets – Support striping – Support compression • To help you manage the trace data sets, establish a naming convention so that the data set name indicates the component trace, the date, and so on. • All of the data sets must be on DASD or tape. Do not mix device classes, such as tape and DASD. 362 z/OS: MVS Diagnosis: Tools and Service Aids

391 Component Trace Within a device class, IBM recommends that you do not mix several types of devices, such as 3380 and 3390. In a mix of device types, the system would use the smallest block size for all the data sets. not specify the following DCB parameters: • Do – BLKSIZE. The system uses the optimal block size, which is 4096 or larger. – RECFM. The system uses VB. – LRECL. The system uses BLKSIZE minus 4. • Do specify DISP=SHR. not • Do not concatenate trace data sets. connect more than one trace can • Use a separate member for each component's trace, even though you to the same member. • Use the same member for all the sublevel traces for a component. This approach reduces the number of data sets you must manage. • Use a separate member for each system's component trace, when a component trace runs in two or more of the systems of a sysplex. If the component traces specify the same cataloged procedure in a shared SYS1.PROCLIB, they will use the same data set or group of data sets; in this case, contention might develop for the data set or sets. • System security may require that you have RACF SYSHIGH authority to access the trace data sets. z/OS V1R7 supports the following types of external media: • DSNTYPE=LARGE data sets • VSAM linear data sets GTF and CTRACE accept a single VSAM linear data set as output. VSAM's support for striping can increase data rate without the complexity associated with the use of distinct data sets. defining GTF trace output data sets For the details of the external data sets guidelines, see “Guidelines for . in a cataloged procedure” on page 217 If the WTRSTART parameter on the CTncccxx parmlib member or Wrapping DASD Trace Data Sets: specifies: TRACE CT operator command • WRAP or omits the parameter: When the system reaches the end of the data set or group of data sets, it first data set. writes over the oldest data at the start of the data set or The system also uses only the primary extent or extents for the data set or sets. To obtain the maximum degree of control over the number of trace entries for which space will be allocated, specify space allocation in units of the BLKSIZE of your trace data set, no secondary space, and use the option for contiguous allocation. For example, if your BLKSIZE is 8192, code the SPACE keyword as follows: SPACE=(8192,(500,0),,CONTIG) • NOWRAP: When the data set or sets are full, the system stops writing trace records to the data set or sets. The system continues writing trace records in the address-space buffers. The system also uses the primary and secondary extents of the data set or sets. Wrapping is not supported for Extended Format Sequential data sets, which are treated as Note: specified. NOWRAP even if WRAP is CTRACE writes an end-of-file record. The tape is rewound and unloaded, then a new Tape Data Sets: volume is mounted on the tape unit. If CTRACE has only one tape data set and only one unit for the data set, CTRACE does not write trace records while the tape is unavailable, thus losing trace data. CTRACE can write to multiple tape units in the way that multiple TRCOUTxx DD statements can specify tape data fills one data set, it changes to the next data set. sets. When CTRACE Component trace 363

392 Component Trace Note: GTF and CTRACE support placement of NOWRAP traces in cylinder-managed space. WRAP traces placed in VSAM linear data sets can reside in cylinder-managed space too. WRAP traces in non-VSAM data sets cannot be placed in large format data sets, extended format data sets, or cylinder-managed space. Multiple Trace Data Sets: Use multiple data sets to capture all the trace records, even during spikes of activity. For a SYSRSM trace, which typically produces large numbers of trace records, use multiple data sets to keep from losing records. Multiple trace data sets using different DASD devices can improve performance. To view the trace records in chronological sequence, the system programmer can: • Combine the trace records into one data set, using an IPCS COPYTRC subcommand, then use the CTRACE subcommand to format the records from the data set. • Use an IPCS MERGE subcommand to format the records from multiple data sets. The system places component trace records into each trace data set in sequence. For example, for three data sets, the system places: • Record 1 into data set 1 • Record 2 into data set 2 • Record 3 into data set 3 • Record 4 into data set 1 • Record 5 into data set 2 • And so on Lost Trace Data: Ctrace will give an indication in the next successfully written record of any trace data that did not reach the output medium. If no further records are written, the following message is displayed when the external writer is stopped: ITT120I SOME CTRACE DATA HAS BEEN LOST. LAST nnn BUFFERS NOT WRITTEN. Create a parmlib member If you use a parmlib member, create the member and place it on SYS1.PARMLIB. Use a parmlib member if the options are complicated and you have access to the SYS1.PARMLIB data set, or if a parmlib member is required by the component, or if you had already set up a parmlib member with the needed options. Use a REPLY for simple options. See “Create CTncccxx parmlib members for some components” on page 351 for more information. Example: CTWXCF04 parmlib member For XCF, create CTWXCF04. Notice the two statements for the writer; the WTRSTART statement starts the writer and the WTR statement connects the writer to the component. TRACEOPTS WTRSTART(WTDASD2) ON WTR(WTDASD2) OPTIONS('SERIAL','STATUS') Perform component tracing to trace data sets specific component trace, rather than for The operator performs the tasks. Note that these tasks are for a a trace started by the system at initialization. The operator enters TRACE operator commands on the console 1. Start the Writer and component trace: specified by the system programmer. with MVS master authority and replies with the options Example: TRACE CT command not specifying a parmlib member: The second TRACE CT command starts the SYSXCF trace; the trace options were selected in a previous example. Notice the two writer operands; the WTRSTART operand starts the writer and the WTR operand connects the writer to the component. trace ct,wtrstart=wtdasd2 trace ct,on,comp=sysxcf 364 z/OS: MVS Diagnosis: Tools and Service Aids

393 Component Trace * 44 ITT006A ... r 44,wtr=wtdasd2,options=(serial,status),end This example requests the same trace Example: TRACE CT command specifying a parmlib member: using parmlib member CTWXCF04. trace ct,on,comp=sysxcf,parm=ctwxcf04 See “Verifying component tracing” on page 367 . 2. Verify that the Trace and the Writer Are Running: 3. Stop the component trace: The operator enters a TRACE CT command on the console with MVS master authority. Example 1: TRACE CT,OFF Command trace ct,off,comp=sysxcf * 56 ITT006A ... r 56,end Example 2: TRACE CT Command to Disconnect the Writer: To stop sending trace records to the trace data set, but keep the trace running, the operator can enter the following when the trace is currently running. trace ct,on,comp=sysxcf * 56 ITT006A ... r 56,wtr=disconnect,end The operator should stop the external writer. The operator enters a TRACE CT command on the console with MVS master 4. Stop the External Writer: authority. Example: TRACE CT,WTRSTOP Command: trace ct,wtrstop=wtdasd2 Change trace data sets If you are running a component trace to a trace data set or sets, you can determine if you have the needed records without stopping the trace. Ask the operator to perform the following actions: TRACE CT,WTRSTART 1. Enter a command for a different set of source JCL for each external writer to trace data sets. command that starts the trace with the different source JCL for the writer. 2. Enter a TRACE CT The new source JCL sends the trace records to the new data set or sets. You might lose one or more trace records. Note: You can view the previous data set or sets to verify the collected trace records, then continue or stop the trace, as needed. Example: Changing the trace data sets 1. Enter the following command to start the new external writer NewWtr: TRACE CT,WTRSTART=NewWtr 2. Enter the following commands to disconnect SYSxxx CTRACE from the current writer CurrWtr: TRACE CT,ON,COMP=SYSxxx REPLY xx,WTR=DISCONNECT,END 3. Enter the following commands to connect the new external writer NewWtr to SYSxxx CTRACE: TRACE CT,ON,COMP=SYSxxx REPLY xx, WTR=NewWtr, END Component trace 365

394 Component Trace 4. Enter the following command to stop the current external writer CurrWtr: TRACE CT,WTRSTOP=CurrWtr Request component tracing for systems in a sysplex The following topics describe one way to obtain traces for a component on more than one system in a sysplex. The approach is to obtain a trace in the dump of each system and merge the traces from the dumps, using an IPCS MERGE subcommand. To be useful for diagnosis, the traces must cover the same time period and end at the same time. You can also trace to data sets, if each system uses a unique source JCL for each external writer, so that the trace for each system goes to its own data set. If your installation has a shared SYS1.PROCLIB system library, use a unique parmlib member for each system; each unique parmlib member must specify a unique set of source JCL. If the source JCL is shared, all systems will write trace records on one data set, possibly causing contention problems. component traces on systems in a sysplex Prepare for specific The system programmer performs the tasks. 1. Create a Parmlib Member to Start the Traces: Create a parmlib member to start the traces of the component. Place the member in the shared SYS1.PARMLIB for the sysplex or in the parmlib for each system to be traced. If a parmlib member is used for each system, give it the same name so that one TRACE CT command can start all the component traces on the systems. See “Create CTncccxx parmlib . members for some components” on page 351 Example: CTWXCF33 to Start XCF Trace: For XCF, create CTWXCF33 to start the trace. TRACEOPTS ON OPTIONS('SERIAL','STATUS') The directions for the task assume that a parmlib member can be used. If the component to be traced does not have a parmlib member, the operator can start it with a TRACE CT command in a ROUTE command. The operator has to enter a reply for each system. (The ROUTE command can be used only on MVS systems with JES2.) The location of the address-space and data- 2. Make Sure the component trace Buffers Will Be Dumped: space trace buffers depends on the component being traced. For XCF, the extended local system queue area (ELSQA) of the XCF address space contains the XCF component trace buffers. Example: Obtaining XCF and XES Trace Buffers: • For XCF, the operator should specify SQA and LSQA on the REPLY for the DUMP command. • For XES, the operator should specify SDATA=(XESDATA). Perform component tracing on the systems in the sysplex component trace, rather than for specific The operator performs the tasks. Note that these tasks are for a a trace started by the system at initialization. On a console with MVS master authority on one system in the sysplex, the 1. Start the component traces: operator enters a ROUTE command containing a TRACE CT command. (The ROUTE command can be used only on MVS systems with JES2.) specifies a parmlib member with the same name in each system being traced. Note that, if The command specified, all systems issue message ITT006A to prompt for options. If the parmlib members are not component to be traced does not have a parmlib member, specify the IBM-supplied CTIITT00 member to avoid the prompts. 366 z/OS: MVS Diagnosis: Tools and Service Aids

395 Component Trace Example 1: Command to start traces in all systems: The command starts the trace in all systems in the sysplex. route *all,trace ct,on,comp=sysxcf,parm=ctwxcf33 The command starts the trace in a subset of Example 2: Command to start traces in some systems: systems. Both commands specify the CTWXCF33 parmlib member on each system being traced. route subs2,trace ct,on,comp=sysxcf,parm=ctwxcf33 The following command turns on Example 3: Command for a component without a parmlib member: tracing for a SYSVLF trace in the systems of a sysplex, without prompts for replies to the TRACE command. The SYSVLF component trace has no parmlib member. route *all,trace ct,on,comp=sysvlf,parm=ctiitt00 . 2. Verify that the traces Are running: See “Verifying component tracing” on page 367 3. Obtain the dumps containing the component trace records: The operator requests an SVC dump for each system being traced. Example: DUMP command for systems in a sysplex: The example shows the DUMP operator command entered on a console with MVS master authority on one system in the sysplex. The reply requests dumps on all of the systems named in the pattern of S*. The example assumes that the systems being traced have the following names: S1, S2, S3, and S4; any other systems in the sysplex have names that do not fit the pattern, such as B1 or T2. dump comm=(dump for xcf component trace) * 32 IEE094D ... r 32,remote=(syslist=(s*)),end . . . IEA911E ... identifies The system the data set containing the dump in message IEA911E. If an exit moves a dump, the operator should look for a message identifying the data set containing the moved dump and tell you the name of the dump and the data set containing it. 4. Stop the component traces: On a console with MVS master authority on one system in the sysplex, the operator enters a ROUTE command containing a TRACE CT,OFF command to stop the traces. (The ROUTE command can be used only on MVS systems with JES2.) Example 1: Command to stop traces in all systems: The command stops the traces in all systems in the sysplex. route *all,trace ct,off,comp=sysxcf The command stops the traces in a subset of Example 2: Command to Stop Traces in Some Systems: systems in the sysplex. route subs2,trace ct,off,comp=sysxcf Verifying component tracing The operator should do the following tasks after starting a component trace to make sure that it started successfully. How the task is done depends on whether the component trace has sublevels and whether an external writer is used. Verify tracing for component traces without sublevels The operator should do one of the following: Component trace 367

396 Component Trace • Identify all current tracing by entering the following DISPLAY TRACE command on the console with MVS master authority. The response, in message IEE843I, gives the status in short form of all current component traces. display trace IEE843I ... • Identify current tracing and the options for the traces by entering one of the following DISPLAY TRACE first command requests the status for all commands on the console with MVS master authority. The current component traces; the second command requests it for one component trace, such as XCF. The response, in message IEE843I, gives full information about the status. display trace,comp=all IEE843I ... display trace,comp=sysxcf IEE843I ... Verify tracing for component traces with sublevels The commands for verification depend on the component trace. To verify a SYSJES component trace, the operator enters the following command to verify a SYSJES trace; the system will show the 4 sublevel traces. display trace,comp=sysjes,sublevel,n=4 When a SYSXES component trace has multiple sublevel traces, a DISPLAY command shows only one sublevel. To verify a SYSXES component trace, the operator needs to enter multiple DISPLAY commands to see the multiple sublevels. A SYSXES component trace has structures, address spaces, and connections. The following examples show the DISPLAY (D) command entered by the operator and the type of information that the system returns. 1. To see how the SYSXES component trace is set up. D TRACE,COMP=SYSXES IEE843I 15.24.40 TRACE DISPLAY 213 SYSTEM STATUS INFORMATION ST=(ON,0064K,00128K) AS=ON BR=OFF EX=ON MT=(ON,024K) COMPONENT MODE BUFFER HEAD SUBS -------------------------------------------------------- SYSXES ON 0168K HEAD 2 ASIDS *NOT SUPPORTED* JOBNAMES *NOT SUPPORTED* OPTIONS LOCKMGR WRITER *NONE* 2. To display the structure level trace for each structure and the number of subtraces available. D TRACE,COMP=SYSXES,SUB=(LT01),N=99 IEE843I 15.25.00 TRACE DISPLAY 216 SYSTEM STATUS INFORMATION ST=(ON,0064K,00128K) AS=ON BR=OFF EX=ON MT=(ON,024K) TRACENAME ========= SYSXES MODE BUFFER HEAD SUBS ===================== ON 0168K HEAD 2 ASIDS *NOT SUPPORTED* JOBNAMES *NOT SUPPORTED* OPTIONS LOCKMGR WRITER *NONE* SUBTRACE MODE BUFFER HEAD SUBS ---------------------------------------------------------- LT01 HEAD 1 LIKEHEAD ----------------------------------------------------- 368 z/OS: MVS Diagnosis: Tools and Service Aids

397 Component Trace GLOBAL LIKEHEAD specified is the asid in hex of the 3. To display the address space level trace for each structure. (The ASID address space of the connector.) D TRACE,COMP=SYSXES,SUB=(LT01.ASID(19)),N=99 IEE843I 15.25.39 TRACE DISPLAY 221 SYSTEM STATUS INFORMATION ST=(ON,0064K,00128K) AS=ON BR=OFF EX=ON MT=(ON,024K) TRACENAME ========= SYSXES.LT01 MODE BUFFER HEAD SUBS ===================== ON 0168K HEAD 1 LIKEHEAD ASIDS *NOT SUPPORTED* JOBNAMES *NOT SUPPORTED* OPTIONS LOCKMGR WRITER *NONE* SUBTRACE MODE BUFFER HEAD SUBS -------------------------------------------------------------- ASID(0019) HEAD 8 LIKEHEAD 4. To display the external writer and the buffer size and options associated with the connection. D TRACE,COMP=SYSXES,SUB=(LT01.ASID(19).A1),N=99 IEE843I 15.25.56 TRACE DISPLAY 224 SYSTEM STATUS INFORMATION ST=(ON,0064K,00128K) AS=ON BR=OFF EX=ON MT=(ON,024K) TRACENAME ========= SYSXES.LT01.ASID(0019) MODE BUFFER HEAD SUBS ===================== ON 0168K HEAD 8 LIKEHEAD ASIDS *NOT SUPPORTED* JOBNAMES *NOT SUPPORTED* OPTIONS LOCKMGR WRITER *NONE* SUBTRACE MODE BUFFER HEAD SUBS -------------------------------------------------------------- A1 ON 0100K ASIDS *NOT SUPPORTED* JOBNAMES *NOT SUPPORTED* OPTIONS CONNECT,RECOVERY WRITER *NONE* Verify that the writer is active If an external writer is being used, the operator should verify that the writer is active for the trace by entering one of the following DISPLAY TRACE commands on the console with MVS master authority. The command requests writer status for all current component traces; the second command requests it first for one writer by specifying the membername of the source JCL for the writer, such as WTDASD2. The response is in message IEE843I. display trace,wtr=all IEE843I ... display trace,wtr=wtdasd2 IEE843I ... The operator should verify that the source JCL for the writer in this display is the same as the source JCL for the writer that was started for the trace. If the membernames do not match, the component trace data identified in the display and the component trace; then is lost. The operator should stop the writer job start the correct writer source JCL and start the trace again. Component trace 369

398 Component Trace Viewing the component trace data During diagnosis, the system programmer performs the tasks, using IPCS. See z/OS MVS IPCS Commands for the COPYDUMP, COPYTRC, CTRACE, GTFTRACE, and MERGE subcommands. enter a COPYDUMP subcommand to move the 1. If your trace is in a dump in a SYS1.DUMPxx data set, dump to another data set. Use option 5.3 of the IPCS dialog to select the COPYDUMP subcommand. 2. For all traces on trace data sets, use a COPYTRC subcommand to reorder component trace records that are out of chronological sequence. Use option 5.3 of the IPCS dialog to select the COPYTRC subcommand. 3. If your trace is on multiple data sets, do one of the following to view the trace records in one chronological sequence, which is needed to understand what was happening when the problem occurred. The input data sets can be component trace data sets, SVC dumps, and stand-alone dumps. • Use the COPYTRC subcommand to combine the records on several data sets into a chronological sequence on one data set. Use this data set as input to the CTRACE subcommand, which formats the trace records. Use option 5.3 of the IPCS dialog to select the COPYTRC subcommand. • Use a MERGE subcommand to format trace records from one or more input data sets. MERGE lets you combine and format the following: – Component traces – GTF traces – Sublevel traces from one component on one trace data set – Sublevel traces from one component on separate trace data sets For sublevel traces, MERGE groups together the trace records for each sublevel. Use option 2.7 of the IPCS dialog to select the MERGE subcommand. MERGE allows you to issue individual CTRACE or GTFTRACE subcommands for each input data set. Table 61 on page 370 when formatting the component trace records . See 4. Use the subcommands in z/OS MVS IPCS Commands for the SHORT, SUMMARY, FULL, and TALLY report type keywords and other keywords for the CTRACE subcommand. Table 61: Subcommands that format component trace records Trace IPCS subcommand CTRACE OPTIONS parameter CTRACE COMP(SYSAPPC) See “Formatting a SYSAPPC trace” on page 375 SYSAPPC CTRACE COMP(SYSAXR) SYSAXR See “Formatting a SYSAXR trace” on page 386 See “SYSBCPII component trace” on page 387 SYSBCPII CTRACE COMP(SYSBCPII) CTRACE COMP(SYSBHI) See “SYSBHI component trace” on page 391 SYSBHI See “Formatting a SYSCEA trace” on page 397 SYSCEA CTRACE COMP(SYSCEA) None CTRACE COMP(SYSDLF) SYSDLF SYSDSOM CTRACE COMP(SYSDSOM) See “SYSDSOM component trace” on page 400 CTRACE COMP(SYSDUMP) See “SYSDUMP component trace” on page 402 SYSDUMP CTRACE COMP(SYSGRS) None SYSGRS SYSHZS CTRACE COMP(SYSHZS) See “SYSHZS component trace” on page 411 SYSIEFAL CTRACE COMP(SYSIEFAL) None CTRACE COMP(SYSIOS) See “Formatting a SYSIOS trace” on page 424 SYSIOS CTRACE COMP(SYSJES) See “Formatting a SYSJES trace” on page 429 SYSJES 370 z/OS: MVS Diagnosis: Tools and Service Aids

399 Component Trace Table 61: Subcommands that format component trace records (continued) CTRACE OPTIONS parameter Trace IPCS subcommand jes2 None jes2 ) SYS CTRACE COMP(SYS SYSLLA CTRACE COMP(SYSLLA) None SYSLOGR See “Formatting a SYSLOGR trace” on page 442 CTRACE COMP(SYSLOGR) See “Formatting a SYSOMVS trace” on page 446 CTRACE COMP(SYSOMVS) SYSOMVS See “Formatting a SYSOPS trace” on page 456 SYSOPS CTRACE COMP(SYSOPS) See “Formatting a SYSRRS trace” on page 462 SYSRRS CTRACE COMP(SYSRRS) None SYSRSM CTRACE COMP(SYSRSM) CTRACE COMP(SYSSPI) None SYSSPI None SYSTTRC CTRACE COMP(SYSTTRC) None CTRACE COMP(SYSVLF) SYSVLF SYSWLM CTRACE COMP(SYSWLM) None CTRACE COMP(SYSXCF) See “Formatting a SYSXCF trace” on page 490 SYSXCF CTRACE COMP(SYSXES) SYSXES See “Formatting a SYSXES trace” on page 495 If some of the output in a combined or merged trace data set is for a GTF trace, use a GTFTRACE subcommand to format the GTF records and a CTRACE subcommand to format the component trace records. See Chapter 10, “The Generalized Trace Facility (GTF),” on page 211 for GTF tracing. This example shows the CTRACE subcommand for a SYSXCF component trace, when the SERIAL and STATUS options are requested in the OPTIONS parameter. ctrace comp(sysxcf) options((serial,status)) SYSAPPC component trace Table 62 on page 371 summarizes information for requesting a SYSAPPC component trace for APPC/MVS. Table 62: Requesting SYSAPPC component trace for APPC/MVS Information For SYSAPPC: Parmlib member CTnAPPxx; there is no default member No; cannot turn trace ON or OFF in CTnAPPxx Default tracing In CTnAPPxx or REPLY for TRACE command Trace request OPTIONS parameter Buffer • Default: 32 MB • Range: 64 KB - 256 MB • Size set by: CTnAPPxx member or REPLY for TRACE command • Change size after IPL: Yes, while a trace is running • Location: In data space. A TRACE CT,OFF command requests a dump, which includes the trace buffers. Dataspace buffer Trace records location By the component when the operator stops SYSAPPC tracing with a TRACE Request of SVC dump CT,OFF command Component trace 371

400 Component Trace Table 62: Requesting SYSAPPC component trace for APPC/MVS (continued) Information For SYSAPPC: CTRACE COMP(SYSAPPC) Trace formatting by IPCS Trace format OPTIONS parameter NO Requesting a SYSAPPC trace Specify options for requesting a SYSAPPC component trace on a CTnAPPxx parmlib member or on the reply for a TRACE CT command. CTnAPPxx parmlib member on a CTnAPPxx parmlib member. You can specify the parameters listed in Table 63 on page 372 Table 63: CTnAPPxx parameters Allowed on CTnAPPxx? Parameters ON or OFF No Yes ASID JOBNAME Yes BUFSIZE Yes OPTIONS Yes SUB No PRESET No No LIKEHEAD No WTR No WTRSTART or WTRSTOP TRACE and REPLY commands and Table 65 on page 372 summarize the parameters you can specify on TRACE CT Table 64 on page 372 commands and a REPLY. Table 64: Parameters allowed on TRACE CT Allowed on TRACE CT for Trace? Parameters ON, nnnnK, nnM, or OFF One is required Required COMP No SUB Yes PARM Table 65: Parameters allowed on REPLY Parameters Allowed on REPLY for Trace? Yes ASID Yes JOBNAME 372 z/OS: MVS Diagnosis: Tools and Service Aids

401 Component Trace Table 65: Parameters allowed on REPLY (continued) Parameters Allowed on REPLY for Trace? Yes OPTIONS No WTR The component requests an SVC dump when the operator stops the trace. Automatic Dump: OPTIONS parameter shows the hierarchy of SYSAPPC APPC trace request options are . Figure 111 on page 373 hierarchical trace options. Each option traces its own events, plus all the events of the options below it. For example, if you specify the SCHEDULE trace option, the system also traces ENQWORK, DEQWORK, and ASMANAGE events. ┌────────────────────────┬──────────────┐ │ │ │ ┌──┴────┐ ┌──┴───┐ ┌───┴──┐ │ │ USERID │ │ NODUMP │ │ GLOBAL └───────┘ └──────┘ └───┬──┘ │ ┌─────┴────────────────┐ │ │ │ ┌───┴────┐ │ │ │ GLOBALQK │ └────────┘ │ ┌────────────────────────┬────────┴───────────┬─────────┬───────────┬──────────┐ │ │ │ │ │ │ ┌───┴───┐ ┌───┴────┐ ┌──┴──┐ ┌───┴───┐ ┌───┴──┐ ┌───┴────┐ │ INBOUND │ │ SCHEDULE │ │ VERBS │ │ CONVCLUP │ │ TRANSCH │ │ SERVER │ └───┬───┘ └──┬──┘ └────────┘ └───────┘ └──────┘ └───┬────┘ │ │ │ │ ┌────┴────┐ ┌─────────┼─────────┐ │ │ │ │ │ │ ┌───┴───┐ ┌───┴──┐ ┌───┴───┐ ┌───┴────┐ ┌──┴──┐ ┌───┴───┐ │ FMH5 │ │ FMH7 │ │ ENQWORK │ │ DEQWORK │ │ ASMANAGE │ │ PBI │ └───┬───┘ └───────┘ └───────┘ └────────┘ └─────┘ └──────┘ │ ┌───┴───┐ │ BADFMH5 │ └───────┘ Figure 111: Hierarchy of SYSAPPC Component Trace Options specified, SYSAPPC tracing always includes all exception (error) events. If no trace options are the trace output includes only the exception events. If you do not know where the errors are occurring, use the GLOBAL trace option to catch the full range of APPC/MVS events. GLOBAL can slow performance, but you will catch the error in one re-create. The values for the OPTIONS parameter for the CTnAPPxx parmlib member and reply for a TRACE command, in alphabetical order, are: ASMANAGE Traces events related to the creation and deletion of the APPC/MVS transaction scheduler's subordinate address space. ASMANAGE is a subset of SCHEDULE events. BADFMH5 Traces events related to incorrect FMH-5s. BADFMH5 is a subset of FMH-5 events. CONVCLUP Traces events related to conversation cleanup. CONVCLUP is a subset of GLOBAL events. DEQWORK Traces the process of removing work requests from an APPC/MVS scheduler queue. DEQWORK is a subset of SCHEDULE events. Component trace 373

402 Component Trace ENQWORK Traces the process of adding work requests to an APPC/MVS scheduler queue. ENQWORK is a subset of SCHEDULE events. FMH5 Traces FMH-5 events. FMH5 is a subset of INBOUND events. FMH7 Traces FMH-7 events. FMH7 is a subset of INBOUND events. GLOBAL Traces the full range of APPC/MVS events. GLOBALQK Traces a subset of important GLOBAL trace events. INBOUND Traces inbound transaction processor (TP) requests. INBOUND is a subset of GLOBAL events. NODUMP Specifies no dumping when the operator stops the SYSAPPC component trace. Otherwise, component trace requests an SVC dump with the trace data when the operator stops tracing with a TRACE CT,OFF command. IBM does not recommend the NODUMP option because the option makes obtaining the trace buffers difficult. The operator would have to identify the data space containing the buffers and specify it in a SLIP command or the reply for a DUMP command. PBI Traces events related to protocol boundary. PBI is a subset of VERBS events. RR Traces events related to the participation of APPC/MVS in resource recovery for protected conversations. RR is a subset of VERBS events. SERVER Traces events related to the APPC/MVS servers. SERVER is a subset of GLOBAL events. SCHEDULE Traces events related to the APPC/MVS transaction scheduler. SCHEDULE is a subset of GLOBAL events. TRANSCH Traces events related to APPC/MVS transaction scheduler interface support. TRANSCH is a subset of GLOBAL events. , userid USERID=( userid ) specified userid or userids. Specify the TSO/E userid of the person reporting Traces events for only the a problem with an APPC/MVS application. Specify from 1 through 9 userids. VERBS Traces events related to outbound TPs or LU services. VERBS is a subset of GLOBAL events. Examples of requesting SYSAPPC traces This section contains examples of how to request SYSAPPC traces. • Example 1: CTnAPPxx Member The member requests SERVER and VERBS options for the address space or spaces for the TSO/E userid JOHNDOE. TRACEOPTS OPTIONS('SERVER','VERBS','USERID=(JOHNDOE)') • Example 2: TRACE command specifying a parmlib member 374 z/OS: MVS Diagnosis: Tools and Service Aids

403 Component Trace The example specifies that options are to be obtained from the parmlib member CTWAPP03. trace ct,on,comp=sysappc,parm=ctwapp03 Specified in a REPLY • Example 3: TRACE Command with Options The example requests the same trace as Example 2, but all options in the REPLY. specifies trace ct,on,comp=sysappc * 15 ITT006A ... reply 15,options=(server,verbs,userid=(johndoe)),end • Example 4: TRACE Command Requesting GLOBAL Options The example requests GLOBAL options for all address spaces using APPC/MVS. trace ct,on,comp=sysappc * 14 ITT006A ... reply 14,options=(global),end Formatting a SYSAPPC trace Format the trace with an IPCS CTRACE COMP(SYSAPPC) subcommand. Its OPTIONS parameter specifies the options that select trace records to be formatted. Your formatting options depend to a great extent on the tracing options you requested. Use the options to narrow down the records displayed so that you can specifies no options, IPCS displays all the more easily locate any errors. If the CTRACE subcommand trace records. first option is either FILTER or CORRELATE, which are mutually exclusive; the first The options follow. The option controls how the other options select the records. FILTER options. The options specified The FILTER option selects the trace records that match only one of the that are valid with the FILTER option are: • AQTOKEN • CONVCOR • CONVID • FUNCID • INSTNUM • LUNAME • LUWID • NETNAME • SEQNUM • SESSID • TPIDPRI • TPIDSEC • URID • USERID The formats of the OPTION parameter with FILTER are: OPTION((FILTER,option)) OPTION((FILTER,option,option, ... ,option)) Component trace 375

404 Component Trace CORRELATE option and, for an The CORRELATE option selects the trace records that match a unspecified specified option, uses the option's default values. The DEFAULTS keyword defines how default values are found for the options. The options that are valid with the CORRELATE option are: unspecified • AQTOKEN • CONVCOR • CONVID • DEFAULTS • INSTNUM • LUNAME • LUWID • NETNAME • SEQNUM • SESSID • TPIDPRI • TPIDSEC • URID The formats of the OPTION parameter with CORRELATE are: OPTION((CORRELATE,option)) OPTION((CORRELATE,option,option, ... ,option)) AQTOKEN( ) allocate-queue-token Use with either the FILTER or CORRELATE option to specify an allocate queue token. The allocate- queue-token is an 8-byte hexadecimal string. ) conversation-correlator CONVCOR( Use with either the FILTER or CORRELATE option to specify a conversation correlation. The conversation-correlator is an 8-byte hexadecimal string. conversation-id ) CONVID( identifier. Use with either the FILTER or CORRELATE option to specify a conversation The conversation-id is a 4-byte hexadecimal string. ||DEFAULTS(NONEANYEXACT) unspecified Use only with the CORRELATE option to specify the values to be used for matching options. NONE Tells component trace to format only the trace records that match one or more of the specified options. NONE is the default. ANY Tells component trace to format: • Trace records matching one or more of the specified options. unspecified options. • Related trace records that match default values established for the unspecified first options found in the Component trace derives the defaults from the values for records that match any of the specified options. EXACT Tells component trace to format: • Trace records matching one or more of the specified options. 376 z/OS: MVS Diagnosis: Tools and Service Aids

405 Component Trace • Related trace records matching default values established for the unspecified options. options found in the first Component trace derives the defaults from the values for unspecified specified records that match options. all of the FUNCID( function-id ) Use only with the FILTER option to specify the APPC/MVS subcomponent trace records to format. Specify one function-id : 01 Recovery 02 Verb services 03 FMH-5 manager 04 Conversation manager 05 file System data manager (SDFM) 06 VTAM exits 07 LU manager 08 State machine 09 Test enablement 10 APPC/MVS scheduler (ASCH) 11 Transaction scheduler interface 12 Allocate queue services INSTNUM( instance-number ) Use with either the FILTER or CORRELATE option to specify the instance number for a logical unit of instance-number is a 6-byte hexadecimal string. work. The local-luname LUNAME( ) Use with either the FILTER or CORRELATE option to specify the LU name for the local logical unit of local-luname is an 8-byte EBCDIC character string. work. The LUWID( logical-unit-of-work-id ) Use either the FILTER or CORRELATE option to specify a logical unit of work identifier, which represents the processing a program performs from one sync point to the next. To specify the logical- , enter the hexadecimal string as it appears in the CTRACE report, without including unit-of-work-id blank spaces. NETNAME( network-name ) Use with either the FILTER or CORRELATE option to specify the network name for a logical unit of network-name is an 8-byte EBCDIC character string, which is the same as the network-ID work. The network-qualified LU name. portion of a SEQNUM( sequence-number ) Use with either the FILTER or CORRELATE option to specify the sequence number for a logical unit of work. The sequence-number is a 2-byte hexadecimal string. session-id ) SESSID( identifier. The session-id is an Use with either the FILTER or CORRELATE option to specify the session 8-byte hexadecimal string. Component trace 377

406 Component Trace TPIDPRI( tp-id ) The tp-id Use with either the FILTER or CORRELATE option to specify the primary TP identifier. is an 8- byte hexadecimal string. ) tp-id TPIDSEC( identifier, which is used Use with either the FILTER or CORRELATE option to specify the secondary TP is an 8-byte hexadecimal string. for multi-trans TPs. The tp-id ) unit-of-recovery-id URID( which Use with either the FILTER or CORRELATE option to specify a unit of recovery identifier, represents part of a TP's processing for a protected conversation. The unit-of-recovery-id is a 32-byte hexadecimal string. USERID( userid ) filter. The userid is an 8-byte EBCDIC Use only with the FILTER option to specify a userid as a character string. Examples of subcommands to format a SYSAPPC trace • Example 1: CTRACE subcommand to view all trace entries To view all the SYSAPPC trace records, enter: CTRACE COMP(SYSAPPC) • Example 2: CTRACE Subcommand to view exception entries To format abnormal SYSAPPC events, such as abends or VTAM return codes, enter: CTRACE COMP(SYSAPPC) EXCEPTION • Example 3: CTRACE subcommand for subcomponent To format all the records for one APPC/MVS subcomponent, enter the following subcommand. Use this subcommand to locate an error if you have narrowed the problem down to one subcomponent. CTRACE COMP(SYSAPPC) OPTIONS((FILTER,FUNCID(nn))) • Example 4: CTRACE subcommand to view a userid's entries To format all the records for userid JOHNDOE, who is experiencing problems, enter the following subcommand. If you specified the USERID option when requesting the trace, this formatting option is redundant. CTRACE COMP(SYSAPPC) OPTIONS((FILTER,USERID(JOHNDOE))) Output from a SYSAPPC Trace The following topics contain examples of different types of output produced by a SYSAPPC trace. CTRACE COMP(SYSAPPC) SHORT subcommand output The SHORT parameter shows one line of output for each trace record. Figure 112 on page 378 shows an example of SYSAPPC component trace output formatted with the SHORT parameter. VEFMH5XT 00004101 155705.182844 VEFMH-5 RECEIVED VEFMH5ER 00000101 155705.367233 VEFMH-5 IN TPEND Figure 112: CTRACE COMP(SYSAPPC) SHORT subcommand output The fields in each SHORT report line are: 378 z/OS: MVS Diagnosis: Tools and Service Aids

407 Component Trace Mnemonic For example, VEFMH5XT. Entry ID identifier The for the trace record. For example, 00004101. Time The time in hh:mm:ss.tttttt format. For example, 15:57:05.182844. Title The title of the record. For example, VE:FMH-5 RECEIVED. Each title begins with a that indicates prefix the APPC/MVS subcomponent that wrote the trace record. For example, VE, which represents the VTAM exits subcomponent. Table 66 on page 379 relates the title prefixes to their APPC/MVS subcomponents. prefixes and APPC/MVS subcomponents Table 66: Summary of the title Prefix Subcomponent AMI Verb services ASCH APPC/MVS scheduler (ASCH) Conversation manager CM ERROR Recovery FMH5 FMH-5 manager LUM LU manager PC Protected conversations SDFM MVS system data file manager (SDFM) Allocate queue services SF State machine SM Test enablement TE TSI Transaction scheduler interface VC Verb services VE VTAM exits VS Verb services CTRACE COMP(SYSAPPC) SUMMARY subcommand output in each trace record. An fields The SUMMARY parameter gives the line in the SHORT report and most example of SYSAPPC component trace output formatted with the SUMMARY parameter follows in Figure 113 on page 379 . SY1 PCESC 00007802 13:07:29.491950 PC:ENTRY STATE CHECK EXIT FUNCID... 02 USERID... IBMUSER JOBNAME.. APPC ASIDHOME. 001C ASIDPRI.. 001C TPIDPRI.. 00000000 TPIDSEC.. 00000000 SESSID... E723ED63 AAB04BDF CONVID... 01000014 CONVCOR.. 063313F8 0000000D AQTOKEN.. 00000000 LUWID... 10E4E2C9 C2D4E9F0 4BE9F0C3 F0C1D7F0 F36FDB2A C0220700 01 NETNAME.. USIBMZ0 LUNAME... Z0C0AP03 INSTNUM.. 6FDB2AC0 2207 SEQNUM... 0001 URID... AD355FDB 7EEFB000 00000007 01010000 Figure 113: CTRACE COMP(SYSAPPC) SUMMARY subcommand output fields in the SUMMARY report, after the first line, follow. See the SHORT report for the first line. The Component trace 379

408 Component Trace FUNCID of the APPC/MVS subcomponent that wrote the trace record. See the FUNCID option for An identifier identifiers. the USERID The system was processing work for this userid when the trace record event occurred. JOBNAME The name of the job that the system was processing when the trace record event occurred. ASIDHOME identifier The address space (ASID) of the primary address space the system was processing when the trace record event occurred. TPIDPRI _The TP identifier of a primary TP. (Multitrans TPs have a primary and a secondary TP.) TPIDSEC for a secondary TP. (Multitrans TPs have a primary and a secondary TP.) _The TP identifier SESSID identifier for a session. The CONVID The identifier for a conversation. AQTOKEN identifier for an allocate queue. The LUWID The fields refer to the logical unit of work: If the identifier for a logical unit of work. The following contain asterisks (). fields LUWID is either all zeros or not valid,* the NETNAME The network name for the logical unit of work. LUNAME The name of the local LU. INSTNUM The instance number for the logical unit of work. SEQNUM The sequence number for the logical unit of work. URID The for a unit of recovery. identifier CTRACE COMP(SYSAPPC) FULL subcommand output The FULL parameter gives all the data in the trace records. It contains the line in the SHORT report, the in the SUMMARY report, and KEY and ADDR fields. An example of SYSAPPC component trace output fields formatted with the FULL parameter follows in Figure 114 on page 381 . 380 z/OS: MVS Diagnosis: Tools and Service Aids

409 Component Trace SY1 PCESC 00007802 13:07:29.491950 PC:ENTRY STATE CHECK EXIT FUNCID... 02 USERID... IBMUSER JOBNAME.. APPC ASIDHOME. 001C ASIDPRI.. 001C TPIDPRI.. 00000000 TPIDSEC.. 00000000 SESSID... E723ED63 AAB04BDF CONVID... 01000014 CONVCOR.. 063313F8 0000000D AQTOKEN.. 00000000 LUWID... 10E4E2C9 C2D4E9F0 4BE9F0C3 F0C1D7F0 F36FDB2A C0220700 01 NETNAME.. USIBMZ0 LUNAME... Z0C0AP03 INSTNUM.. 6FDB2AC0 2207 SEQNUM... 0001 URID... AD355FDB 7EEFB000 00000007 01010000 KEY... 0015 ADDR... 066F26DA E4E2C9C2 D4E9F04B E9F0C3F0 C1D7F0F3 | USIBMZ0.Z0C0AP03 | KEY... 001A ADDR... 066F26EB E4E2C9C2 D4E9F04B E9F0C3F0 C1D7F0F4 | USIBMZ0.Z0C0AP04 | KEY... 0039 ADDR... 066F26A8 E3D9C1D5 D7C1D940 | TRANPAR | KEY... 0054 ADDR... 064162E4 00000000 | ... | KEY... 00A1 ADDR... 066F2640 00000000 | ... | KEY... 00A3 ADDR... 055683D4 00000000 | ... | KEY... 00A3 ADDR... 066F263C 00000000 | ... | KEY... 00A2 ADDR... 066F263A 00 | . | Figure 114: CTRACE COMP(SYSAPPC) FULL subcommand output See the SHORT report and the SUMMARY report for the fields in the report. IBM might need the KEY and for diagnosis. ADDR fields FMH-5 trace data FMH-5 trace records contain information useful for tracking TP flow and diagnosing the following types of problems: verification problems • Persistent • Password maintenance problems • APPC/MVS security problems To obtain FMH-5 data, request the SYSAPPC component trace with an FMH5, INBOUND, or GLOBAL option. To isolate the FMH-5 records in the trace output, enter the following IPCS subcommand: CTRACE COMP(SYSAPPC) OPTIONS((FILTER,FUNCID(03))) FULL gives the mnemonic and title for each FMH-5 trace record and explains the record. Table 67 on page 381 Most of the trace records have FMH-5 itself formatted in KEY field X'0012'. For the format of the FMH-5, see: z/OS Communications Server: SNA Programmer's LU 6.2 Guide • • z/OS Communications Server: SNA Programmer's LU 6.2 Reference . Table 67: FMH-5 trace entries in the SYSAPPC component trace Title Description/Action Mnemonic FMH5:BAD SECURITY COMBINATION APPC/MVS found an incorrect security option or security FMH5BDSC subfields or both. Contact the IBM Support Center. FMH5ERCV FMH5:FMH-5 RECEIVE FAILURE An FMH-5 was not successfully received by the local MVS LU. Contact the IBM Support Center. FMH5:FMH-5 COMMAND IS NOT VALID APPC/MVS detected an incorrect FMH-5 command. Contact FMH5INCD the IBM Support Center. Component trace 381

410 Component Trace Table 67: FMH-5 trace entries in the SYSAPPC component trace (continued) Description/Action Mnemonic Title An LU is not active. See the LUNAME field FMH5LUNA FMH5:LU IS NOT ACTIVE in the trace the status output. Enter a DISPLAY APPC command to find of this LU. specified correctly in the FMH-5. FMH5NOTP FMH5:TP NAME IS NOT RECOGNIZED The TP name was not The TP cannot be scheduled because no scheduler is FMH5:NOT SERVED AND NO SCHEDULER FMH5NSCH associated with the LU. The FMH-5 profile is incorrect; it is greater than 8 FMH5PFST FMH5:FMH-5 PROFILE IS NOT VALID characters. FMH5PIP profile initialization parameters (PIP) data FMH5:PIP DATA PRESENT IN FMH-5 APPC/MVS found in the FMH-5; PIP data is not valid in FMH-5 for APPC/MVS. FMH5:PW CONV CLEANUP FAILED FMH5PWCC Internal error. Contact the IBM Support Center. FMH5PWDE FMH5:PW DEALLOCATE FAILED Internal error. Contact the IBM Support Center. An attempt to attach the SIGNON/Change password TP FMH5PWDF FMH5:PW DEQUE REQUEST FAILED failed. Contact the IBM Support Center. FMH5:PW QUEUE REQUEST FAILED Internal error. Contact the IBM Support Center. FMH5PWQF FMH5PWRF FMH5:QW RACF REQUEST REJECTED Internal error. Contact the IBM Support Center. FMH5:PW RECEIVE DATA FAILED 1 FMH5PWR1 The __SIGNON/Change password TP attempted to perform a ReceiveandWait call for a GDS variable. See the following FMH5:PW RECEIVE DATA FAILED 2 FMH5PWR2 fields: KEY KEY X'007E' • contains the status received__ value returned to the SIGNON/Change password TP by ReceiveandWait. • contains the data received value__ returned KEY X'007F' to the SIGNON/Change password TP by ReceiveandWait. • KEY X'003F' contains the return code from__ ReceiveandWait. Make sure that your GDS variable was sent correctly. If you cannot resolve the problem, contact the IBM Support Center. FMH5PWSD FMH5:PW SEND DATA FAILED A SIGNON/Change password TP SendData call failed. Verify that your TP has a valid conversation established with the SIGNON/Change password TP. If you cannot resolve the problem, contact the IBM Support Center. FMH5:PW SEND MESSAGE FAILED FMH5PWSF signoff flow to the partner LU failed. A persistent verification The __SIGNEDONTO list in the partner LU may not be in sync with the local __SIGNEDONFROM list. See the following KEY fields: • KEY X'0026' contains the TCB address. KEY X'001A' contains the name of the partner LU. • Key X'002F' contains the userid of the user whose • SIGNOFF failed. If you cannot resolve the problem, contact the IBM Support Center. 382 z/OS: MVS Diagnosis: Tools and Service Aids

411 Component Trace Table 67: FMH-5 trace entries in the SYSAPPC component trace (continued) Description/Action Mnemonic Title APPC/MVS could not attach the X'30F0F5F2' expired FMH5PWSM FMH5:PW SEND MESSAGE notification password program to notify a partner system user that the user's password expired. See the following fields: KEY • contains the TCB address. KEY X'0026' • contains the name of the partner LU. KEY X'001A' contains the USERID of the user whose KEY X'002F' • attach request failed. If you cannot resolve the problem, contact the IBM Support Center. Internal error. Contact the IBM Support Center. FMH5PWSR FMH5:PW SIF RESERVE FAILURE The FMH-5 password is incorrect; it is greater than 8 FMH5PWST FMH5:FMH-5 PASSWORD IS NOT VALID characters. FMH5:FMFP QUEUE MANAGER FAILURE FMH5QMFL Internal error. Contact the IBM Support Center FMH5RECV FMH5:FMH-5 SUCCESSFULLY RECEIVED An FMH-5 was successfully received by the local MVS LU. FMH5RFRJ FMH5:RACF REQUEST REJECTED The system received a bad return code from one of the RACF services. See KEY X'0053' for a code identifying the RACF service that failed. The code can be one of the following: 1 RACROUTE REQUEST=VERIFY 2 RACROUTE REQUEST=SIGNON TYPE=SIGNIN 3 RACROUTE REQUEST=SIGNON TYPE=QSIGNON 4 RACROUTE REQUEST=SIGNON TYPE=SIGNOFF fields: See the following KEY contains the return code for the RACF • KEY X'0054' service request. contains the reason code for the RACF • KEY X'0055' service request. • contains the security authorization facility KEY X'0021' (SAF) return code for the service. APPC/MVS internal failure. Contact the IBM Support Center. FMH5SERF FMH5:APPC/MVS SERVICE FAILURE FMH5:SEND MESSAGE FAILED Persistent verification signoff flow to the partner LU failed. FMH5SFAL Make sure you have valid sessions established. See the following KEY fields: KEY X'0026' contains the TCB address. • KEY X'001A' contains the name of the partner LU. • FMH5SOFF FMH5:SIGNOFF FLOW Persistent verification signoff flow to the partner LU completed. See the following KEY fields: KEY X'0026' contains the TCB address. • KEY X'001A' contains the name of the partner LU. • FMH5SVFC FMH5:ACCEPTED BY SRVR FACILITIES APPC/MVS placed the inbound request on an allocate queue to await later processing by an APPC/MVS server. Component trace 383

412 Component Trace Table 67: FMH-5 trace entries in the SYSAPPC component trace (continued) Description/Action Mnemonic Title FMH5:FMH5 ACCEPTED FOR TESTING FMH5TEST An FMH-5 is accepted for testing. FMH5TPAD TP profile access denied. Request=AUTH failed. FMH5:TP PROFILE ACCESS DENIED FMH5TPNA is not active. Get the TP name from the FMH5:TP PROFILE IS NOT ACTIVE The TP profile FMH-5 formatted at KEY X'0012' in this trace record. Then profile. use the SDFM utility to look at the TP The system found no TP FMH5TPRQ for the requested TP. The FMH5:TP PROFILE IS REQUIRED profile profile. scheduler associated with the TP requires a TP The error is probably due to an SDFM problem. Look for trace prefix records with a of SDFM. FMH5UIST FMH5:FMH-5 USERID IS NOT VALID The FMH-5 user ID is incorrect; it is greater than 8 characters. An FMH-5 has been successfully validated. FMH5VALD FMH5:FMH5 SUCCESSFULLY VALIDATED FMH5XLNF FMH5:EXCHANGE LOG NAME FAILED APPC/MVS rejected the protected conversation because required log-name exchange processing did not occur. FMH5:FMAX QUEUE MANAGER FAILURE Internal error. Contact the IBM Support Center. QMANFAIL Internal error. Contact the IBM Support Center. RESVFAIL FMH5:SIF RESERVE FAILURE SYSAXR component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 The following summarizes information for requesting a SYSAXR component trace for System REXX component. Information For SYSAXR: Parmlib member CTIAXRnn. Default member: CTIAXR00 Default tracing Yes; error; error events In CTIAXRxx and REPLY for TRACE command Trace request OPTIONS parameter Buffer • Default: 2MB • Range: 1MB - 2GB • Size set by: CTIAXRnn parmlib member or REPLY to TRACE CT command • Change size after IPL: Yes, when restarting a trace after stopping it • Location: System REXX trace data space. Trace records location Address-space buffer; System REXX trace data space; trace data set By DUMP or SLIP command Request of SVC dump CTRACE COMP(SYSAXR) Trace formatting by IPCS Trace format OPTIONS Yes parameter 384 z/OS: MVS Diagnosis: Tools and Service Aids

413 Component Trace Requesting a SYSAXR trace Specify options for requesting a SYSAXR component trace in a CTIAXRxx parmlib member or on the reply for a TRACE CT command. Changing SYSAXR trace options after AXR has started requires stopping and restarting the trace. CTIAXRnn parmlib member The following table indicates the parameters you can specify in a CTIAXRnn parmlib member. Allowed on CTIAXRnn? Parameters No ON or OFF Yes ASID JOBNAME Yes Yes BUFSIZE OPTIONS Yes No MOD SUB No PRESET No LIKEHEAD No WTR Yes WTRSTART or WTRSTOP Yes The buffer size can be changed after IPL. To become effective the System REXX address space Note: (AXR) must be restarted. Specify the new buffer size in the BUFSIZE parameter in the CTIAXRnn member being used. The IBM supplied CTIAXR00 parmlib member initializes error tracing as soon as the System REXX address space starts. The contents of CTIAXR00 are: TRACEOPTS ON OPTIONS('ERROR') BUFSIZE(2M) TRACE and REPLY commands The following tables indicate the parameters you can specify on TRACE CT commands and a REPLY. Allowed on TRACE CT for Trace? Parameters One is required ON, OFF or nnnnM nnnnK or nnnnM No No SUB Yes PARM Allowed on TRACE CT for Write? Parameters WTRSTART or WTRSTOP One is required, if a writer is being used Allowed on REPLY for Trace? Parameters Yes ASID Component trace 385

414 Component Trace Parameters Allowed on REPLY for Trace? Yes JOBNAME OPTIONS Yes WTR Yes OPTIONS parameter The values for the OPTIONS parameter in the CTIAXRxx parmlib member and reply for a TRACE command are: ALL Trace everything. AXRCMD Trace Command function package events. AXRMLWTO Trace multiline WTO function package events. AXRWTO Trace WTO function package events. AXRWAIT Trace wait function package events. AXRINFO Trace information function package events. GETRXLIB Trace AXREXX REQUEST=GETREXXLIB events. CANCEL Trace AXREXX REQUEST=CANCEL events. COMMAND Trace System REXX command events. ERROR Trace error events. EXEC Traces only events that occur under the specified exec name. REXXARGS Trace all events associated with REXX arguments. REXXVARS Trace all events associated with REXX variables. RXCLIENT Trace events that occur under the invoker of AXREXX. RXSERVER Trace all server events. Formatting a SYSAXR trace Format the trace with an IPCS CTRACE COMP(SYSAXR) subcommand. Output from a SYSAXR Variables Trace Each trace record has a header associated with it, as Figure 115 on page 387 shows. This header is consistent among ALL trace records, although not all are filled in (for example, there is no fields for command processing). TracePrefixReqToken This is NOT an interface and should only be used for diagnostic purposes. Note: 386 z/OS: MVS Diagnosis: Tools and Service Aids

415 Component Trace DSECT TracePrefixType DS OD TracePrefixASID DS H Primary ASID when trace record cut TracePrefixAXREXXInvokersASID DS H Primary ASID when AXREXX invoked TracePrefixJobname DS D Jobname when trace record cut TracePrefixAXREXXInvokersJobname DS D Jobname when AXREXX was invoked [email protected] DS A TCB Address when AXREXX was invoked TracePrefixExecName DS D REXX exec name TracePrefixAXREXXInvokersHomeAsid DS A Home ASID when AXREXX was invoked DS CL2 Reserved TracePrefixReqToken DS 4F Trace request token type Figure 115: SYSAXR variables trace record header The following shows the formatted IPCS output produced from the CTRACE COMP(SYSAXR) subcommand after running a REXX exec invoked using the AXREXX programming interface with the CTRACE REXXVARS option enabled. SY1 REXXVARS 04130D06 20:40:59.969289 REXX VAR NAME 00330032 C1E7D9D4 C1C9D540 C1E7D9D4 | ...AXRMAIN AXRM | C1C9D540 006EAE88 C8C1D9D9 C9E2E540 | AIN .>.hHARRISV | 00320000 00005000 00000001 BF8C7970 | ...&...`. | 95690DB8 00000001 D4E8E5C1 D94BF1 | n...MYVAR.1 | The 1st 4 bytes following the header contains the index of the variable in the variable list (AXRArgLst). The remainder of the trace entry contains the value of the variable name. SY1 REXXVARS 04130D02 20:40:59.969292 REXX VAR BEFORE EXEC 00330032 C1E7D9D4 C1C9D540 C1E7D9D4 | ...AXRMAIN AXRM | C1C9D540 006EAE88 C8C1D9D9 C9E2E540 | AIN .>.hHARRISV | 00320000 00005000 00000001 BF8C7970 | ...&...`. | 95690DB8 00000001 0000000B 40404040 | n... | 40404040 4040F1 | 1 | The 1st 4 bytes following the header contains the index of the variable in the variable list (AXRArgLst). The next 4 bytes contain the length of the value. The remainder contains the value of the variable on input to the exec. SY1 REXXVARS 04140D04 22:01:15.525516 REXX VAR AFTER EXEC 00150032 C1E7D9D4 C1C9D540 C1E7D9D4 | ...AXRMAIN AXRM | C1C9D540 006EAE88 C8C1D9D9 C9E2E540 | AIN .>.hHARRISV | 00320000 00005000 00000000 BF8C8B61 | ...&.../ | 09A8845A 00000001 00000003 F1F0F1 | .yd!...101 | The 1st 4 bytes following the header contains the index of the variable in the variable list (AXRArgLst). The next 4 bytes should contain the length of the output. The next set of bytes should contain the output variable. If the result was truncated it will contain the truncated result. final value when the exec completed The input/output variable contained 1 on entry to the exec and its was 101. SYSBCPII component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 The following table summarizes information for requesting a SYSBCPII component trace for base control program internal interface (BCPii). Component trace 387

416 Component Trace Information For SYSBCPII: CTIHWI00 Parmlib member Default and only member: CTIHWI00. If no valid CTIHWI00 member exists, minimal tracing is activated at BPCPii address space initialization. Default tracing Minimal tracing is always in effect for SYSBCPII. If no valid CTIHWI00 member exists, if CTrace is turned OFF, or if CTrace is ON with no format specified, minimal tracing occurs. OPTIONS Trace request OPTIONS parameter In CTIHWI00 and REPLY for TRACE command Buffer • Size: 4M • Size set by: BCPii address space • Change size after IPL: No • Location: In the component data space Trace records location Data space buffer By DUMP or SLIP command, or by the component if trace is ON for SYSBCPII Request of SVC dump and a TRACE CT,OFF command is issued. Trace formatting by IPCS CTRACE COMP(SYSBCPII) Trace format OPTIONS parameter MIN, ALL Requesting a SYSBCPII trace Specify options for requesting a SYSBCPII component trace in a CTIHWI00 parmlib member or on a reply to a TRACE CT ,ON command. You can change options for SYSBCPII tracing while the trace is running. CTIHWI00 parmlib member The following table indicates the parameters you can specify on a CTIHWI00 parmlib member. Allowed on CTIHWI00? Parameters ON or OFF Yes OPTIONS Yes You cannot change the SYSBCPII component trace buffer size of 4M. The IBM-supplied CTIHWI00 parmlib member initializes minimal error tracing as soon as the HWIBCPII address space starts. The contents of CTIHWI00 are: TRACEOPTS ON OPTIONS(’MIN’) It is suggested that you use these default settings in the CTIHWI00 parmlib member, unless the IBM Support Center requests different tracing options for BCPii. If the CTIHWI00 parmlib member cannot be found during BCPii initialization, or if it is in error, minimal tracing will be activated. TRACE and REPLY commands The following tables indicate the parameters you can specify on TRACE CT commands and a REPLY. Parameters Allowed on TRACE CT for trace? One is required ON or OFF Required COMP 388 z/OS: MVS Diagnosis: Tools and Service Aids

417 Component Trace Parameters Allowed on TRACE CT for trace? SUB No PARM Yes Parameters Allowed on REPLY for trace? OPTIONS Yes You can change options while a SYSBCPII trace is running. OPTIONS parameter The values for the OPTIONS parameter for the CTIHWI00 parmlib member and reply for a TRACE command, in an alphabetical order, are: ALL Traces events listed for all the options, including module flow and tracing for every request in both success and failure paths. MIN Traces events related to BCPii component recovery, abnormal conditions, and other non-mainline paths. Examples of requesting SYSBCPII traces • The CTIHWI00 member requests ALL options. TRACEOPTS ON OPTIONS('ALL') • The TRACE command specifying a Parmlib Member trace ct,on,comp=sysbcpii,parm=ctihwi00 • The TRACE command with Options Specified in a REPLY trace ct,on,comp=sysbcpii * 8 ITT006A ... reply 8,options=(all),end • The TRACE command to Stop Tracing trace ct,off,comp=sysbcpii Formatting a SYSBCPII trace Format the trace with an IPCS CTRACE COMP(SYSBCPII) subcommand. Component trace 389

418 Component Trace Output from a SYSBCPII trace is an example of SYSBCPII component trace records formatted with the CTRACE Figure 116 on page 390 COMP(SYSBCPII) SHORT subcommand: COMPONENT TRACE SHORT FORMAT COMP(SYSBCPII) **** 07/25/2008 SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION ------- -------- -------- --------------- ------------- SY1 Message 10012130 13:50:09.359769 HWIPHCPI About to call HWIPHRES SY1 Request 100321C0 13:50:09.359963 HWIPHRES HSDB created SY1 State 10002007 13:50:09.361439 HWIPHARI Appl Extension located SY1 Request 1000200E 13:50:09.368871 HWIPHARI Session Elem defined SY1 Request 10002011 13:50:09.369177 HWIPHARI Request Elem created SY1 Request 10002005 13:50:09.369328 HWIPHARI Request Elem queued SY1 Request 10052220 13:50:09.374042 HWIPHSPI EDB Mds_MU created SY1 State 10072351 13:50:09.427487 HWIPHMNX Appl Extension located SY1 Request 10072352 13:50:09.427678 HWIPHMNX MDS_MU Req received Figure 116: Example: SYSBCPII component trace records formatted with CTRACE COMP(SYSBCPII) SHORT subcommand 390 z/OS: MVS Diagnosis: Tools and Service Aids

419 Component Trace CTRACE COMP(SYSBCPII) FULL subcommand output Figure 117 on page 391 is an example of SYSBCPII component trace records formatted with the CTRACE COMP(SYSBCPII) FULL subcommand. COMPONENT TRACE FULL FORMAT COMP(SYSBCPII) **** 07/25/2008 SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION ------- -------- -------- --------------- ------------- SY1 Message 10012130 13:50:09.359769 HWIPHCPI About to call HWIPHRES ASIDHOME. 0018 ASIDPRI.. 0018 JOBNAME.. HWIBCPII TCBADDR.. 005DFA48 KEY... 0004 LEN... 0026 COUNT... 0001 BCPii About to pass HSDB to HWIPHRES. SY1 Request 100321C0 13:50:09.359963 HWIPHRES HSDB created ASIDHOME. 0018 ASIDPRI.. 0018 JOBNAME.. HWIBCPII TCBADDR.. 005DFA48 KEY... 0005 LEN... 003C COUNT... 0001 C8E2C4C2 080100B4 7ED57A54 00000001 | HSDB...=N:... | 40000000 00000000 00000000 C8E6C9E2 | ...HWIS | C5D9E540 00000000 00000000 5C404040 | ERV ...* | 40404040 5C404040 40404040 | * | SY1 State 10002007 13:50:09.361439 HWIPHARI Appl Extension located ASIDHOME. 0018 ASIDPRI.. 0018 JOBNAME.. HWIBCPII TCBADDR.. 005DFA48 KEY... 0005 LEN... 0060 COUNT... 0001 C8E6C1E7 01100060 00F9000F 00000000 | HWAX...-.9... | 00000000 00000000 00000000 00000000 | ... | 00000000 00000000 00000000 00000000 | ... | 00000000 00000000 00000000 C8E6C9E2 | ...HWIS | C5D9E540 00000000 00000000 0000001C | ERV ... | 7F548228 00000000 00000000 00000000 | ".b... | SY1 Request 1000200E 13:50:09.368871 HWIPHARI Session Elem defined ASIDHOME. 0018 ASIDPRI.. 0018 JOBNAME.. HWIBCPII TCBADDR.. 005DFA48 KEY... 0005 LEN... 0080 COUNT... 0001 C8E2C540 01100080 C2BE9BC7 013E74E4 | HSE ...B..G...U | 00000000 00000000 7ED54FA0 00000018 | ...=N|... | 00FB2A00 005DFA48 00000060 00000001 | ...)...-... | 0000000D 005DFA48 E4E2C9C2 D4E2C340 | ...)..USIBMSC | E2C3E9D7 F9F0F140 00000000 00000000 | SCZP901 ... | 00000000 00000000 00000000 00000000 | ... | C8E6C9F0 F0F0F0F1 00000000 00C80000 | HWI00001...H.. | Figure 117: Example: SYSBCPII component trace records formatted with CTRACE COMP(SYSBCPII) FULL subcommand SYSBHI component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 Basic HyperSwap socket support component trace is described by the following attributes: • Trace buffers reside in 64-bit common ECSA. Size is controlled by the TRACE CT operator command. Component trace 391

420 Component Trace • Minimal and unexpected event tracing is activated during Basic HyperSwap management address space initialization. • Component trace buffers externalized through: – DUMP or SLIP operator command when the Basic HyperSwap management address space or a BHIHSRV address space is requested to be dumped. – SVC dumps issued by Basic HyperSwap management address space or the BHIHSRV address space. – MVS component trace (CTRACE) external writer. • Trace options revert to minimal event and exception tracing when the operator turns the trace off. The following summarizes information for requesting a SYSBHI component trace for Basic HyperSwap. Information For SYSBHI: CTIBHIxx; Default member: CTIBHI00 (IBM provides a sample in Parmlib member SYS1.SAMPLIB) Yes; error; error events Default tracing Trace request OPTIONS parameter In CTIBHIxx and REPLY for TRACE command Buffer • Default: 4MB • Range: 4MB - 64MB • Size set by: CTIBHIxx parmlib member or REPLY to TRACE CT command • Change size after IPL: Yes • Location: 64-bit Common Storage Area (ECSA) Address-space buffer; trace data sets Trace records location Request of SVC dump By DUMP or SLIP command when dumping the HyperSwap Management address space or one of the BHIHSRV address spaces CTRACE COMP(SYSBHI) Trace formatting by IPCS Yes Trace format OPTIONS parameter Requesting a SYSBHI trace Specify options for requesting a SYSBHI component trace in a CTIBHIxx parmlib member or on the reply for a TRACE CT command CTIBHIxx parmlib member The following table indicates the parameters you can specify in a CTIBHIxx parmlib member. Allowed on CTICEAnn? Parameters ON or OFF Yes No ASID JOBNAME No Yes BUFSIZE Yes OPTIONS No MOD SUB No No PRESET No LIKEHEAD 392 z/OS: MVS Diagnosis: Tools and Service Aids

421 Component Trace Parameters Allowed on CTICEAnn? Yes WTR Yes WTRSTART or WTRSTOP The IBM supplied CTIBHI00 parmlib member in SYS1.SAMPLIB can be used as a starting point for BHI CTRACE options. The contents of CTIBHI00 are: defining TRACEOPTS ON BUFSIZE(4M) OPTIONS('MINIMUM') TRACE and REPLY commands The following tables indicate the parameters you can specify on TRACE CT commands and a REPLY. Parameters Allowed on TRACE CT for Trace? One is required ON, OFF or nnnnM nnnnK or nnnnM No SUB No Yes PARM Parameters Allowed on TRACE CT for Write? One is required, if a writer is being used WTRSTART or WTRSTOP Allowed on REPLY for Trace? Parameters No ASID JOBNAME No OPTIONS Yes WTR Yes OPTIONS parameter The values for the OPTIONS parameter in the CTIBHIxx parmlib member and reply for a TRACE command are: ALL Trace everything. FLOW Trace the flow of all requests through their processing. INITTERM Trace the initialization and termination process of the BHIHSRV address spaces and tasks. MINIMUM Trace errors and unusual events. Formatting a SYSBHI trace Format the trace with an IPCS CTRACE COMP(SYSBHI) subcommand. Component trace 393

422 Component Trace Output from a SYSBHI trace shows an example of the formatted IPCS output produced from the CTRACE Figure 118 on page 394 COMP(SYSBHI) SHORT subcommand. COMPONENT TRACE SHORT FORMAT COMP(SYSBHI) **** 12/20/2012 SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION ------- -------- -------- --------------- ------------- SY1 InitMsg 00000001 19:20:28.105817 CTrace Initialized SY1 TskStrtd 00000002 19:20:28.105858 Task has been started SY1 BPXRslt 0000002B 19:20:28.106110 BPX Service Results SY1 BPXRslt 0000002B 19:20:28.107162 BPX Service Results SY1 RACFRslt 00000035 19:20:56.880588 Racf Results SY1 LognRejt 00000036 19:20:56.880589 Logon Rejection SY1 BPXRslt 0000002B 19:20:56.880626 BPX Service Results Figure 118: Example: formatted IPCS output produced from CTRACE COMP(SYSBHI) SHORT subcommand 394 z/OS: MVS Diagnosis: Tools and Service Aids

423 Component Trace Figure 119 on page 395 shows an example of the formatted IPCS output produced from the CTRACE COMP(SYSBHI) FULL subcommand. COMPONENT TRACE FULL FORMAT COMP(SYSBHI) **** 12/20/2012 SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION ------- -------- -------- --------------- ------------- SY1 InitMsg 00000001 19:20:28.105817 CTrace Initialized ASID... 0025 IssueMod. IOSHMSTR TCB... 005D6048 HSAITIdx. 00000000 MiscEbcd. CTrace Initialization Complete SY1 TskStrtd 00000002 19:20:28.105858 Task has been started ASID... 0025 IssueMod. IOSHMSRT TCB... 005D6048 HSAITIdx. 00000000 SY1 BPXRslt 0000002B 19:20:28.106110 BPX Service Results ASID... 0025 IssueMod. IOSHMSRT TCB... 005D6048 HSAITIdx. 00000000 BPXServ.. BPX1QDB - Querying DUB Status RetValue. 00000008 RetCode.. 00000000 RsnCode.. 00000000 SY1 BPXRslt 0000002B 19:20:28.107162 BPX Service Results ASID... 0025 IssueMod. IOSHMSRT TCB... 005D6048 HSAITIdx. 00000000 BPXServ.. BPX1ENV - Reg USS Shutdown Exit RetValue. 00000000 RetCode.. 00000000 RsnCode.. 00000000 SY1 RACFRslt 00000035 19:20:56.880588 Racf Results ASID... 0025 IssueMod. IOSHMSRT TCB... 005D6048 HSAITIdx. 00000000 MiscEbcd. Req=Verify Envir=Create RetCode.. 00000008 RetCode.. 00000008 RsnCode.. 00000000 SY1 LognRejt 00000036 19:20:56.880589 Logon Rejection ASID... 0025 IssueMod. IOSHMSRT TCB... 005D6048 HSAITIdx. 00000000 --- TOH Start --- Acronym.. TOH Version.. 01 Size... 00000038 Function Code: 000000C8 (Logon Request) User Token D4A8E396 92859540 40404040 40404040 | MyToken | BuffSize. 00000000 Buff_Off. 0000 Return Code: 00000390 (SAF or RACF not available or error) Reason Code: 05080800 RACROUTE Function : Req=Verify Envir=Create RACROUTE Return Code: 08 RACF Return Code : 08 RACF Reason Code: 00 --- TOH End --- SY1 BPXRslt 0000002B 19:20:56.880626 BPX Service Results ASID... 0025 IssueMod. IOSHMSRT TCB... 005D6048 HSAITIdx. 00000000 BPXServ.. BPX1SND - Reject Logon RetValue. 00000038 RetCode.. 00000000 RsnCode.. 00000000 SockTokn. 23B00000 Figure 119: Example: formatted IPCS output produced from CTRACE COMP(SYSBHI) FULL subcommand SYSCEA component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 Component trace 395

424 Component Trace The following summarizes information for requesting a SYSCEA component trace for common event adapter component. For SYSCEA: Information CTICEAnn; default member: CTICEA00 Parmlib member Yes; error; error events Default tracing In CTICEAxx and REPLY for TRACE command Trace request OPTIONS parameter Buffer • Default: 2MB • Range: 1MB - 2GB • Size set by: CTICEAnn parmlib member or REPLY to TRACE CT command • Change size after IPL: Yes, when restarting a trace after stopping it • Location: common event adapter trace data space. Trace records location Address-space buffer; common event adapter trace data space; trace data set Request of SVC dump By DUMP or SLIP command CTRACE COMP(SYSCEA) Trace formatting by IPCS Trace format OPTIONS parameter Yes Requesting a SYSCEA trace Specify options for requesting a SYSCEA component trace in a CTICEAxx parmlib member or on the reply for a TRACE CT command. Changing SYSCEA trace options after CEA has started requires stopping and restarting the trace. CTICEAnn parmlib member The following table indicates the parameters you can specify in a CTICEAnn parmlib member. Allowed on CTICEAnn? Parameters No ON or OFF ASID Yes JOBNAME Yes BUFSIZE Yes OPTIONS Yes No MOD SUB No No PRESET No LIKEHEAD Yes WTR WTRSTART or WTRSTOP Yes The buffer size can be changed after IPL. To become effective, the common event adapter address Note: space (CEA) must be restarted. Specify the new buffer size in the BUFSIZE parameter in the CTICEAnn member being used. 396 z/OS: MVS Diagnosis: Tools and Service Aids

425 Component Trace The IBM supplied CTICEA00 parmlib member initializes error tracing as soon as the common event adapter address space starts. The contents of CTICEA00 are: TRACEOPTS ON BUFSIZE(2M) OPTIONS('ERROR') TRACE and REPLY commands The following tables indicate the parameters you can specify on TRACE CT commands and a REPLY. Parameters Allowed on TRACE CT for Trace? One is required ON, OFF or nnnnM nnnnK or nnnnM No SUB No Yes PARM Parameters Allowed on TRACE CT for Write? WTRSTART or WTRSTOP One is required, if a writer is being used Allowed on REPLY for Trace? Parameters ASID Yes Yes JOBNAME Yes OPTIONS Yes WTR OPTIONS parameter The values for the OPTIONS parameter in the CTICEAxx parmlib member and reply for a TRACE command are: ALL Trace everything. CNTLFLOW Trace CNTLFLOW events. EVNTFLOW Trace EVNTFLOW events. JOBSFLOW Trace JOBSFLOW events. PDWBFLOW Trace PDWBFLOW events. ERROR Trace error events. Formatting a SYSCEA trace Format the trace with an IPCS CTRACE COMP(SYSCEA) subcommand. Component trace 397

426 Component Trace Output from a SYSCEA trace Figure 120 on page 398 shows an example of the formatted IPCS output produced from the CTRACE COMP(SYSCEA) FULL subcommand. COMPONENT TRACE FULL FORMAT COMP(SYSCEA) **** 06/09/2008 SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION ------- -------- -------- --------------- ------------- SY1 ALL 05030001 11:37:11.181208 CEA CTRACE DEBUG INFO FFF0003E 7F47A000 00000000 00000000 | .0.."... | 00000000 00000000 00000000 00028000 | ... | 00000000 00000000 7F74ACA0 01000000 | ..."... | 00000000 00000000 00000000 0000 | ... | SY1 CNTLFLOW 04010001 11:37:11.181208 CEAS SERVER 00160000 C3C5C140 40404040 008E2E88 | ...CEA ...h | C3C5C1E2 6DC9D5C9 E3C9C1D3 C9E9C5C4 | CEAS_INITIALIZED | C3C5C1E2 6DC9D5C9 E3C9C1D3 C9E9C5C4 | CEAS_INITIALIZED | 00000000 00000000 00000000 00000000 | ... | 00000000 00000000 00000000 | ... | SY1 PDWBFLOW 04400001 11:38:01.616152 ICIN--COMPONENT ID TABLE LOAD 00160000 C3C5C140 40404040 008E2E88 | ...CEA ...h | 00000001 00000000 | ... | SY1 CNTLFLOW 04010001 11:38:01.616156 CEAS SERVER 00160000 C3C5C140 40404040 008E2E88 | ...CEA ...h | E4E2E26D C9E26DE4 D7404040 40404040 | USS_IS_UP | 00000000 00000000 00000133 00000000 | ... | 00000000 00000000 00000000 | ... | SY1 PDWBFLOW 044F0001 11:45:26.522624 PDWB--DONE WITH GETINCIDENT 00160000 D4C5C7C1 F3404040 008FF1D8 | ...MEGA3 ..1Q | 00000000 00000000 00000000 00000000 | ... | Figure 120: Example: formatted IPCS output produced from CTRACE COMP(SYSCEA) FULL subcommand SYSDLF component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 The following summarizes information for requesting a SYSDLF component trace for the data lookaside facility (DLF). For SYSDLF: Information Parmlib member None Yes; always on when DLF is running Default tracing None Trace request OPTIONS parameter Buffer • Default: N/A • Range: N/A • Size set by: MVS system • Change size after IPL: No • Location: Data space. In the REPLY for the DUMP command, specify DSPNAME=('DLF'.CCOFGSDO) Trace records location Address-space buffer, data-space buffer 398 z/OS: MVS Diagnosis: Tools and Service Aids

427 Component Trace Information For SYSDLF: By DUMP or SLIP command Request of SVC dump Trace formatting by IPCS CTRACE COMP(SYSDLF) Trace format OPTIONS parameter None Requesting a SYSDLF trace The trace runs whenever DLF is in control. No actions are needed to request it. Formatting a SYSDLF trace Format the trace with an IPCS CTRACE COMP(SYSDLF) subcommand. The subcommand has no OPTIONS values. Output from a SYSDLF trace Figure 121 on page 399 is an example of DLF component trace records formatted with a CTRACE COMP(SYSDLF) FULL subcommand. It shows formatted exception records from the trace buffers. DLF COMPONENT TRACE FULL FORMAT COFRCVRY 00000000 15:47:40.397545 DLF RECOVERY ENTRY HASID... 000E SASID... 000E CPUID... FF170067 30900000 MODNAME. COFMCON2 ABEND... 840C1000 REASON.. 00000001 EPTABLE. CON2 EST2 ... ... ... ... ... ... ... ... COFRCVRY 00000001 15:47:40.397625 DLF RECOVERY EXIT HASID... 000E SASID... 000E CPUID... FF170067 30900000 MODNAME. COFMCON2 ABEND... 840C1000 REASON.. 00000001 RETCODE. 0000002C RSNCODE. 0000C200 FTPRTS.. C0000000 DATA... 00000000 Figure 121: CTRACE COMP(SYSDLF) FULL subcommand output The fields in the report are: COFRCVRY identifier The name or of the trace record. 00000000 identifier The in hexadecimal. 15:47:40.397545 The time stamp indicating when the record was placed in the trace table. HASID... 000E The home address space identifier. SASID... 000E The secondary address space identifier. CPUID... FF170067 30900000 identifier of the processor that placed the record in the trace table. The CALLER The address of the routine that issued a DLF service request. MODNAME COFMCON2 The name of the module that was running. ABEND... 840C1000 The abend that occurred and caused DLF to enter recovery. REASON.. 00000001 The reason code associated with the abend. Component trace 399

428 Component Trace EPTABLE. CON2 EST2 Information used for diagnosis by IBM. RETCODE. 0000002C The return code that was issued by the module that is exiting. RSNCODE. 0000C200 The reason code that was issued by the module that is exiting. FTPRTS.. C0000000 Information used for diagnosis by IBM. DATA... 00000000 Information used for diagnosis by IBM. SYSDSOM component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 The following summarizes information for requesting a SYSDSOM component trace for distributed SOMobjects (DSOM). For SYSDSOM: Information None Parmlib member Default tracing No Trace request OPTIONS parameter In REPLY for TRACE command Buffer • Default: N/A • Range: N/A • Size set by: MVS system • Change size after IPL: No • Location: Address space Trace records location Address-space buffer Request of SVC dump By DUMP or SLIP command Trace formatting by IPCS CTRACE COMP(SYSDSOM) Yes Trace format OPTIONS parameter Requesting a SYSDSOM trace Request the trace by specifying any non-zero value on the SOMDTRACELEVEL DSOM environment variable. Formatting a SYSDSOM trace Format the trace with an IPCS CTRACE COMP(SYSDSOM) subcommand. The subcommand has the following OPTIONS values: SKIPID Omits the jobname, ASID, and thread identifier from the output. 400 z/OS: MVS Diagnosis: Tools and Service Aids

429 Component Trace LONGFORM Tells the system to display detailed output. In the output, each trace function might have multiple trace elements, each on a separate line. If you do not specify LONGFORM, the default is SHORTFORM. Do not specify both LONGFORM and SHORTFORM on the OPTIONS parameter. SHORTFORM Tells the system to display abbreviated output. In the output, each trace function is on one line. SHORTFORM is the default value. Do not specify both LONGFORM and SHORTFORM on the OPTIONS parameter. Output from a SYSDSOM trace The output shown in Figure 122 on page 401 is an example of DSOM component trace records formatted with a CTRACE COMP(SYSDSOM) FULL OPTIONS((SKIPID,SHORTFORM)) subcommand. It shows formatted exception records from the trace buffers. DSOM COMPONENT TRACE FULL FORMAT KESYS522 METRETRN 00000004 21:31:34.864277 Return from method Entry to method: ImplRepository::somInit Figure 122: Example: DSOM component trace records formatted with CTRACE COMP(SYSDSOM) FULL OPTIONS((SKIPID,SHORTFORM)) Figure 123 on page 401 is an example of DSOM component trace records formatted with a CTRACE COMP(SYSDSOM) FULL subcommand. It shows formatted exception records from the trace buffers. COMPONENT TRACE FULL FORMAT SYSNAME(KESYS522) COMP(SYSDSOM) **** 09/29/1995 SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION ------- -------- -------- --------------- ------------- KESYS522 GETBUFF 00000001 21:31:30.198289 Get new trace buffer JOBNAME. KREPROC ASID... 0029 THREADID 04233100 00000000 Buffer address: 7F672508 KESYS522 METDEBUG 00000004 21:31:39.410681 Method debug JOBNAME. KREPROC ASID... 0029 THREADID 04233100 00000000 Entry to method: SOMOA::somInit KESYS522 METRETRN 00000005 21:31:40.000019 Return from method JOBNAME. KREPROC ASID... 0029 THREADID 04233100 00000000 Exiting method: SOMOA::somInit, RC(hex)=00000000, RSN=00000000 Figure 123: Example: DSOM component trace records formatted with CTRACE COMP(SYSDSOM) FULL The output shown in Figure 124 on page 402 is an example of DSOM component trace records formatted with a CTRACE COMP(SYSDSOM) FULL OPTIONS((SKIPID)) DSN('dsom.trace.dsn') subcommand. It shows formatted exception records from the trace buffers. Component trace 401

430 Component Trace COMPONENT TRACE FULL FORMAT SYSNAME(KESYS522) COMP(SYSDSOM) OPTIONS((SKIPID)) **** 09/29/1995 SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION ------- -------- -------- --------------- ------------- KESYS522 GETBUFF 00000001 21:31:30.198289 Get new trace buffer Buffer address: 7F672508 KESYS522 METDEBUG 00000004 21:31:39.410681 Method debug Entry to method: SOMOA::somInit KESYS522 METRETRN 00000005 21:31:40.000019 Return from method Exiting method: SOMOA::somInit, RC(hex)=00000000, RSN=00000000 Figure 124: Example: DSOM component trace records formatted with CTRACE COMP(SYSDSOM) FULL OPTIONS((SKIPID)) DSN('dsom.trace.dsn') in the report are: The fields KESYS522 The name of the system. METDEBUG The name of the trace event. 00000004 The decimal of the trace event. identifier 21:31:39.410681 The time stamp indicating when the record was placed in the trace table. ASID field. The ASID of the job listed in the JOBNAME JOBNAME. KREPROC The job name. THREADID 04233100 00000000 identifier. The POSIX thread Entry to method The entry to the somInit method in class SOMOA. Exiting Method The exit from the somInit method in class SOMOA. SYSDUMP component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 SDUMP component trace is described by the following attributes: • Trace buffers reside in 64-bit common storage area. Size is controlled by the TRACE CT operator command. • Tracing is activated during DUMPSRV address space initialization. • SDUMP CTRACE is captured at the end of the SDUMP capture phase and dumped at the end of the dump. If the trace data is needed at other times, you must request a new dump to collect the SDUMP CTRACE. • The MVS component trace (CTRACE) external writer can also capture SDUMP CTRACE. 402 z/OS: MVS Diagnosis: Tools and Service Aids

431 Component Trace • Trace options revert to minimal event tracing when the operator turns the trace off. The following table summarizes the information required to request a SYSDUMP component trace for SDUMP. For SYSDUMP: Information Parmlib member CTIDMPxx; Default member: CTIDMP00 Yes; full tracing Default tracing In CTIDMPxx and REPLY for TRACE CT command Trace request OPTIONS parameter Buffer • Default: 4MB • Range: 4MB – 32MB • Size set by: CTIDMPxx parmlib member or TRACE CT command • Change size after IPL: Yes • Location: 64-bit Common Storage Area Trace records location 64-bit Common Storage Area; trace data sets Externalizing trace data Included in every SDUMP; can also use external writer to write data to a trace data set CTRACE COMP(SYSDUMP) Trace formatting by IPCS IPCS trace format OPTIONS parameter None Maximum trace entry size 4050 bytes Requesting a SYSDUMP trace Specify options for requesting a SYSDUMP component trace in a CTIDMPxx parmlib member or on the reply for a TRACE CT command. CTIDMPxx parmlib member The following table indicates the parameters you can specify in a CTIDMPxx parmlib member. Allowed on CTIDMPxx? Parameters ON or OFF Yes ASID No JOBNAME No Yes BUFSIZE OPTIONS Yes No MOD No SUB No PRESET LIKEHEAD No Yes WTR Yes WTRSTART or WTRSTOP Component trace 403

432 Component Trace You can use the IBM supplied CTIDMP00 parmlib member in SYS1.PARMLIB as a starting point for defining SDUMP CTRACE options. The contents of CTIDMP00 are as follows: TRACEOPTS ON BUFSIZE(4M) OPTIONS('ALL') TRACE and REPLY commands The following tables indicate the parameters that you can specify on TRACE CT commands and a REPLY. Parameters Allowed on TRACE CT for Trace? ON, OFF or nnnnM One is required nnnnK or nnnnM No No SUB PARM Yes Parameters Allowed on TRACE CT for Write? WTRSTART or WTRSTOP One is required, if a writer is used Allowed on REPLY for Trace? Parameters No ASID No JOBNAME OPTIONS Yes WTR Yes OPTIONS parameter The following values are available for the OPTIONS parameter in the CTIDMPxx parmlib member and reply for a TRACE command: ALL Trace everything. MINIMUM Trace errors. Formatting a SYSDUMP trace Format the trace with an IPCS CTRACE COMP(SYSDUMP) subcommand. Output from a SYSDUMP trace Figure 125 on page 405 is an example of the formatted IPCS output that is produced from the CTRACE COPM(SYSDUMP) FULL subcommand. 404 z/OS: MVS Diagnosis: Tools and Service Aids

433 Component Trace COMPONENT TRACE FULL FORMAT COMP(SYSDUMP) **** 08/20/2014 SYSNAME MNEMONIC ENTRY ID TIME STAMP DESCRIPTION ------- -------- -------- --------------- ------------- S790 WtDSVSST 0000007F 17:59:02.744031 Wait for DSVSSTECB to be post ASID... 0005 IssueMod. IEAVTSST TCB... 004DFD90 RetnAddr. 89B0258A S790 LockSdmp 00000024 18:03:35.343314 Sdump is locked ASID... 001B IssueMod. IEAVAD00 TCB... 004FF200 RetnAddr. 862D28EC CVTSDBF.. 80950FF8 RTCTSDPL. 00000000 JobName.. DCMTESTC S790 DmpStrtd 00000002 18:03:35.343317 Sdump started ASID... 001B IssueMod. IEAVAD00 TCB... 004FF200 RetnAddr. 862D29D4 RTCTSDPL. 894CF620 S790 ClrStor 00000029 18:03:35.343782 Storage cleared for new dump ASID... 001B IssueMod. IEAVAD00 TCB... 004FF200 RetnAddr. 862D2A78 S790 EntyTSPR 00000013 18:03:35.343788 Entry at IEAVTSPR ASID... 001B IssueMod. ... TCB... 004FF200 RetnAddr. 812D6184 RTSDFNCD. 0001 S790 EntyTSPR 00000013 18:03:35.343795 Entry at IEAVTSPR ASID... 001B IssueMod. ... TCB... 004FF200 RetnAddr. 812D6184 RTSDFNCD. 0005 S790 SdumpPml 00000004 18:03:35.343813 Sdump PList after calling TSPR ASID... 001B IssueMod. IEAVAD00 TCB... 004FF200 RetnAddr. 862D3120 RTCTSDPL. 023CCF40 Sdump ParmList: +0000 10A19010 00000000 00000000 023CC838 | .~...H. | +0010 00000000 00000000 00000000 00000000 | ... | +0020 00000000 00000000 00C00003 25504000 | ...{...& . | +0030 00000000 00000000 00000000 00000000 | ... | +0040 00000000 00000000 00000000 00000000 | ... | +0050 00000000 00000000 090B03F0 00000000 | ...0... | +0060 00000000 00000000 00000000 00000000 | ... | +0070 00000000 00000000 00000000 00000000 | ... | +0080 00000000 00000000 025B4190 00000000 | ...$... | +0090 00000000 00000000 00000000 00000000 | ... | +00A0 00000000 00000000 00000000 00000000 | ... | +00B0 80000000 00000000 | ... | Title... DMPTESTC: Test case dump for >2G local capture optimization... S790 DumpSupp 00000006 18:03:35.343820 Dump is not being suppressed ASID... 001B IssueMod. IEAVAD00 TCB... 004FF200 RetnAddr. 862D33CC Figure 125: Example: SDUMP component trace records formatted with CTRACE COMP(SYSDUMP) FULL Viewing SDUMP CTRACE in IPCS Active You can view SDUMP CTRACE data in IPCS from active system storage. Ensure that the dump source is set to 'ACTIVE' and that the user has authorized READ access to the FACILITY class resource BLSACTV.ADDRSPAC. See "Active Storage Processing" in z/OS MVS IPCS User's Guide for more information. Component trace 405

434 Component Trace SYSGRS component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 The following summarizes information for requesting a SYSGRS component trace for global resource serialization. Information For SYSGRS: in GRSCNF00 Parmlib member CTnGRSxx; default member: CTIGRS00 specified member ring is active; CONTROL and Yes, if global resource serialization Default tracing MONITOR options star Default tracing Yes, if global resource serialization is active; CONTROL1, CONTROL2, SIGNAL0 and MONITOR options In CTnGRSxx and REPLY for TRACE command Trace request OPTIONS parameter Buffer • Default: 16MB • Range: 128KB - 2047MB (System rounds size up to nearest 64KB boundary.) • Size set by: CTnGRSxx member • Change size after IPL: Yes, when restarting a trace after stopping it • Location: In the GRS address space above the bar. Address-space buffer, trace data set Trace records location By DUMP or SLIP command Request of SVC dump “SYSGRS component trace” on page 406 Trace formatting by IPCS Trace format OPTIONS parameter FLOW, CONTROL, MONITOR, REQUEST, SIGNAL, and RSA. See “OPTIONS parameter” on page 407 for details on sub-options. Requesting a SYSGRS trace Specify options for requesting a SYSGRS component trace on a CTnGRSxx parmlib member or on the reply for a TRACE CT command. You can change options for SYSGRS tracing while the trace is running. CTnGRSxx parmlib member The following table indicates the parameters you can specify on a CTnGRSxx parmlib member. Parameters Allowed on CTnGRSxx? Yes ON or OFF No ASID No JOBNAME BUFSIZE Yes OPTIONS Yes No SUB No PRESET 406 z/OS: MVS Diagnosis: Tools and Service Aids

435 Component Trace Parameters Allowed on CTnGRSxx? No LIKEHEAD WTR Yes WTRSTART or WTRSTOP Yes specifies CTIGRS00 as the default. IBM-supplied GRSCNF00 parmlib member IBM-supplied CTIGRS00 parmlib member: Specifies • that GRS tracing is begun at IPL • The parmlib member contains: TRACEOPTS OFF This parameter turns off all SYSGRS tracing options except for the minimum options (MINOPS). section for information about the buffer size default and possible • See the “Specify buffers” on page 353 sizes. IBM recommends that you use the CTIGRS00 parmlib member, unless the IBM Support Center requests different tracing for global resource serialization. TRACE and REPLY commands The following tables indicate the parameters you can specify on TRACE CT commands and a REPLY. Allowed on TRACE CT for trace? Parameters ON, nnnnK, nnnnM, or OFF One is required. The buffer size can be changed only when the trace is OFF or the trace is ON. COMP Required No SUB Yes PARM Allowed on TRACE CT for writer? Parameters WTRSTART or WTRSTOP One is required, if a writer is being used Parameters Allowed on REPLY for trace? ASID No JOBNAME No Yes OPTIONS WTR Yes You can change options while a SYSGRS trace is running. However, to change the buffer size, you have to stop the trace and restart it with the new buffer size. OPTIONS parameter The values for the OPTIONS parameter for the CTnGRSxx parmlib member and reply for a TRACE command are listed below. The sub-options on the CONTROL, REQUEST, MONITOR, SIGNAL and FLOW, allow you to refine the set of events traced for the major option. When you select the major option, all events pertaining to that option are traced. However, you can select one or more of the sub-options instead of the major option and thus limit the trace to only those events included in the sub-options A major option, such as MONITOR, and all of its sub-options (in this case MONITOR0, specified. MONITOR1, and MONITOR2 through MONITORF) is referred to as an option group. In alphabetical order the values for the OPTIONS parameter are: Component trace 407

436 Component Trace CONTROL or termination of the Traces unusual events and events related to the establishment, modification, control structure needed for processing such as: • Dynamic RNL changes • Error events • XCF services used when setting up for processing When you specify CONTROL, all of the following sub-options are traced. CONTROL0 Traces dynamic RNL changes only. CONTROL1 Traces events related to the establishment of or termination of membership in the global resource serialization group connection to the global resource serialization coupling facility structures. CONTROL2 Traces global resource serialization recovery processing only. CONTROL3 Traces global resource serialization resource manager events for abnormal task and ASID termination only. CONTROL4-CONTROLE Reserved for IBM use. CONTROLF Traces all other unusual events not included in sub-options CONTROL0 through CONTROL3. FLOW Traces the flow of control from one entry point to another. FLOW0 Traces GRS Star system server processing only. FLOW1 Traces GQSCAN processing only. FLOW2 Traces cross-system communications processing only. FLOW3 Traces command processing only. FLOW4 Traces storage manager services only. FLOW5 Traces coupling facility processing only. FLOW6 Traces initialization processing only. FLOW7 Traces contention monitor processing only. FLOW8 Traces general ENQ/DEQ processing only. FLOW9 Traces entry to GQSCAN/ISGQUERY only. FLOWA Traces GRS Latch Manager processing only. FLOWB-FLOWD Reserved for IBM use. 408 z/OS: MVS Diagnosis: Tools and Service Aids

437 Component Trace FLOWE Activates extended tracing for the GRS Storage Manager. Do not turn on this option without direction from IBM Service. FLOWF Reserved for IBM use. Monitor Traces events for selected global resource serialization invocations of monitoring and communication services provided by other components. MONITOR0 Traces use of XES services. MONITOR1 Traces use of XCF services. MONITOR2-MONITORF Reserved for IBM use. REQUEST Traces events for global ENQ, DEQ, GQSCAN, and RESERVE macro requests, and GRS command processing. REQUEST0 Traces ENQ/RESERVE requests only. REQUEST1 Traces DEQ requests only. REQUEST2 Traces GQSCAN only. REQUEST3 Traces IXLLOCK only. REQUEST4 Traces command processing only. REQUEST5 Traces lock structure (ISGLOCK) rebuild processing only. REQUEST6-REQUESTF Reserved for IBM use. RSA Traces events for RSA control information. SIGNAL Traces events for selected global resource serialization invocations of cross-system coupling facility (XCF) signalling service processing. SIGNAL0 Traces migration signals only. SIGNAL1 Traces GQSCAN signals only. SIGNAL2 Traces ENQ/DEQ signals, including RNL change signals only. SIGNAL3 Traces contention monitor signals only. SIGNAL4-SIGNALF Reserved for IBM use. Examples of requesting SYSGRS traces • Example 1: CTnGRSxx member Component trace 409

438 Component Trace The member requests CONTROL, MONITOR, and RSA options and doubles the default buffer size. TRACEOPTS ON OPTIONS('CONTROL','MONITOR','RSA') BUFSIZE(32M) • Example 2: TRACE command The example requests a trace of CONTROL, MONITOR, and REQUEST trace events. trace ct,on,comp=sysgrs * 17 ITT006A ... reply 17,options=(control,monitor,request),end Formatting a SYSGRS trace Format the trace with an IPCS CTRACE COMP(SYSGRS) subcommand. It is possible to use the OPTIONS subcommand for COMP (SYSGRS) with values of FLOW, CONTROL, REQUEST, MONITOR, SIGNAL, and RSA for filtering. Output from a SYSGRS trace Figure 126 on page 410 is an example of SYSGRS component trace records formatted with the CTRACE COMP(SYSGRS) SHORT subcommand. SYSGRS COMPONENT TRACE SHORT FORMAT GRPXCNTL 00000030 13:05:59.858746 GROUP EXIT IN CONTROL DISRUPT 0000000E 13:05:59.858780 RING DISRUPTION TRIGGERED MAINRF1 0000000B 13:05:59.860196 MAIN RING FAILURE CEXBCI1 0000000C 13:05:59.860324 CONTROL EXITED FROM ISGBCI SETUS 00000035 13:06:00.031243 CALL TO XCF SETUS SERVICE GRPXCNTL 00000030 13:06:00.141669 GROUP EXIT IN CONTROL STAXIN 00000033 13:06:00.160559 STATUS EXIT IN CONTROL . . . Figure 126: Example: SYSGRS component trace records formatted with CTRACE COMP(SYSGRS) SHORT Figure 127 on page 411 is an example of SYSGRS component trace records formatted with the CTRACE COMP(SYSGRS) TALLY subcommand. 410 z/OS: MVS Diagnosis: Tools and Service Aids

439 Component Trace COMPONENT TRACE TALLY REPORT COMP(SYSGRS) TRACE ENTRY COUNTS AND AVERAGE INTERVALS (IN MICROSECONDS) FMTID COUNT INTERVAL MNEMONIC DESCRIBE -------- -------- ------------ -------- -------------------------------- 00000001 0 RSAIN1 RSA has no CMD area no QWB data 00000002 0 RSAIN2 RSA has QWB data but no CMD area 00000003 0 RSAIN3 RSA has CMD area but no QWB data 00000004 0 RSAIN4 RSA has CMD area and QWB data 00000005 0 RSAOUT1 RSA has no CMD area no QWB data 00000006 898 2,037,854 RSAOUT2 RSA has QWB data but no CMD area 00000007 0 RSAOUT3 RSA has CMD area but no QWB data 00000008 8 149,924,356 RSAOUT4 RSA has CMD area and QWB data 00000009 5 328,792,726 INVBBE1 ISGBBE - QMERGE 0000000A 0 INVBBE2 ISGBBE - not QMERGE 0000000B 4 490,847,959 MAINRF1 Main Ring Failure 0000000C 13 149,346,135 CEXBCI1 Control Exited from ISGBCI 0000000D 0 CLNQSCD Cleanup after Quiesced from ring . . . . . . . . . 00000058 0 UEVENT8 Recovery during write 00000059 0 UEVENT9 Recovery during read 0000005A 0 UEVENTA Remote discarded message Total trace entries: 1,120 Figure 127: Example: SYSGRS component trace records formatted with the CTRACE COMP(SYSGRS) TALLY SYSHZS component trace Before using this component trace, ensure that you have read: • “Planning for component tracing” on page 350 • “Obtaining a component trace” on page 358 • “Viewing the component trace data” on page 370 The following summarizes information for requesting a SYSHZS component trace for IBM Health Checker for z/OS. For SYSHZS: Information Parmlib member CTIHZS00 Default tracing Yes Trace request OPTIONS parameter In CTIHZS00 and REPLY for TRACE command Buffer • Default: 4MB • Range: 16KB - 4MB (System rounds size up to nearest 64KB boundary.) • Size set by: CTIHZS00 member • Change size after IPL: Yes, when restarting a trace • Location: In the IBM Health Checker for z/OS address space Trace records location Address-space buffer Request of SVC dump By DUMP or SLIP command Trace formatting by IPCS CTRACE COMP(SYSHZS) - see “Output from a SYSHZS trace” on page 413 None Trace format OPTIONS parameter Component trace 411

440 Component Trace Requesting a SYSHZS trace Specify options for requesting a SYSHZS component trace on a CTIHZS00 parmlib member or on the reply for a TRACE CT command. You can change options for SYSHZS tracing while the trace is running. CTIHZS00 parmlib member The following table indicates the parameters you can specify on a CTIHZS00 parmlib member. Allowed on CTIHZS00 Parameters Yes ON or OFF No ASID JOBNAME No Yes BUFSIZE OPTIONS Yes SUB No PRESET No No LIKEHEAD WTR Yes Yes WTRSTART or WTRSTOP IBM supplies the CTIHZS00 parmlib member, which specifies the IBM Health Checker for z/OS tracing begun at IPL. The contents of CTIHZS00 are: TRACEOPTS OFF This parameter turns off all SYSHZS tracing options. If additional SYSHZS tracing options are turned on, additional buffer space might be required. The default trace buffer size is 4MB. IBM recommends that you use the CTIHZS00 parmlib member, unless the IBM Support Center requests different tracing for IBM Health Checker for z/OS. TRACE and REPLY commands The following tables indicate the parameters you can specify on TRACE CT commands and a REPLY. Allowed on TRACE CT for trace? Parameters One is required ON, nnnnK, nnnnM, or OFF COMP Required No SUB No PARM Allowed on TRACE CT for writer? Parameters WTRSTART or WTRSTOP One is required, if a writer is being used Allowed on REPLY for trace? Parameters No ASID 412 z/OS: MVS Diagnosis: Tools and Service Aids

441 Component Trace Parameters Allowed on REPLY for trace? No JOBNAME Yes OPTIONS WTR Yes You can change options while a SYSHZS trace is running. However, to change the buffer size, you have to stop the trace