When a logical-error-analysis exit routine (LERAD) is provided, it gets control for logical errors, and register 15 does not contain 8, but contains the entry address of the LERAD routine.
Table 1 gives the contents of the registers when VSAM exits to the LERAD routine.
Register | Contents |
---|---|
0 | Unpredictable. |
1 | Address of the request parameter list that contains the feedback field the routine should examine. The register must contain this address if the exit routine returns to VSAM. |
2-13 | Same as when the request macro was issued. Register 13, by convention, contains the address of the processing program's 72-byte save area, which must not be used as a save area by the LERAD routine if the routine returns control to VSAM. |
14 | Return address to VSAM. |
15 | Entry address to the LERAD routine. The register does not contain the logical-error indicator. |
If a logical error occurs and a LERAD exit routine is not provided (or the LERAD exit is inactive), VSAM returns control to the processing program following the last executed instruction. Register 15 indicates a logical error (8), and the feedback field in the request parameter list contains a code identifying the error. Register 1 points to the request parameter list.
See z/OS DFSMS Installation Exits for additional information on the LERAD exit routine.
Table 2 gives the logical-error return codes in the feedback field and explains what each means.
RPLERRCD Code | Symbol | Condition |
---|---|---|
4(X'04') | RPLEODER | End of data set encountered (during sequential retrieval). Either no EODAD routine is provided, or one is provided and it returned to VSAM and the processing program issued another GET. |
8(X'08') | RPLDUP | Attempt was made to store a record with a duplicate key. |
12(X'0C') | RPLSEQCK | Attempt was made to store a record out of ascending key sequence; record may also have a duplicate key. |
16(X'10') | RPLNOREC | Record not found. |
20(X'14') | RPLEXCL |
|
21(X'15') | For MACRF=RLS, the request was rejected due to deadlock; the deadlock was resolved by rejecting this request. | |
22(X'16') | For MACRF=RLS, the request was rejected due to timeout. The request was presumed to be an inter resource manager deadlock. | |
24(X'18') | RPLNOMNT |
|
28(X'1C') | RPLNOEXT | Data set cannot be extended because VSAM cannot allocate additional direct-access storage space. Either there is not enough space left in the data space for the secondary-allocation request or an attempt was made to increase the size of a data set by splitting the control area (high used RBA change) during processing with SHROPT=4 and DISP=SHR. |
32(X'20') | RPLINRBA | An RBA was specified that does not give the address of any data |
36(X'24') | RPLNOKR | Key ranges were specified for the data set when it was defined, but no range was specified that includes the record to be inserted. |
40(X'28') | RPLNOVRT | Insufficient virtual storage in the address space to complete the request. Or there is insufficient storage available to dynamically add another string. For DFSMStvs, this indicates that DFSMStvs was unable to expand the pool for its context or unit of recovery-related control blocks. |
44(X'2C') | RPLINBUF | Work area not large enough for the data record (GET with OPTCD=MVE). |
48(X'30') | RPLINTRM | Invalid options, data set attributes, or processing
conditions specified for TERMRPL request:
|
52(X'34') | RPLPTERM | The previous request was TERMRPL. |
54(X'36') | RPLCAREC | CA reclaim or CA reclaim recovery processing encountered an error. |
56(X'38') | RPLCTERR |
|
60(X'3C') | RPLCTERR | Available for RLS and DFSMStvs use. |
64(X'40') | RPLNOPLH |
|
68(X'44') | RPLINACC | Attempt was made to use a type of processing (output or control-interval processing) that was not specified when the data set was opened. |
72(X'48') | RPLINKEY |
|
76(X'4C') | RPLINADR |
|
80(X'50') | RPLERSER | An ERASE request was issued for access to an ESDS or CI. |
84(X'54') | RPLINLOC |
|
88(X'58') | RPLNOPTR | A sequential GET or PUT request was issued without VSAM having been positioned for it, or a change was made from addressed access to keyed access without VSAM having been positioned for keyed sequential retrieval, or an illegal switch between forward and backward processing was attempted. |
92(X'5C') | RPLINUPD | A PUT, ERASE, or IDALKCD was issued without a previous GET for UPDATE. Or a PUTIX was issued without a previous GETIX. |
96(X'60') | RPLKEYCH |
|
100(X'64') | RPLDLCER | Attempt was made to change the length of a record during an addressed update. |
104(X'68') | RPLINVP | The RPL options are either invalid or conflicting
in one of the following ways:
For RLS and DFSMStvs only:
|
108(X'6C') | RPLINLEN | RECLEN specified was larger than the maximum allowed, equal to 0, smaller than the sum of the length and the displacement of the key field, not equal to record (slot) length specified for a relative record data set, or longer than 255 spanned-record segments. |
109(X'6D') | RPLIXBD2 | VSAM has detected an invalid index record. |
112(X'70') | RPLKEYLC | KEYLEN specified was too large or equal to 0. |
116(X'74') | RPLINLRQ |
|
120(X'78') | RPLINTCB | Current job step TCB is not correct one. For RLS, request issued in cross-memory mode. |
124(X'7C') | RPLUEXCL |
|
128(X'80') | RPLIXHHP | Index is invalid, request cannot be completed. |
132(X'84') | RPLSRLOC |
|
136(X'88') | RPLARSRK |
|
140(X'8C') | RPLSRISG | Inconsistent spanned-record segments. |
144(X'90') | RPLNBRCD | Invalid pointer in an alternate index (no associated base record). |
148(X'94') | RPLNXPTR | The maximum number of pointers in the alternate index has been exceeded. |
152(X'98') | RPLNOBFR |
|
156(X'9C') | RPLINCNV | An invalid control interval was detected during
keyed processing. The possible invalid conditions are:
|
158(X'9E') | RPLNOACC | For RLS, this system has found the data set corrupted and cannot access it. Please close the data set, restore it, and re-open to re-access it if necessary. |
160(X'A0') | RPLBMWER | A request was issued to invalidate a modified buffer. For RLS, the required quiesce exit does not exist. |
161(X'A1') | RPLQCLRJ | QUICLOSE request is rejected because the sphere is already marked quiesced. |
162(X'A2') | RPLQUIRJ | The quiesce status of the sphere means this IDAQUIES
request cannot be accepted from this application. Issued for the following:
|
163(X'A3') | RPLQACBO | IDAQUIES type QUICMP request rejected. ACBs for the sphere remain open for the application and this is an IDAQUIES type QUICLOSE. |
165(X'A5') | RPLQNONR | For RLS and DFSMStvs, either the IDARECOV request was specified as TYPE=LL and the sphere was not in lost locks state for this subsystem, or TYPE=NONRLS was specified and the sphere was not in NONRLSUPDATE permitted state. |
167(X'A7') | RPLQNSUP or |
For RLS, IDAQUIES types QUIBWO, QUICOPY, caller is not in supervisor state; invalid Quiesce request; or the eye-catcher in IFGQUIES is invalid. |
168(X'A8') | For RLS and DFSMStvs, the RPLAREA was 0. | |
169(X'A9') | RPLQCTGF | For RLS and DFSMStvs, the IDAQUIES, IDARETLK TYPE=SS, IDARECOV TYPE=LL, or IDARECOV TYPE=NONRLS request failed because the Catalog Locate command issued for the specified sphere or component name failed. |
170(X'AA') | RPLQUNFL | The QUIOPEN, QUICEND, or QUIBEND request is rejected because the requested unquiesce operation is already started for this sphere. |
172(X'AC') | RPLNSMSV | For RLS and DFSMStvs, the IDAQUIES, IDARETLK TYPE=SS, IDARECOV TYPE=LL, or IDARECOV TYPE=NONRLS request failed because the specified sphere is not an SMS VSAM data set. |
176(X'B0') | RPLACBBD | For RLS and DFSMStvs, the shared-latch obtain failed for the Record Management request. Or the ACB specified in the record management request or in the IDARETLK TYPE=SS, IDARECOV TYPE=LL, or IDARECOV TYPE=NONRLS request is not a valid ACB open for RLS or DFSMStvs. |
180(X'B4') | For RLS, an invalid request for a nonrecoverable data set. | |
181(X'B5') | RPLQRACF | This IDAQUIES request is rejected because the
requestor does not have update authority to the sphere. Issued for
the following:
|
182(X'B6') | RPLQINPR | For RLS, the IDAQUIES request rejected because
an IDAQUIES is already in progress for this sphere. If an RPL message
area (address in RPLERMSA) of sufficient length (specified in RPLEMLEN)
is specified, the following information is returned:
|
183(X'B7') | RPLMIGRA | IDAQUIES request rejected because data set is migrated. . |
184(X'B8') | RPLABEND | For RLS, an ABEND condition occurred while processing this VSAM request. The VSAM RLS FRR (Functional Recovery Routine) intercepted the failure and failed the VSAM request with this reason code. |
185(X'B9') | For RLS, the user task was canceled while the request was being processed. | |
186(X'BA') | RPLEOVER | End of volume initialization failed when DATASET tried to extend. |
186(X'BA') | RPLEOVER | For RLS, end-of-volume initialization failed when DATASET tried to extend. |
187(X'BB') | For RLS, an error occurred with partial EOV processing. | |
188(X'BC') | RPLNO241 | For RLS, the storage in subpool 241 is not available. |
189(X'BD') | For RLS, a lock for the VSAM request required space in the record table, which is full. You must modify the CFRM policy and rebuild the lock structure. | |
192(X'C0') | RPLIRRNO | Invalid relative record number. |
193(X'C1') | RPLFLDMP | An RLS request failed during a read I/O and a dump was generated without terminating the VSAM server address space. |
196(X'C4') | RPLRRADR | An addressed request was issued to a relative record data set. |
200(X'C8') | RPLPAACI | Addressed or control-interval access was attempted through a path. |
201(X'C9') | RPLDNOTF | For RLS or DFSMStvs, the IDARETLK TYPE=SS request failed because the specified data set does not exist. |
204(X'CC') | RPLPUTBK | PUT-insert requests (or for RLS, IDALKADD requests) are not allowed in backward mode. |
205(X'CD') |
|
|
206(X'CE') |
|
|
207(X'CF') | For DFSMStvs, indicates that transactional processing is currently unavailable because DFSMStvs is disabling or quiescing. Close all data sets so the process can complete. | |
208(X'D0') | RPLINVEQ | Invalid ENDREQ request. |
209(X'D1') |
|
|
210(X'D2') |
|
|
211(X'D3') |
|
|
212(X'D4') | RPLNOSPL | Unable to split index during a CA split. |
213(X'D5') |
|
|
214(X'D6') | For DFSMStvs, indicates that a permanent I/O error was detected in the undo log. For appropriate actions, see the accompanying DFSMStvs logger messages. | |
216(X'D8') | For RLS, the LUWID specified in the RPL does not exist for the subsystem name specified in the ACB. | |
217(X'D9') | DFSMStvs is unable to complete the request because RRS, which had been available, went down and restarted. To continue processing, the application must issue a commit or a backout and then begin a new unit of recovery. | |
218(X'DA') | Unrecognizable return code from SVC 109. | |
220(X'DC') | For DFSMStvs, this reason code is no longer being used. | |
224(X'E0') | RPLMOIB | A MRKBFR request was issued for an invalid buffer. |
228(X'E4') | RPLINVMD | One of the following:
|
229(X'E5') | RPLDELCH | The record length changed during decompression processing. |
232(X'E8') | RPLUPERR | Cross-memory mode caller did not post the ECB in the UPAD exit routine. |
235(X'EB') | RPLBMWER |
|
236(X'EC') | RPLINVSI | Validity check error from SVC 109 for share options 3 or 4. |
240(X'F0') | RPLUSTAT | Buffer pool status is unknown. The buffer use chain may be changing or a buffer is being modified or invalidated. Reissue the request. |
244(X'F4') | RPLSVR14 | Register 14 stack size is not large enough. |
245(X'F5') | RPLCMSCE | Severe error returned from CMS for a compress call. |
246(X'F6') | RPLCMSDE | Severe error returned from CMS for a decompress call. |
247(X'F7') | Error in the last active record number (DFM). | |
248(X'F8') | RPLRST14 | Register 14 return offset is negative. |
249(X'F9') |
|
|
250(X'FA') | RPLINVDT | No valid directory token exists. The data set cannot be decompressed. |
251(X'FB') | RPLINTER | Internal VSAM RLS error. |
252(X'FC') | RPLER252 | Record mode access is not valid for a linear data set. |
253(X'FD') | RPLER253 | Verify function is not valid for a linear data set. |
254(X'FE') | RPLERQUS | I⁄O activity on the data set not quiesced before issuing WTBFR TYPE=DS. |