OPEN return and reason codes

When your program receives control after issuing an OPEN macro, the return code in register 15 indicates if all the data sets were opened successfully (see Table 1).

Table 1. Return Codes in Register 15 After OPEN
Return Code Meaning
0(X'0') All data sets were opened successfully.
4(X'4') All data sets were opened successfully, but one or more attention messages were issued (reason codes in the ACBERFLG field of the ACB less than X'76'). Non-VSAM OPENs do not issue attention messages, so a return code 4 does not occur for non-VSAM data sets. Only VSAM OPENs issue attention messages resulting in a return code of 4.
8(X'8') At least one data set (VSAM or non-VSAM) was not opened successfully; the access method control block was restored to the contents it had before the OPEN was issued; or, if the data set was already open, the access method control block remains open and usable and is not changed.
12(X'C') A non-VSAM data set was not opened successfully when a non-VSAM and a VSAM data set were being opened at the same time. The non-VSAM data control block was not restored to the contents it had before the OPEN was issued (and the data set cannot be opened without restoring the control block).
16(X'10') One or more of the access method control blocks (ACBs) specified the RLS option but the system has not been set up for RLS (the SMSVSAM server address space is not available). For other DCBs and ACBs any condition described by other return codes is possible.

If register 15 contains a nonzero return code, use the SHOWCB macro to display the corresponding reason code. The SHOWCB macro displays the error field in each access method control block specified by the OPEN macro. (See SHOWCB—Display fields of an access method control block.)

Table 2 lists the reason codes that may appear in this error field.

Table 2. OPEN Reason Codes in the ACBERFLG Field of the ACB
Reason Code Meaning
0(X'0') One of the following conditions exists:
  • VSAM is processing the access method control block for some other request.
  • The access method control block address is invalid.
72(X'48') One of the following errors occurred (a warning):
  • A non-RLS or non-DFSMStvs OPEN for input was successful against a sphere that was already in a lost locks or retained locks state.
  • A non-RLS or non-DFSMStvs OPEN for output was successful against a sphere that was already in a lost locks or retained locks state because a NONRLSUPDATE was in effect.
76(X'4C') The interrupt recognition flag (IRF) was detected for a data set opened for input processing. This indicates that DELETE processing was interrupted. The structure of the data set is unpredictable; the access method services DIAGNOSE command can be used to check the data set for structural errors. For a description of the DIAGNOSE command, see z/OS DFSMS Access Method Services Commands.
88(X'58') A previous extend error has occurred during EOV processing of the data set. For MACRF=RLS, reset processing of "delete vol" has received an error.
92(X'5C') Inconsistent use of CBUF processing. Sharing options differ between index and data components.
96(X'60') An unusable data set was opened for input.
100(X'64') An OPEN found an empty alternate index that is part of an upgrade set.
101(X'65') For MACRF=RLS, the sphere that was opened is in lost locks state. The open was successful.
102(X'66') For MACRF=RLS, the sphere is in a non-RLS update permitted state. The open was successful.
103(X'67') For RLS, the sphere that was opened is in both a lost locks state and non-RLS update permitted state. The open is successful. For DFSMStvs, the open succeeded, but one of the following conditions was detected:
  • DFSMStvs is quiescing due to an I/O error on one of the system logs (the undo log or the shunt log).
  • The forward recovery log is quiescing due to an I/O error. Processing continues without the forward recovery log.
  • A failure occurred during an attempt to write a tie-up record to the forward recovery log. Processing continues without the forward recovery log.
  • The log of logs is quiescing due to an I/O error. Processing continues without the log of logs.
  • A failure occurred during an attempt to write a tie-up record to the log of logs. Processing continues without the log of logs.
104(X'68') The time stamp of the volume where the data set is stored does not match the system time stamp in the data set's catalog record. This indicates extent information in the catalog record might not agree with the extents indicated in the volume's VTOC.
108(X'6C') The time stamps of a data component and an index component do not match. This indicates that either the data or the index has been updated separately from the other.
110(X'6E') JRNAD exit was not specified on the first ACB opened for the data set. Processing continues without journaling.
116(X'74') The data set was not properly closed. The data set high-used RBA has not been verified. Records might be missing or duplicated.

A previous VSAM program might have abnormally terminated.

You should verify that all of the expected records are in the data set. If you ignore the message and try to process the data set, the results are unpredictable. The catalog will be updated when the data set has been successfully opened for output and then successfully closed.

You can determine if this error occurred on opening an empty data set by using the SHOWCB macro instruction. The SHOWCB macro instruction is described in z/OS DFSMS Macro Instructions for Data Sets. For additional information on recovery processing, see z/OS DFSMS Using Data Sets.

118(X'76') The data set was not properly closed. The data set high-used RBA has been successfully verified. Records may be missing or duplicated.

A previous VSAM program may have abnormally ended.

You should verify that all of the expected records are in the data set.

The catalog will be updated when the data set has been successfully opened for output and then successfully closed. For additional information on recovery processing, see z/OS DFSMS Using Data Sets.

128(X'80') DD statement for this access method control block is missing or invalid.
130(X'82') Open connect is not allowed at this time.
131(X'83') An error was detected by VSAM for a media manager CONNECT.
132(X'84') One of the following errors occurred:
  • Not enough storage was available for work areas.
  • The required volume could not be mounted.
  • A system logic error occurred while VSAM was accessing the job file control block (JFCB).
  • The format-1 DSCB or the catalog cluster record is invalid.
  • The user-supplied catalog name does not match the name on the entry.
  • The user is not authorized to open the catalog as a catalog.
  • For DFSMStvs:
    • Unable to connect to the forward recovery log
    • Unable to write tie-up record to the forward recovery log
    • Data set cannot be opened because it needs to be forward recovered.
    • DFSMStvs processing is not available.
    • For a data set that was previously accessed for Permit Non-RLS Update (PNRLU) processing, an error occurred attempting to write the PNRLU record to the undo log
133(X'85') Delete Volume processing for RESET(MACRF=RST) failed during open. The DDNAME needs to be freed and re-allocated to the data set.
134(X'86') Invalid UCB address for UCB address conversion.
136(X'88') Not enough virtual storage space is available in your program's address space for work areas, control blocks, or buffers.
138(X'8A') A 24-bit UCB address is required for Volume Mount but a 31-bit UCB address was passed.
140(X'8C') The catalog indicates this data set has an invalid physical record size.
144(X'90') Uncorrectable I/O error occurred while VSAM reading or writing catalog record.
145(X'91') An uncorrectable error occurred in the VSAM volume data set (VVDS).
148(X'94') No record for the data set to be opened was found in the available catalogs, or an unidentified error occurred while VSAM was searching the catalog. For the catalog return code, see system message IDC3009I. For a description of this message, see z/OS MVS System Messages, Vol 6 (GOS-IEA).

For z/OS UNIX files, the requested file does not exist.

152(X'98') Authorization checking failed for one of the following reasons:
  • The password specified in the access method control block for a specified level of access does not match the password in the catalog for that level of access.
  • RACF® denied access. For the catalog return code, see system message IDC3009I in job output. For a description of this message, see z/OS MVS System Messages, Vol 6 (GOS-IEA).
160(X'A0') The operands specified in the ACB or GENCB macro are inconsistent either with each other or with the information in the catalog record.
One of these conditions has been detected:
  • For option ACBRST
    • Path processing
    • LSR or GSR
  • For option ACBICI
    • LSR or GSR
    • Key-sequenced data set
    • Path processing
    • Sequence set with data
    • Replicated index
    • Block size not equal to CI size
    • Extended format data set
  • For option ACBUBF
    • LSR or GSR
    • ACBCNV not specified
    • ACBKEY specified
    • ACBADR specified
  • For option ACBSDS
    • LSR or GSR
    • Path processing
    • Upgrade processing
  • For option ACBCBIC
    • LSR or GSR
    • ACBICI not specified
  • For option RLS, an invalid option has been specified. See the message for further information.
  • For miscellaneous options
    • Buffer space specified but the amount is too small to process the data set
    • Volume not mounted
    • Trying to open an empty data set for input
  • For a z/OS UNIX file, an invalid option or operand has been specified
    • ACBCNV or ACBKEY
    • ACBSKP
    • ACBICI
    • LSR, GSR, or RLS
    • ACBSTRNO > 1.
164(X'A4') An uncorrectable I/O error occurred while VSAM was reading the volume label.
167(X'A7') For MACRF=RLS, open or close processing received an abend while processing the request.
168(X'A8') The data set was not available for the type of processing that you specified. Or, an attempt was made to open a reusable data set with the reset option while another user had the data set open. The data set might have the INHIBIT attribute specified.

The data set cannot be opened for CBUF processing because it was already opened for non-CBUF processing. Or, the data set has conflicting CBUF attributes for the data and index components of the ACB.

For MACRF=RLS, an attempt was made to access a data set with NSR/LSR/GSR and the data set is currently accessed by RLS or DFSMStvs, or vice versa. Or, an attempt was made to access the data set with NSR/LSR/GSR and the data set is in lost or retained locks state.

For a z/OS UNIX file, the file has a file type that is not supported (for example, directories are not supported).

169(X'A9') For MACRF=RLS, an attempt was made to access an ACB for RLS processing on a previous release of DFSMS that does not have RLS function.
170(X'AA') For RLS, an ACB specified a SUBSYSNM name, which is already registered to a previous server instance.
171(X'AB') For MACRF=RLS, required CF cache is unavailable from this system.
172(X'AC') For RLS, CF Cache structure failed.
173(X'AD') For RLS, required CF cache structure is in a quiescing or quiesced state.
174(X'AE') One of the following errors occurred:
  • For MACRF=RLS, SUBSYSNM was not specified in the ACB and an attempt was made to open a data set for output to a recoverable sphere.
  • For DFSMStvs, this can occur if DFSMStvs is not active on the system.
  • The LOG parameter is ALL but LOGSTREAMID is not specified. (This error code has a different meaning on DFSMS/MVS 1.4.0 and earlier releases.)
175(X'AF') For RLS, locks have been lost. This is an attempt by a new sharing SUBSYSNM to access a data set for which not all recovery has completed. The open is not successful.
177(X'B1') For RLS or DFSMStvs, the open is rejected because the sphere is marked VSAM quiesced.
178(X'B2') For MACRF=RLS, the open is rejected. The sphere is VSAM-quiescing and this is an attempt by a new application.
179(X'B3') For RLS, the open is rejected. The sphere is VSAM-quiescing in preparation for a data set copy.
180(X'B4') A VSAM catalog specified in JCL either does not exist or is not open, and no record for the data set to be opened was found in any other catalog.
181(X'B5') For MACRF=RLS, the DISP value specified is not consistent with the DISP value specified by another application that has opened this data set for RLS access. Either this application is requesting DISP=SHR while another application holds DISP=OLD or vice-versa.
182(X'B6') For MACRF=RLS, the SMSVSAM server is not available.
183(X'B7') For RLS open, invalid backup while open (BWO) flags in the catalog.
184(X'B8') An uncorrectable I/O error occurred while VSAM was completing an I/O request.
188(X'BC') The data set that is indicated by the access method control block is not of the type that can be specified by an access method control block. Or the access method control block (ACB) has already been opened or closed.
189(X'BD') The Exit List (EXLST) is invalid because the length is incorrect.
190(X'BE') An invalid hi-allocated RBA was found in the catalog entry for this data set. The catalog entry is bad and will have to be restored.
192(X'C0') An unusable data set was opened for output.
193(X'C1') The interrupt recognition flag (IRF) was detected for a data set opened for output processing. This indicates that DELETE processing was interrupted. The structure of the data set is unpredictable. The access method services DIAGNOSE command may be used to check it for structural errors. For a description of the DIAGNOSE command, see z/OS DFSMS Access Method Services Commands .
194(X'C2') An open of the data component of a compressed format key-sequenced data set is not allowed. For MACRF=RLS, an attempt was made to open an alternate index cluster or an individual component of a KSDS data set. KSDS components cannot be opened for RLS processing.
195(X'C3') For MACRF=RLS, the SMS Storage Class does not specify a coupling facility CACHESET name.
196(X'C4') Access to data was requested via an empty path.
For RLS:
  • Access to data was requested through an empty path.
  • Attempt to access a VSAM data set for RLS processing via an Alternate Index which is not part of the Upgrade Set.
