Steps for diagnosing an enabled loop

Verify the system is in an enabled loop by examining the activity in the system trace table.

  1. Enter the IPCS SYSTRACE ALL TIME(LOCAL) command. The following is an example of the system trace table output:
    Figure 1. System trace table entry
    --------------------------------------------------- SYSTEM TRACE TABLE --------------------------------------------------- 
    ------------------ 
    ---- ------------------ --
    PR ASID WU-ADDR- IDENT CD/D PSW----- ADDRESS- UNIQUE-1 UNIQUE-2 UNIQUE-3 PSACLHS- PSALOCAL PASD SASD TIMESTAMP-LOCAL 
    UNIQUE-4 UNIQUE-5 UNIQUE-6 PSACLHSE DATE-05/08/2006 
    05-004C 00000000 EXT 1005 077C6000 951AFBD0 00001005 00000000 00000000 0301 004C 11:00:24.184339 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBB2 00001005 00000000 00000000 0301 004C 11:00:24.184681 0000000 
    05-004C 031F6478 SSRB 077C6000 951AFBB2 00000000 04979298 00 00000000 0301 004C 11:00:24.184683 00000000 
    05-004C 00000000 EXT 1005 077C6000 951AFBA6 00001005 00000000 00000000 0301 004C 11:00:24.185024 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBD8 00001005 00000000 00000000 0301 004C 11:00:24.185366 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBD0 00001005 00000000 00000000 0301 004C 11:00:24.185708 00000000
    05-004C 031F6478 SSRB 077C6000 951AFBD0 00000000 04979298 00 00000000 0301 004C 11:00:24.185710 00000000 
    05-004C 00000000 EXT 1005 077C6000 951AFBC0 00001005 00000000 00000000 0301 004C 11:00:24.186051 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBD0 00001005 00000000 00000000 0301 004C 11:00:24.186393 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBAC 00001005 00000000 00000000 0301 004C 11:00:24.186734 00000000
    05-004C 031F6478 SSRB 077C6000 951AFBAC 00000000 04979298 00 00000000 0301 004C 11:00:24.186737 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBD0 00001005 00000000 00000000 0301 004C 11:00:24.187082 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBAC 00001005 00000000 00000000 0301 004C 11:00:24.187423 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBB2 00001005 00000000 00000000 0301 004C 11:00:24.187765 00000000
    05-004C 031F6478 SSRB 077C6000 951AFBB2 00000000 04979298 00 00000000 0301 004C 11:00:24.187767 00000000
    05-004C 00000000 EXT 1005 077C6000 951AFBD4 00001005 00000000 00000000 0301 004C 11:00:24.188108
    The columns represent:
    • The PR, ASID, and TCB-ADDR columns tell you who is executing
    • The IDENT CD/D columns tell you the type of event
    • The PSW column tells you where
    • The UNIQUE columns tell you how
    • The PASD tells you which ASID is being addressed
    • The TIMESTAMP tells you when.
  2. To diagnose an enabled loop, look for patterns of repetitive entries in system trace. Typically, the bounds of an enabled loop are identified by the PSW addresses in EXT, CLKC, and IO events. In the preceding example, the bounds of the loop appear to go from PSW address 151AFBA6 to 151AFBD0.
  3. Enter the IPCS WHERE command on these PSW addresses to determine which module or CSECT the loop is in or browse storage at that location. For example, under IPCS Option 1:
    Command ==> 
    
    CURRENT DEFAULTS: 
    Source ==> DSNAME('H44IPCS.PMR59356.B019.DUMP') 
    Address space ==> ASID(X'0001')
    
    OVERRIDE DEFAULTS: 
    Source ==> DSNAME('H44IPCS.PMR59356.B019.DUMP') 
    Address space ==> ASID(X'301')
    
    Password ==> 
    POINTER: 
    Address ==> 151AFBA6
    Remark ==> ASID(X'0301') 
    Browse backward (PF 7) looking for an module or CSECT identifier.
    Command ===> 
    151AEEA0 1606B1F8 00000000 00000000 00000000 | ...8............ |
    151AEEB0 00000000 04000005 00000000 00000000 | ................ |
    151AEEC0.:151AEECF. LENGTH(X'10')--All bytes contain X'00' 
    151AEED0 00000000 80000000 00000000 00000000 | ................ |
    151AEEE0 00000000 00000000 03002100 30004001 | .............. . |
    151AEEF0.:151AEF0F. LENGTH(X'20')--All bytes contain X'00' 
    151AEF10 40000000 00000000 00000000 00000000 | ............... |
    151AEF20.:151AEFFF. LENGTH(X'E0')--All bytes contain X'00' 
    151AF000 90ECDDB4 A7C50046 151B0688 C3D8D4D6 | ....xE.....hCQMO |
    151AF010 D9C5C4C3 40404040 4040F0F3 61F0F261 | REDC 03/02/ |
    151AF020 F0F6F1F9 4BF4F740 40404040 40404040 | 0619.47 |
    151AF030 40404040 4040D6E2 40404040 F2F2F040 | OS 220 |
    151AF040 D7D2F2F0 F6F0F040 F5F6F9F7 60C9F0F3 | PK20600 5697-I03 |
    151AF050 404D835D 40D99683 9285A340 E29686A3 | ............... |
    151AF060 A6819985 6B40C995 834B40F1 F9F9F96B | ............... |
    151AF070 40F2F0F0 F640C193 9340D989 8788A3A2 | ............... |
    151AF080 40D985A2 8599A585 844B4000 00000000 | ............... |
    Browse backward (PF 7) looking for an module or CSECT identifier.
  4. Obtain the PSW addresses from the system trace entries involved in the loop. For ANALYZE output and SUMMARY KEYFIELD CURRENT output, use the TCB address.

    If using a PSW address, ignore the leftmost bit of the leftmost digit. The leftmost bit of the leftmost digit denotes addressing mode and is not part of the address.

  5. Do one of the following actions, for each address in the loop:
    • If analyzing the dump interactively, use the address in a WHERE subcommand to obtain the name of the load module.
    • If analyzing printed output, find the address:
      • In dump output from the LIST or VERBEXIT SUMDUMP subcommand. Look for the CSECT name eye-catcher. IBM® module names are generally followed by an assembly date and a product identifier or PTF level, such as HBB7720 or UY01234; most eye-catchers are at the beginning of a module, but some are at the end.
      • In a module listed for the LPAMAP or VERBEXIT NUCMAP subcommand. LPAMAP will list load modules. Use AMBLIST to obtain the offsets of CSECTS within those load modules. NUCMAP lists CSECTs with offsets, but can only be used for modules within the nucleus.
      In the following example, STATUS CPU output and WHERE subcommand, the PSW identifies the address as X'13206AA'.
      CPU STATUS:
      
       PSW=040C2000  813206AA  (RUNNING IN PRIMARY, KEY 0,  AMODE 31, DAT ON)
           DISABLED FOR PER I/O EXT
         ASID(X'0006') 013206AA. IEANUC01.IXLM2SP+07AA IN READ ONLY NUCLEUS
        ASCB1 at FD1780, JOB(*MASTER*), for the home ASID
        ASXB1 at FD1A30 for the home ASID. No block is dispatched
        HOME ASID: 0001 PRIMARY ASID: 0006 SECONDARY ASID: 0006
      Using the WHERE subcommand, the load module name is IXLM2SP plus an offset of 7AA.
      ASID(X'0006') 013206AA. IEANUC01.IXLM2SP+07AA IN READ ONLY NUCLEUS
  6. From the module prefix, identify the component, subsystem, or product, if provided by IBM.

    Use the module name to query the SMP/E zone for a module entry with that module name. If the search does not find a match, the module is not an IBM module. If the search indicates a match, use the FMID to positively identify the product.

  7. Continue diagnosis as follows:
    • If all the addresses are in components of z/OS, continue with Searching the problem reporting databases.
    • If all the addresses are in an IBM subsystem or product, continue diagnosis with the diagnosis book for the subsystem or product.
    • If all the addresses are in components of z/OS and in an IBM subsystem or product, continue with Searching the problem reporting databases and with the diagnosis book for the subsystem or product.
    • If any of the addresses are in an installation-provided program, including an installation exit routine, continue diagnosis with that program, using the dump.

      If some addresses are in the program or routine and some in system modules, the loop is probably in the program or routine and includes one or more requests for system services.

Related information: