Steps for examining the TCB status

  1. Enter the IPCS SUMMARY FORMAT JOBNAME(xyz) to generate a report of address space related control blocks representing the job, which includes the ASCB, SRB's, TCB's, RB's, and others.
  2. Locate the TCB.
    1. If you have identified a TCB as holding or waiting for a resource, enter the FIND TCB: xxxxxxxx where xxxxxxxx is the virtual address of the TCB.
    2. If you have not identified a TCB, scroll to the bottom of the SUMMARY FORMAT report to locate the last TCB on the chain.
  3. Examine the TCB non-dispatchability bits, ignoring the SDUMP non-dispatchability indicator:
    TCB: 008FF2A0                                                                                                                   
         +0000  RBP...... 008FF218  PIE...... 00000000  DEB...... 00000000  TIO...... 008D1FE8  CMP...... 00000000  TRN...... 40000000
         +0018  MSS...... 7FFFE700  PKF...... 80        FLGS..... 00000004  01                  LMP...... FF        DSP...... FF      
         +0024  LLS...... 00000000  JLB...... 008FCDD8  JPQ...... 008FD000                                                            
      ......                                                                                                                                
         Register values                                                                                                              
           0-3  00000001  25400F88  00000040  00000000                                                                                
           4-7  008DFAB0  0000000A  008D1FE0  25401048                                                                                
           8-11 008FC138  008FF560  00000000  A5400D0A                                                                                
          12-15 830048B2  00006F60  00000311  808FF218                                                                                
       +012C  EAE...... 7FF4E8F8  ARC...... 00000000  GRES..... 00000000  STCB..... 7F6F8A68  TTIME.... 00000000  007A1440           
       +0144  CELAP.... 00006FF0  R148..... 0000      RBYT1.... 00        LEVEL.... 03        BDT...... 00000000  NDAXP.... 00000000 
       +0154  SENV..... 00000000                                                                                                     
       Task non-dispatchability flags from TCBFLGS4:                                                                                 
        Top RB is in a wait                           ---> important                                                                               
       Task non-dispatchability flags from TCBFLGS5:                                                                                 
        Secondary non-dispatchability indicator                                                                                      
       Task non-dispatchability flags from TCBNDSP2:                                                                                 
        SVC Dump is executing for another task       ----> ignore, always on in an svcdump
  4. If RB is in a WAIT or with no flags on:
    1. Do a FIND ACTIVE to locate the RB control blocks (these can be PRBs, SVRBs, IRBs or SIRBs).
    2. Look at the last RB formatted. Verify that the wait or suspend count in the high order byte of the RBLINK is greater than zero. Extract the PSW address from the OPSW field. For example:
      ACTIVE RBS
      
      PRB: 008FF218
      -0020  XSB...... 7FFFDCA0  FLAGS2... 80     RTPSW1... 00000000  00000000         RTPSW2... 00000000  00000000
      -0008  FLAGS1... 40800003  WLIC..... 00020001
       
      +0000  RSV...... 00000000  00000000       SZSTAB... 00110082  CDE...... 008FD000  OPSW..... 070C0000  A5400F00
      +0018  SQE...... 00000000  LINK..... 018FF2A0
      +0020  GPR0-3... FD000008  00006FF8  00000040  008DFAD4
      +0030  GPR4-7... 008DFAB0  008FD0C8  008D1FE0  FD000000
      +0040  GPR8-11.. 008FC138  008FF560  00000000  008FD0C8
      +0050  GPR12-15. 830048B2  00006F60  008FC184  008FC168
                 64-Bit GPRs from the RB/XSB
      
      
        Left halves of all registers contain zeros
        0-3  FD000008  00006FF8  00000040  008DFAD4
        4-7  008DFAB0  008FD0C8  008D1FE0  FD000000
        8-11 008FC138  008FF560  00000000  008FD0C8
        12-15 830048B2  00006F60  008FC184  008FC168
        +0060  RSV...... E2C8D9F0  F4D3D740
                     
    3. Enter the IPCS WHERE xxxxxxxx , using the address from the RBOPSW field with the high order addressing mode bit off, to identify which module or CSECT was last in control. For example:
      Command ===> ip w 25400f00                                                      
       ********************************************************* TOP OF DATA *********
            ASID(X'0020') 25400F00. SHR04LP+01F8 IN EXTENDED PRIVATE                  
            ASID(X'0020') 25400F00. AREA(Subpool251Key08)+0F00 IN EXTENDED PRIVATE    
       ********************************************************* END OF DATA *********
      • If PSW points into ISGGWAIT, the TCB is waiting on an ENQ resource. Check the storage pointed to from GPR1 saved in this SVRB. It will point to storage containing the ENQ parmlist. The ENQ parmlist +4 points to the major name and +8 points to the minor name associated with the resource. For a mapping of the parmlist, see SVC 38 in z/OS MVS Diagnosis: Reference.
      • If the PSW points to IEAVEWAT, a program call (PC) entered the WAIT as requested. To determine who the requester was, locate the current linkage stack entry for this TCB by entering F LSE: PREV. Enter the IPCS WHERE command on the PSW address from field PSWE to determine who performed the WAIT (PC 30D). Use this module name when doing a search for a known problem. For example:
      LSE: 7F58B140                                                                
          GENERAL PURPOSE REGISTER VALUES                                           
          00-01.... 00000000  00000001  00000000  80095238                          
          02-03.... 00000000  00FCB818  00000000  018944B8                          
          04-05.... 00000000  7FF6ADB0  00000000  03ECC378                          
          06-07.... 00000000  00FCB818  00000000  98F27718                          
          08-09.... 00000000  18F29088  00000000  00FEC410                          
          10-11.... 00000000  03ECC0D0  00000000  18F24747                          
          12-13.... 00000000  18F23748  00000000  7F4FF100                          
          14-15.... 00000000  0000030D  00000000  18F27712                          
          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                          
          PKM...... 8040      SASN..... 0006      EAX...... 0000      PASN..... 0006
          PSW...... 07041000  80000000            PSWE..... 00000000  18F27752--->  this PSW address indicates  
          TARG..... 00000000  0000030D            MSTA..... 00000000  00000000 who did a PC 30D WAIT
          TYPE..... 0D                                                              
           PC STATE ENTRY                                                           
          RFS...... 0D80      NES...... 0000
  5. If the abnormal wait non-dispatchability flag is on, check for a subtask that is also abending. Do a FIND on TCB examining the CMP field in the TCB for one that is non-zero. Next, repeat step 3 examining the TCB non-dispatchability bits.
  6. If any other TCB non-dispatchability flags are on, determine the name to the TCB non-dispatchability flag set by examining the value of TCBFLGS field, bytes 4 and 5, and field TCBNDSP. Interpret bit settings using the mapping of the TCB in the version of z/OS® MVS™ Data Areas that corresponds to the release of z/OS you are running in your environment. See the z/OS Internet library. Use the TCB non-dispatchability bit name in a search for a known problem.
  7. Build a symptom string including:
    • The word WAIT
    • The module name
    • The component ID identified
    • Any other symptoms. For example, the resource waited on (SYSZTIOT or CMSEQDQ lock) or the TCB non-dispatchability bit name (TCBSTP).
    Search for a known problem.