|
If the problem is an abend, use the procedure
in Figure 1 to collect the following documentation:
Figure 1. Overview of the abend procedure
The following procedure describe each step shown in Figure 1.
- Get dump output.VTAM® usually
produces a dump for an abend. If no dump was taken, the dump files
or spools might be full. Check for a message that an error occurred
while VTAM was trying to produce
the dump. If VTAM is not able
to complete the dump, you have to re-create the abend or wait for
it to occur again.
Note: To extract abend information from a VTAM dump, invoke the CLIST ISTVABND or continue with the following steps.
- Find the symptom string.
A
symptom string is a structured database search argument. The symptom
string gives information about what was happening at the time of the
abend. Message IST931I, which contains the symptom string text, is
issued when a symptom string is produced. A record is written to the
LOGREC data set whenever VTAM takes
a supervisor call (SVC) dump. For about 85% of all abends, recovery
routines produce a symptom string subset, which you can get by printing
LOGREC. The symptom string subset, if it occurs, is located in control
block SDWA in LOGREC.
The SDWA address should be listed in
the beginning of the dump, in the dump abstract information. It is
also printed out in LOGREC, labeled "Hex Dump of Record" at the
end of each software entry.
The symptom string begins at X'194' in
the SDWA. Field SDWAURAL gives the length of the symptom string, which
can be up to 256 bytes.
- Find the abend, system completion, or user completion
code.
You can find the abend (or completion) code
in the output of several different service aids. The system control
block RTM2 work area (RTM2WA), the SYS1.LOGREC software record, and
the task control block (field TCBCMPC) contain the completion code.
The RTM2WA is pointed to by the TCB of the failing task (field TCBRTWA),
and is listed after the abnormally ending TCB.
For more information
on the abend codes issued by VTAM,
see z/OS Communications Server: IP and SNA Codes.
- Determine whether the abend code is OCx.If
the completion code is of the form 0Cx (where x =
the program interruption code from the PSW), continue with this step.
If the abend code is not 0Cx, go to step 5.
- Find the program status word (PSW) at the time of
the abend.
The PSW is found in the LOGREC output, the SDWA, or
the RTM2WA.
The location of the PSW in the dump output varies
depending on the type of dump taken. For assistance in locating the
PSW in dump output, see the diagnostic books for your operating system.
- Find the failing address or the failing instruction.
The PSW contains either the address of the next instruction to
be executed at the time of the abend or the instruction that failed
at the time of the abend, depending on the interruption code.
If
the interruption code is X'10' or X'11', the PSW
address points to the failing instruction. Otherwise, back up the
PSW by the instruction length, and that is the failing instruction.
Scan the dump output to find the address given in the PSW.
If
you cannot find the address, the dump might not contain the relevant
portion of main storage.
- Find the module ID for the module that contains the
failing address.
VTAM identifies
modules with the module name, Julian date, and PTF or APAR eye-catcher
at or near the beginning of each module. This module identifier is
in the form: ISTxxxxx yy.ddd nnnnnnn
where xxxxx is
the last five characters of the module name, yy.ddd is the
Julian date the module was assembled, and nnnnnnn is the latest
PTF or APAR fix (if any) that has been applied to this module.
Sometimes VTAM puts the module name of the
failing module in LOGREC. If it is not there, you can find it in a
dump. To find the module ID in a dump, start at the failing address
and scan in descending address order along the right side of the listing.The module ID is printed in EBCDIC.
You
can also scan the LPA map for the name of the load module and then
go to the AMB list in the load module to find the CSECT that contains
the failing address.
- Find the general registers.
The general registers
in use at the time of the abend are found in the LOGREC output, the
SDWA, or the RTM2WA.
Use the diagnostic books for your operating
system to help find the registers.
- Determine which register has information that is
not valid.
The failing instruction often uses a register with
an address that is not valid in one of the general registers, or points
to a location that is not valid (for example, low-address storage).
Use Principles of Operation for your operating system,
the program interruption code from the SDWA and the general registers
used in the failing instruction, to determine (if possible) which
register contains or points to incorrect data.
Note: When determining
the validity of the register's contents, be careful to consider the
address mode used by your operating system. Depending on the address
mode being used, values used in 31-bit addressing might be interpreted
differently than those used in 24-bit addressing.
Next
go to step 9.
- Determine whether the abend code is 0AB, 0AC, 0AD,
or 15D.These abend codes indicate a TSO/VTAM abend. For diagnosis
information, see TSO/VTAM abends.
- Determine whether the abend code is OAx.If
the abend code is in the form 0Ax, continue with this step.
If not, go to step 7.
- Find the abend code explanation in z/OS Communications Server: IP and SNA Codes.
An abend code of 0Ax indicates
a problem within the VTAM network.
The problem could have originated in VTAM,
the NCP, an application program, or the hardware of some other network
component. Look up the code in the information about Abend Codes
in z/OS Communications Server: IP and SNA Codes. Most 0Ax abends place a return or
reason code in register 15 at the time of failure. You can find the
return code in register 15 by using the set of general registers from
the LOGREC output, the SDWA, or the RMT2WA.
- Find the address of the module that issued the abend,
using the PSW, which points to the next instruction after SVC 13.
- Find the module ID.
From the address determined
in the previous step, scan in descending address order through the
dump to find the module ID (see step 4c).
Go to step 9.
- Determine whether the abend code is 80A, 40D, or 202.
If
the abend code is one of these, continue with this step. Otherwise,
continue with step 8.
These
abend codes indicate storage problems. Collect the following documentation:
- A dump of the VTAM address
space
- A dump of the VTAM common
storage area (CSA)
- LOGREC output
- VIT output at the time of the abend
After obtaining this documentation, go to Reporting the problem to IBM.
- If the abend code is none of the above, see your operating
system documentation.
To determine the publication that describes
the abend codes for your operating system, see Table 1.
Each code has an explanation
of the documentation required and the problem determination steps
to follow. For example, many abends occur during execution of SVC
instructions. Parameter lists and register contents passed to SVC
routines are in the diagnostic books for your operating system. These
books might suggest that you obtain additional information such as
a module name, a return code, a register containing information that
is not valid, or the name of a system control block containing parameters
that are not valid. After making a complete check of these sources,
you are ready to report the problem.
- Report or go to the failing module procedure.If you
determined the module ID, go to Failing module.
Otherwise, see Reporting the problem to IBM.
|