Steps for diagnosing an enabled wait state

  1. Verify that IPCS STATUS CPU report shows every CPU in a no work wait:
    CPU(X'00') STATUS:                     
     PSW=07060000 00000000 00000000 00000000
         No work wait                       
       CPU is in no work wait  
  2. Enter the IPCS ANALYZE EXCEPTION command to look for resource contention.
    		CONTENTION EXCEPTION REPORT
    
    JOBNAME=PMIMTAPE  ASID=0065  TCB=007DD0F8                                 
                                                                              
    JOBNAME=PMIMTAPE HOLDS THE FOLLOWING RESOURCE(S):                         
                                                                              
       RESOURCE #0003:  There are 0025 units of work waiting for this resource
          NAME=MAJOR=SYSIEFSD MINOR=Q4 SCOPE=SYSTEM                           
                                                                              
     STATUS FOR THIS UNIT OF WORK:                                            
       This address space is on the SRM IN queue.                             
    JOBNAME=PCICBDTS  ASID=0266  TCB=008723A0                                  
                                                                               
    JOBNAME=PCICBDTS HOLDS THE FOLLOWING RESOURCE(S):                          
                                                                               
       RESOURCE #0002:  There are 0022 units of work waiting for this resource 
          NAME=MAJOR=SYSIEFSD MINOR=Q10 SCOPE=SYSTEM                           
    STATUS FOR THIS UNIT OF WORK:                                             
       This address space is on the SRM IN queue.                              
                                                                               
    ********************************************************* END OF DATA *****
    If resource contention exists, use the IPCS FIND command on the TCB or SSRB address that is identified as the holder of a resource in the analyze exception report to see if the TCB is waiting for any other resources. If found waiting, get the TCB or SSRB address of the holder of that resource and repeat the process until the bottom of the contention chain is reached.
  3. Enter an IPCS SUMMARY FORMAT JOBNAME(xyz) for the holder of the resource in contention.
  4. Use the IPCS FIND command to locate the TCB or SSRB that is identified as the holder of the resource. If found waiting, get the TCB/SSRB address of the holder of that resource and repeat the process, until the bottom of the contention chain is reached.
    1. If the holder of the resource is a TCB, go to Examining the TCB status.
    2. If the holder is an SSRB, either find the SSRB in the SUMMARY FORMAT output or format the SSRB control blocks with the IPCS CBFORMAT srb address STR(SRB) command. Using the PSW address from the CPSW field, use the IPCS WHERE command or browse storage to find the module name that determines where the SRB was last running.
      For example:
      SSRB: 02451200                                                                                                                  
          +0000  ID....... SSRB      FLNK..... 02452900  ASCB..... 00F72D00  CPAF..... 0000      PASI..... 006C      PTCB..... 007E2250
          +0014  EPA...... 00000000  RMTR..... 8142F3D8  PARM..... 00000000  WEB...... 01DF0598  PKF...... 00        FLGS..... 08      
          +0026  HLHI..... 00        FLGS..... 00        FRRA..... 00000000                                                            
          +0030  FPRS..... 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000            TRAN..... 00000000
          +0054  SAFN..... 0000      TYPE..... 0C                                                                                      
          +0058                      GPR0..... 00000000  GPR1..... 00000000  GPR2..... 00000041  GPR3..... 01DDE4C8  GPR4..... 00000000
          +006C  GPR5..... 00000000  GPR6..... 00000000  GPR7..... 00000000  GPR8..... 00000000  GPR9..... 00000000  GPRA..... 00000000
          +0084  GPRB..... 014228AF  GPRC..... 814218B0  GPRD..... 7F01E388  GPRE..... 0186926E  GPRF..... 00000000                    
                                                                                                                                       
          +0098  CPSW..... 070C0000  81421ED0            CPUT..... 00FFFFFF  FF4AF580            TIME..... 00000000  009C49C0          
          +00B0  XSB...... 02451838  ORMT..... 18FEF6C8  LSA1..... 0206D998  LAA...... 000A0068  LSDP..... 0206DA18  ALOV..... 00000000
                                                                                                                                       
                                                                                                                                       
          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                                                                                
                                                                                                               
       +0108  DUCT..... 00000000  00000000  00000000  00000000  0007BF00  00000000  00000000  00000000  00000000  00000000  00000000
          +0134            00000000  00000000  00000000  00000000  00000000                                                            
          +0634                      SSD...... 19413000  OPAS..... C240      OPTC..... 00000000  SUPF..... 80000069  SUSP..... 00      
          +064A  SUSP..... 00000000  00000000  00000000  00000000            SUSP..... 00000000  SUSP..... 00000000  SYNC..... 00000000
          +0668  SYNC..... 00000000  SYNC..... 00000000  SYNC..... 00000000  SYNC..... 00000000  SYNC..... 00000000  SUSP..... 00000000
          +0680            00000000  SUSP..... 00000000  SUSP..... 00000000  AFPR..... 00000000  00000000  00000000  00000000  00000000
          +06AC            00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000
          +06D8            00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000  FPFL..... 00      
          +0740  TRNE..... 00000000  00000000                          
  5. Use the module name to search for a known problem.
  6. If the search reveals no contention, use the IPCS SYSTRACE ALL command to examine the system trace table for the ASIDs that are executing.
  7. Use the FIND WAIT command in the SYSTRACE report to check for any WAIT type system trace entries.
  8. If no WAIT entries exist, there might be contention on CPU resources. Scroll through SYSTRACE noting the ASIDs associated with the entries. If all the entries are for a couple of ASIDs and they are mostly CLKC or EXT type entries, it might indicate a loop. Go to Diagnosing a loop.
  9. If WAIT entries are found, then there is no contention on any CPU resource. Talk to the operator to get more specific information on what appears to be hung from an operations perspective. If a specific job or class of jobs are hung (like Batch or TSO users), then get the job name or the specific TSO userid and go to Diagnosing a job or subsystem hang.