|
If a physical error occurs and you have no SYNAD routine (or the
SYNAD exit is inactive), VSAM returns control to your program following
the last executed instruction. The return code in register 15 indicates
a physical error (12). The RPL feedback area contains a reason code
identifying the error. The RPL message area contains more details
about the error. Register 1 points to the request parameter list.
The RBA field in the request parameter list gives the relative byte
address of the control interval in which the physical error occurred. Table 1 gives the reason
codes in the feedback area and explains what each indicates.
Table 1. Physical Error Reason
Codes in the Feedback Area of the Request Parameter ListReason Code (RPLERRCD) When Register
15=12(X'0C') |
Meaning |
---|
4(X'4') |
Read error occurred for a data set. |
8(X'8') |
Read error occurred for an index
set. |
12(X'C') |
Read error occurred for a sequence
set. |
16(X'10') |
Write error occurred for a data set. |
20(X'14') |
Write error occurred for an index
set. |
24(X'18') |
Write error occurred for a sequence
set. |
36(X'24') |
For MACRF=RLS, a CF cache structure
connectivity failure occurred. |
40(X'28') |
For MACRF=RLS, a CF cache structure
failure occurred. |
44(X'2C') |
For extended format data sets, the
suffix for a physical record in the CI at the RBA specified in the
RPL is invalid. |
Table 2 shows the format of a physical
error message. The format and some of the contents of the message
are purposely similar to the format and contents of the SYNADAF message,
which z/OS DFSMS Macro Instructions for Data Sets describes.
Table 2. Physical Error Message
Format for Non-RLS ProcessingField |
Bytes |
Length |
Description |
---|
Message Length |
0-1 |
2 |
Binary value of 128. |
|
2-3 |
2 |
Unused (0) |
Message Length-4 |
4-5 |
2 |
Binary value of 124 (provided for
compatibility with SYNADAF Message). |
|
6-7 |
2 |
Unused (0) |
Address of I/O Buffer |
8-11 |
4 |
The I/O buffer associated with the
data where the error occurred. |
|
|
|
|
The
rest of the message is in printable format |
Date |
12-16 |
5 |
YYDDD (year and day) |
|
17 |
1 |
Comma (,) |
Time |
18-25 |
8 |
HHMMSSTH (hour, minute, second, tenths
and hundredths of a second. |
|
26 |
1 |
Comma (,) |
RBA |
27-38 |
12 |
Relative byte address of the record
where the error occurred. |
|
39 |
1 |
Comma (,) |
Component Type |
40 |
1 |
"D"(Data) or "I"(Index) |
|
41 |
1 |
Comma (,) |
Volume Serial Number |
42-47 |
6 |
Volume serial number of the volume
where the error occurred. |
|
|
|
For z/OS UNIX files, contains "********" |
|
48 |
1 |
Comma (,) |
Job Name |
49-56 |
8 |
Name of the job where error occurred. |
|
57 |
1 |
Comma (,) |
Step Name |
58-65 |
8 |
Name of the job step where the error
occurred. |
|
66 |
1 |
Comma (,) |
Unit |
67-70 |
4 |
The device number where the error
occurred. |
|
|
|
For z/OS UNIX files,
this field contains "****" |
|
71 |
1 |
Comma (,) |
Device Class |
72-73 |
2 |
The type of device where the error
occurred. (Always DA for direct access.) |
|
74 |
1 |
Comma (,) |
ddname |
75-82 |
8 |
The ddname of the DD statement defining
the data set where the error occurred. |
|
83 |
1 |
Comma (,) |
Channel |
84-89 |
6 |
The channel command that received
the error in the first two bytes, followed by “-OP” |
|
|
|
For z/OS UNIX files,
this field contains the request which resulted in the error. |
|
|
|
Either a GET, PUT,
CHECK, POINT, or ENDREQ request. |
|
90 |
1 |
Comma (,) |
Messages 91–105 are described below.
Message 91-105 15 Messages are divided according to ECB completion
codes: X'41' "INCORR LENGTH"
"UNIT EXCEPTION"
"PROGRAM CHECK"
"PROTECTION CHK"
"CHAN DATA CHK"
"CHAN CTRL CHK"
"INTFCE CTRL CHK"
"CHAINING CHK"
"UNIT CHECK"
"SEEK CHECK"
If the type of unit check can be determined, the "UNIT CHECK" message
is replaced by one of the following: "CMD REJECT"
"INT REQ"
"BUS OUT CK"
"EQP CHECK"
"DATA CHECK"
"OVER RUN"
"TRACK COND CK"
"COUNT DATA CHK"
"TRACK FORMAT"
"CYLINDER END"
"NO RECORD FOUND"
"FILE PROTECT"
"MISSING A.M."
"OVERFL INCP"
X'48' "PURGED REQUEST"
X'4A' "I/O PREVENTED"
X'4F' "R.HA.R0. ERROR"
"INVALID SUFFIX"
Table 3 and Table 4 show
information about messages 106–127.
Table 3. Physical Error
Message Format for any other ECB completion codeField |
Bytes |
Length |
Description |
---|
|
|
|
"UNKNOWN COND". |
|
|
|
For z/OS UNIX files,
this field contains the service which encountered an error, in the
form "OMVS-nnnnnnnn" where nnnnnnnn is
the name of the service. |
|
106 |
1 |
Comma (,) |
Physical Direct |
107-120 |
14 |
BBCCHHR (bin, cylinder, head, and
record) |
Access Address |
|
|
For z/OS UNIX files,
this field contains the return and reason code from the failing service
in the form "xxxx-yyyyyyyy" consisting
of a 2-byte hexadecimal return code and a 4-byte hexadecimal reason
code. |
|
121 |
1 |
Comma (,) |
Access Method |
122-127 |
6 |
"VSAM" |
|
|
|
For z/OS UNIX files, this field contains "VSAM" |
Table 4. Physical Error
Message Format for CF Failure with VSAM RLS or DFSMStvs ProcessingField |
Bytes |
Length |
Description |
---|
Message Length |
0-1 |
2 |
Binary value of 128 |
|
2-3 |
2 |
Unused (0) |
Message Length-4 |
4-5 |
2 |
Binary value of 124 (provided for
compatibility with SYNADAF Message). |
|
6-7 |
2 |
Unused (0) |
Address of I/O Buffer |
8-11 |
4 |
The I/O buffer associated with the
data where the error occurred. |
The
rest of the message is in printable format |
Date |
12-16 |
5 |
YYDDD (year and day) |
|
17 |
1 |
Comma (,) |
Time |
18-25 |
8 |
HHMMSSTH (hour, minute, second, tenths
and hundredths of a second. |
|
26 |
1 |
Comma (,) |
RBA |
27-38 |
12 |
Relative byte address of the record
where the error occurred. |
|
39 |
1 |
Comma (,) |
Component Type |
40 |
1 |
"D"(Data) or "I"(Index) |
|
41 |
1 |
Comma (,) |
Volume Serial |
42-47 |
6 |
For MACRF=RLS, this field does not
apply and is set to asterisks. |
|
48 |
1 |
Comma (,) |
Job Name |
49-56 |
8 |
Name of the job where the error occurred. |
|
57 |
1 |
Comma (,) |
Step Name |
58-65 |
8 |
Name of the job step where the error
occurred. |
|
66 |
1 |
Comma (,) |
Unit |
67-70 |
4 |
For MACRF=RLS, this field does not
apply and is set to asterisks. |
|
71 |
1 |
Comma (,) |
Device Type |
72-73 |
2 |
For MACRF=RLS, this field is set
to "CS" for CF cache structure. |
|
74 |
1 |
Comma (,) |
ddname |
75-82 |
8 |
The ddname of the DD statement defining
the data set where the error occurred. |
|
83 |
1 |
Comma (,) |
Channel |
84-89 |
6 |
For MACRF=RLS, this field is set
to "CFREAD" or "CFWRT" indicating if the CF operation is
a read or write. |
|
90 |
1 |
Comma (,) |
Message |
91-105 |
15 |
For MACRF=RLS, you receive either
CF structure failure message or loss of connectivity message. |
|
|
|
"CF STR FAILURE" |
|
|
|
"CF CON FAILURE" |
|
106 |
1 |
Comma (,) |
Physical Direct Access Address |
107-120 |
14 |
14-character cache structure name. |
|
121 |
1 |
Comma (,) |
Access Method |
122-127 |
6 |
"VSAM" |
|