Use these steps to examine the TCB status.
- 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.
- Locate the TCB.
- 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.
- If you have not identified a TCB, scroll to the bottom of the SUMMARY
FORMAT report to locate the last TCB on the chain.
- 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
- If RB is in a WAIT or with no flags on:
- Do a FIND ACTIVE to locate the RB control blocks (these
can be PRBs, SVRBs, IRBs or SIRBs).
- 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
- 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 .
- 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
- 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.
- 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 .
Use the TCB non-dispatchability bit name in a search for a known problem.
- Build a symptom string that includes:
- 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.