Explanation
The error occurred during processing of an OPEN
macro instruction for an indexed sequential data set. If register
15 does not contain a hexadecimal reason code, then no records could
be processed because:
- The block size (DCBBLKSI) is less than the logical record length
(DCBLRECL).
- The block size (DCBBLKSI) is not a multiple of the logical record
length.
If the error occurred during the processing of an ISAM
OPEN executor, register 15 contains a hexadecimal reason code. No
records could be processed because:
- Code
- Explanation
- 01
- The format-2 data set control block (DSCB) indicated that
1/2 1/21/21/2MSG 8028 1/2 1/21/21/2MSG
8028 the data set had not been created (DS2STIND is not equal to X'20'),
or the format-2 DSCB indicated that the data control block (DCB) had
not been closed after the data set had been created.
- 03
- For variable length records, the relative key position (DCBRKP)
field in the data control block (DCB) is less than four.
- 04
- The relative key position (DCBRKP) plus the key length (DCBKEYLE)
is greater than the logical record length (DCBLRECL).
- 05
- The DCBKEYLE field of the data control block contained zero.
- 06
- The DCBKEYLE field of the data control block (DCB) does not equal
the value in the DS1KEYL field of the format-1 DSCB.
- 07
- A QISAM data control block was being opened in preparation for
a PUT operation, but the OPEN macro instruction had not been issued
for output.
- 09
- The logical record length in the data control block (DCBLRECL)
is zero.
- 0A
- The record format in the format-1 DSCB (DS1RECFM) indicates fixed
blocked records, but the block size (DCBBLKSI) equals the logical
record length (DCBLRECL).
- 0B
- The block size (DCBBLKSI) differs from the format-1 DSCB block
size (DS1BLKL).
- 0C
- The logical record length (DCBLRECL) differs for the format-1
DSCB logical record length (DS1LRECL).
- 0D
- QISAM data control block was being opened in preparation for a
PUT operation and DISP=SHR was coded in the JCL.
- 0E
- The value for the record format (DCBRECFM) is zero.
- 0F
- The value for the record format (DCBRECFM) is not the same as
the record format value specified when the data set was created (DS1RECFM).
Register 2 contains the address of the DCB for
which the abend was issued.
When the ISAM interface is used
to process a VSAM data set, this system completion code can be accompanied
by message IEC161I. If it is, refer to message IEC161I for information
about the task that ended. The ISAM interface of VSAM issues system
completion code 03B for one of the following reasons:
- The access method service's and DCB values for LRECL, KEYLE, RKP
do not match.
- DISP=OLD was specified and the DCB was opened for output and the
number of logical records is greater than zero (RELOAD is implied).
- An OPEN ACB error code 116 was returned for a request to open
a VSAM structure.
System programmer response
If the error recurs and the program
is not in error, look at the messages in the job log for more information.
Search problem reporting data bases for a fix for the problem. If
no fix exists, contact the IBM® Support
Center. Provide the JCL and the program listing for the job.
Programmer response
Take the following actions depending on
the reason code you received:
- Code
- Response
- 01
- Make sure that the data set has been properly created and that
the creating task closes the data control block.
- 03
- If variable length records are used, make sure that the value
of the DCBRKP field is not less than four.
- 04
- Make sure that the value of the DCBRKP field of the data control
block, when added to the value of in the DCBKEYLE field, does not
exceed the value in the DCBLRECL field.
- 05, 06
- Correct the DCBKEYLE field. For an existing ISAM data set, omit
the KEYLEN operand on the DCB macro instruction. This allows the
data set control block to supply the key length value.
- 07
- Make sure that OUTPUT is specified as option 1 in the OPEN macro
instruction.
- 09, 0A, 0B, 0C
- Make sure that the block size (BLKSIZE) and logical record length
(LRECL) have been specified correctly on the data control block (DCB)
and that they are compatible.
- 0D
- Code DISP=OLD in the JCL for the QISAM data control block that
is being opened for a PUT operation.
- 0E, 0F
- Make sure that the record format has been specified correctly.
For an existing ISAM data set, list the VTOC to determine the correct
format of the data set.
If register 15 does not contain a hexadecimal
reason code, then make sure that:
- the blocksize (BLKSIZE) and logical record length (LRECL) have
been specified correctly on the data control block (DCB).
- the BLKSIZE and LRECL are compatible.
In cases when the ISAM interface issued an ABEND, make
sure that a valid mode of operation is specified in the MACRF operand
of the DCB macro. Additionally, make sure that the DCB is not being
opened for load mode while there are records in the data set.
In
all cases, run the job step again.
If message IEC161I accompanies
this system completion code, respond as indicated for message IEC161I.
Source