197(X'C5') Catalog indicated RLS recovery required but user's ACB did not specify recovery processing.
198(X'C6') For RLS, an open is rejected because a volume quiesce is in progress or a required volume is marked as "quiesced".
200(X'C8') The format-4 DSCB indicates that the volume is unusable.
201(X'C9') For RLS, the sphere is not currently assigned to a CF cache and there are no CF caches available from this system which could be assigned to the sphere.
202(X'CA') For RLS, SUBSYSNM violation. The SUBSYSNM name specified is different from the subsystem name registered for this address space.
203(X'CB') For RLS, JRNAD Exit requested for ACB being opened for RLS processing.
204(X'CC') The ACB MACRF specification is GSR and caller is not operating in protect key 0 to 7. Or, ACB MACRF specification is CBIC (Control Blocks in Common) and caller is not operating in supervisor state with protect key 0 to 7.
205(X'CD') The ACBCATX option or VSAM volume data set open was specified and the calling program was not authorized.
206(X'CE') For MACRF=RLS, the LOG parameter that is associated with the base cluster is undefined.
207(X'CF') RLS SUBSYSNM name contains invalid characters.
208(X'D0') System logic error.
209(X'D1') RLS or DFSMStvs open internal logic error detected.
210(X'D2') RLS or DFSMStvs open requested for non-SMS-managed data set.
211(X'D3') A previous MSGIGW405I has been issued. All opens issued for the sphere on the system must be closed and the sphere examined for possible corruption. The sphere may then be opened successfully.
212(X'D4') The ACB MACRF specification is GSR or LSR and the data set requires load mode processing.
214(X'D6') For DFSMStvs, the maximum logical record length for the data set is larger than the length that DFSMStvs supports for logging.
216(X'D8') The ACB MACRF specification is GSR or LSR and the key length of the data set exceeds the maximum key length specified in BLDVRP.
220(X'DC') The ACB MACRF specification is GSR or LSR and the data set's control interval size exceeds the size of the largest buffer specified in BLDVRP.
224(X'E0') Improved control interval processing is specified and the data set requires load mode processing.
228(X'E4') The ACB MACRF specification is GSR or LSR and the VSAM shared resource table (VSRT) does not exist (no buffer pool is available).
229(X'E5') OPEN failed because a BLDVRP or DLVRP is already in progress. A retry of the OPEN is suggested.
230(X'E6') OPEN failed because the maximum number of alternate indexes (255) has been exceeded.
231(X'E7') OPEN failed because the maximum number of VSAM control blocks has been exceeded.
232(X'E8') Reset was specified for a non-reusable data set and the data set is not empty.
236(X'EC') System logic error.
240(X'F0') Format-4 DSCB and volume timestamp verification failed during volume mount processing for output processing.
244(X'F4') The volume containing the catalog recovery area was neither mounted nor verified for output processing.
245(X'F5') An attempt was made to open a compressed format data set without sufficient hardware, ESCON channels and concurrent copy capable control units, or a compressed format device was required.
246(X'F6') The compression management services open or close function failed.
247(X'F7') An error occurred while retrieving the dictionary token from the extended format cell.
250(X'FA') DSAB match not found.

VSAM also writes a message to the operator console and the programmer's listing further explaining the error. For a listing of VSAM messages, see z/OS MVS System Messages, Vol 6 (GOS-IEA).