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.
Reason 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.
Field | 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.
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"
"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.
Field | 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" |
Field | 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" |