Logical-error return codes
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
record in the data set. This error will be returned by register 10 and register 8 if the RBA provided addresses a relative CI greater than 4GB. |
| 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 add another string dynamically. 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. |
| 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, or not equal to record (slot) length specified for a relative record data set. |
| 112(X'70') | RPLKEYLC | KEYLEN specified was too large or equal to 0. |
| 116(X'74') | RPLINLRQ |
|
| 120(X'78') | RPLINTCB |
|
| 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:
|
| 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. |
| 164(X'A4') | RPLQCNCL | IDAQUIES request did not complete successfully. The request is canceled. |
| 165(X'A5') | 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. | |
| 166(X'A6') | Available for RLS and DFSMStvs. | |
| 167(X'A7') | RPLQNSUP | The field QUIESTYP in the IFGQUIES parameter area specifies an invalid request type, or the eyecatcher in IGFQUIES 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') | RPLACQER | 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') | RPLSTGER | For RLS and DFSMStvs, the ACB specified in the IDARETLK TYPE=SS, IDARECOV TYPE=LL, or IDARECOV TYPE=NONRLS request is not a valid ACB open for RLS or DFSMStvs processing to the sphere. |
| 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 for the sphere:
|
| 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 | 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. |
| 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') | 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 | A cross-memory caller is not in supervisor state, in SRB, or in cross-memory mode, or callers of RPL do not specify SYN processing. |
| 229(X'E5') | RPLDELCH | The record length changed during decompression processing. |
| 232(X'E8') | RPLUPERR | A 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 option 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') | RPLBMWER | Internal VSAM 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 was not quiesced before WTBFR TYPE=DS was issued. |
| RPLRTNCD code | Condition |
|---|---|
| 4(X'04') | Read error for data component. |
| 8(X'08') | Read error for index component. |
| 12(X'0C') | Read error for sequence set. |
| 16(X'10') | Write error for data component. |
| 24(X'18') | Write error for sequence set. |
| 28(X'1C') | Available. |
| 32(X'20') | Available. |
| 36(X'24') | For RLS, coupling facility cache connectivity loss. |
| 40(X'28') | For RLS, coupling facility cache structure failure. |
| 44(X'2C') | For extended function data sets, the suffix for a physical record in the CI, at the RBA specified in the RPL, is invalid. |
| RPLRTNCD code | Condition |
|---|---|
| 12(X'0C') | DFSMStvs processing is currently unavailable because DFSMStvs is initializing. |