IEF272I: Step was not executed
IEF272I STEP WAS NOT EXECUTED means z/OS didn't run a job step. The message gives no reason. The message just before it does, most often an allocation failure such as IEF212I DATA SET NOT FOUND, or an abend in an earlier step.
Other names for this code
Also written as IEF272, STEP WAS NOT EXECUTED, IEF272I STEP WAS NOT EXECUTED, step not executed JCL, IEF272I JCL error.
What it means
IEF272I names the job, the procedure step if there is one, and the step that didn't run. It's a follow-on message. It records what happened to the step, and another message tells you why.
The most common case is a failure while z/OS sets up the step. Before the program is loaded, allocation works through every DD statement. If a data set can't be found (IEF212I), can't be reserved because another job holds it (IEF211I), or can't be created, the program never starts. IEF272I follows the allocation message, and the job ends with IEF453I JOB FAILED - JCL ERROR.
The other common case is an earlier abend. When a step abends, z/OS skips the steps after it unless their COND parameter or an IF statement says to run them after an abend. Each skipped step gets IEF272I. The cause is then the IEF450I abend message for the earlier step.
Either way, the step's program never ran, so it changed no data. Steps before it may have run, so check them before you resubmit the whole job.
Common causes
- A data set named on a DD statement isn't in the catalog. IEF212I comes just before IEF272I.
- Another job holds a data set the step needs, and the system couldn't reserve it. IEF211I comes first.
- A new data set couldn't be created, for example because the name already exists or SMS rejected the request. Allocation or SMS (IGD) messages explain why.
- An earlier step abended, and this step has no COND=EVEN, COND=ONLY or IF ABEND test that lets it run afterwards.
- A backward reference points to a data set from a step that was bypassed, so the data set doesn't exist and allocation fails.
How to find the problem
- Open JESYSMSG in SDSF and find IEF272I. Read the lines just above it for the same step. An allocation message, such as IEF212I or an IGD message, means the step failed setup.
- If there is no allocation message for that step, look further up. An abend in an earlier step, shown by its abend code and the IEF450I line in JESMSGLG, means the step was skipped.
- Check JESMSGLG for the job as a whole. IEF453I JOB FAILED - JCL ERROR points to an allocation failure. IEF450I with an abend code points to an abend.
- Match the step name in JESJCL to see the DD statement that failed, or the COND and IF logic that applies to the step.
- The SDSF MAX-RC column shows JCL ERROR or the abend code for the job, which tells you quickly which case you have.
How to fix it
- Fix the cause named by the message before IEF272I. For IEF212I, correct the data set name or create the data set. For IEF211I, wait for the other job to finish or schedule the two jobs apart.
- If an earlier step abended, fix that abend first. Then rerun from the abended step with
RESTART=STEP020on the JOB statement, since the steps with IEF272I did nothing. - If a step must run even after an abend, such as a cleanup or a notification step, code
COND=EVENon its EXEC statement or put it inside// IF ABEND THEN. - Before you resubmit the whole job, check which earlier steps finished. Running them again may duplicate output or fail on data sets they already created.
What it looks like
IEF212I PAYRUN01 STEP020 PAYIN - DATA SET NOT FOUND IEF272I PAYRUN01 STEP020 - STEP WAS NOT EXECUTED.
IBM documentation
IBM documentation: IEF272I. Use the documentation for your installed release.
Related codes
Questions
Is IEF272I an error by itself?
No. It only records that a step didn't run. The real problem is in the message before it, or in an earlier step that abended.
Why does every step after the failing one show IEF272I?
After an abend, z/OS skips the remaining steps unless COND=EVEN, COND=ONLY or an IF ABEND test tells them to run. Each skipped step gets IEF272I.
Do I need to clean up anything for a step with IEF272I?
Not for that step. Its program never started, so it changed no data. Only the steps that ran need checking.