|
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 lists the reason codes that can be in the feedback
area and explains what each code indicates.
Table 1. Physical-error
reason codes in the feedback area of the request parameter list. 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. Physical error message formatMESSAGE
FORMAT FOR NON-RLS PROCESSING |
---|
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 UNIX files,
this field contains "********". |
|
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 |
The device number where the error
occurred. |
|
|
|
For UNIX files,
this field contains "****". |
|
71 |
1 |
Comma (,) |
Device Type |
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 UNIX files,
this field contains the request that resulted in the error. |
|
|
|
A GET, PUT, CHECK,
POINT, or ENDREQ request. |
Figure 1 shows information
about messages 91–105.
Figure 1. Physical error message formatMessage 91-105 15 Messages are divided according to ECB completion codes:
&tab;&tab;&tab;X'41' "INCORR LENGTH"
&tab;&tab;&tab; "UNIT EXCEPTION"
&tab;&tab;&tab; "PROGRAM CHECK"
&tab;&tab;&tab; "PROTECTION CHK"
&tab;&tab;&tab; "CHAN DATA CHK"
&tab;&tab;&tab; "CHAN CTRL CHK"
&tab;&tab;&tab; "INTFCE CTRL CHK"
&tab;&tab;&tab; "CHAINING CHK"
&tab;&tab;&tab; "UNIT CHECK"
&tab;&tab;&tab; "SEEK CHECK"
If the type of unit check can be determined, the "UNIT CHECK" message
is replaced by one of the following messages: &tab;&tab;&tab; "CMD REJECT"
&tab;&tab;&tab; "INT REQ"
&tab;&tab;&tab; "BUS OUT CK"
&tab;&tab;&tab; "EQP CHECK"
&tab;&tab;&tab; "DATA CHECK"
&tab;&tab;&tab; "OVER RUN"
&tab;&tab;&tab; "TRACK COND CK"
&tab;&tab;&tab; "COUNT DATA CHK"
&tab;&tab;&tab; "TRACK FORMAT"
&tab;&tab;&tab; "CYLINDER END"
&tab;&tab;&tab; "NO RECORD FOUND"
&tab;&tab;&tab; "FILE PROTECT"
&tab;&tab;&tab; "MISSING A.M."
&tab;&tab;&tab; "OVERFL INCP"
&tab;&tab;&tab;X'48' "PURGED REQUEST"
&tab;&tab;&tab;X'4A' "I/O PREVENTED"
&tab;&tab;&tab;X'4F' "R.HA.R0. ERROR"
&tab;&tab;&tab; "INVALID SUFFIX"
Table 3 shows information
about messages 106–127.
Table 3. Physical
error message format. This table shows information about
messages 106–127.Field |
Bytes |
Length |
Description |
---|
For
any other ECB completion code: |
|
|
|
"UNKNOWN COND". |
|
|
|
For UNIX files,
this field contains the service that encountered the error, in the
form "OMVS-nnnnnnnn", in which nnnnnnnn is
the name of the service. |
|
106 |
1 |
Comma (,) |
Physical Direct |
107-120 |
14 |
BBCCHHR (bin, cylinder, head, and
record) |
Access Address |
|
|
For 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 UNIX files,
this field contains "VSAM" |
MESSAGE
FORMAT FOR CF FAILURE WITH VSAM RLS OR DFSMStvs PROCESSING |
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. |
|
|
|
&tab;"CF STR
FAILURE" |
|
|
|
&tab;"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" |
|