MainframeKit

S013

Data set OPEN failed (IEC141I)SYSTEM ABEND

A data set could not be opened, usually because its attributes conflict with the program or JCL, or a member does not exist.

MOST LIKELY

Program record format or length differs from the data set's RECFM and LRECL.

FIRST CHECK

Read the IEC141I return code and the DD name.

TRY IT ▸

Block size and space calculator

What it means

Abend 013 comes with message IEC141I, which gives a return code, the DD name and the data set. OPEN merges attributes from the program, the DD statement and the data set label; if the result is impossible, OPEN fails.

Common return codes: 14 means the partitioned or sequential organisation does not match the DCB; 18 means the PDS member was not found; 20 means block size is not a multiple of record length for fixed-blocked records (or similar QSAM conflicts); 60 means RECFM=F with BLKSIZE not equal to LRECL; C0 means a SYSIN, SYSOUT or other subsystem data set could not be opened.

Typical causes

  • Program record format or length differs from the data set's RECFM and LRECL.
  • A DCB on the DD, often copied from another job, overrides correct values.
  • A member name that does not exist, or a member given for a non-partitioned data set.
  • Block size inconsistent with record format and length.
  • A data set allocated with no attributes and then opened for input.

How to fix it

  1. Read the IEC141I return code and the DD name.
  2. Compare program file definition, DD DCB and actual data set attributes side by side.
  3. For return code 18, list the library and check the member name.
  4. Remove wrong DCB overrides or recreate the data set with the right attributes.
  5. In COBOL, BLOCK CONTAINS 0 lets the system use the data set's block size.

Example

Illustrative only; names and values are invented.

IEC141I 013-18,IGG0191B,ACCTJOB1,STEP010,INFILE,0A22,VOL045,
USER01.ACCT.SOURCE(MISSING)
IEF450I ACCTJOB1 STEP010 - ABEND=S013 U0000 REASON=00000018