MainframeMaster

ICE000I Messages Explained

ICE000I is the first message many DFSORT steps produce. It is informational (the I suffix): it does not indicate an error. It identifies the DFSORT product and version, the date and time of the run, and then lists the control statements that were read from SYSIN. Understanding ICE000I helps you confirm that the correct control statements were used and which DFSORT level ran, and it is a useful reference when debugging a failed step. This page explains what each part of the message means and how to use it.

Diagnostics & Debugging
Progress0 of 0 lessons

What ICE000I Contains

The exact format of ICE000I can vary slightly by DFSORT level, but it typically includes: (1) the product identifier (e.g. 5694-A01, z/OS DFSORT), (2) the version and release (e.g. V2R5 for version 2 release 5), (3) the time in hours and minutes (hh:mm) and the date (day of week, month abbreviation, day of month, year), and (4) the control statements that were read from SYSIN. So in one message you see who (the product), when (date/time), and what (the control statements). That makes it easy to confirm that the right step and the right options were in effect.

Typical parts of ICE000I
PartExample or meaning
Product identifiere.g. 5694-A01, z/OS DFSORT
Version and releasee.g. V2R5 (version 2, release 5)
Time and datehh:mm ON day mmm dd, yyyy
Control statementsThe lines read from SYSIN

Control Statements Echo

After the header line, ICE000I (or continuation lines associated with it) lists the control statements that DFSORT read from SYSIN. That is the same content as your in-stream data or the dataset pointed to by SYSIN. So you see SORT, MERGE, OPTION, INCLUDE, OMIT, INREC, OUTREC, OUTFIL, SUM, JOINKEYS, REFORMAT, and so on, exactly as parsed. If you used a PROC that builds SYSIN, the echo shows what the PROC produced. If a continuation was in the wrong column, the echo shows what DFSORT actually read—which may differ from what you intended. When a step fails with a syntax or logic error, comparing the echoed statements to what you meant to submit is a good first step.

Version and Release

The version (V) and release (R) in ICE000I (e.g. V2R5) identify the DFSORT level that ran. Different levels support different features: for example, some date arithmetic or JOINKEYS options may exist only in later releases or with specific PTFs. When you look up a message or a keyword in the IBM manual, the documentation may say "V2R5 and above" or "requires PTF UK90025". Knowing your level from ICE000I lets you match your environment to the documentation. If you report a problem to support or to a colleague, including the version from ICE000I helps them give accurate advice.

Informational Only

ICE000I has the suffix I, which in IBM message conventions means informational. So it is not a warning and not an error. Seeing ICE000I at the start of a step is normal. If the step goes on to fail, the failure will be indicated by another message (often with suffix A) that appears later in the same SYSOUT. So do not treat ICE000I as the cause of a failure; use it as context and then look for the first A-level or error message to find the real cause.

When ICE000I Does Not Appear

If you do not see ICE000I in the step output, possible reasons are: (1) message output was suppressed with OPTION MSGPRT (e.g. MSGPRT=NONE), so informational messages are not printed; (2) messages were redirected with OPTION MSGDDN=ddname to another dataset, and you are looking at the default SYSOUT instead of that DD; or (3) the step failed before DFSORT could print (e.g. program load failure, missing required DD), so no DFSORT messages appear. In the first two cases, check your OPTION statement and look at the correct dataset. In the third, look at JCL or system messages for the earlier failure.

Explain It Like I'm Five

When the sort program starts, it says "Hi, I'm the sort program, version 2.5, and today is Monday Jan 15 2024. Here are the instructions you gave me." That "Hi" message is ICE000I. It is not saying something went wrong—it is just introducing itself and showing the instructions it read. So when you see it, that's normal. If something goes wrong later, the program will print a different, scarier message that tells you what actually failed.

Exercises

  1. Run a simple DFSORT step (e.g. OPTION COPY) and find ICE000I in SYSOUT. Note the version and release and the control statements listed. Do they match your SYSIN?
  2. Your step failed with ICE001A "TEXT BEGINS IN WRONG COLUMN." How can the control statements in ICE000I help you fix it?
  3. You need to confirm that your site has a PTF that adds a certain feature. The PTF documentation says "ICE201I H in SYSOUT indicates the PTF is applied." Where would you look for that, and what does ICE000I tell you about the base level?

Quiz

Test Your Knowledge

1. What does the ICE000I message contain?

  • Only the record count
  • The DFSORT product identifier (e.g. z/OS DFSORT), version and release, date and time, and the control statements read from SYSIN
  • Only errors
  • The SORTOUT dataset name

2. Is ICE000I an error?

  • Yes; I means error
  • No. The I suffix means informational; ICE000I is normal startup output. It confirms the step began and what control statements were used
  • Only if it appears twice
  • It depends on the version

3. Why would you look at the control statements in ICE000I after a job fails?

  • To see the record count
  • To verify that the SYSIN the step actually used matches what you intended—sometimes the wrong PROC or SYSIN is used, or a continuation is wrong; the echoed statements show what DFSORT parsed
  • To get the SORTIN name
  • ICE000I does not show control statements

4. What does the version in ICE000I (e.g. V2R5) tell you?

  • Only the PTF level
  • The DFSORT product version (V) and release (R). Some features or message texts depend on the level; when you look up messages or syntax, knowing your level helps
  • The JCL version
  • The z/OS version only

5. If you do not see ICE000I in your step output, what might that mean?

  • The step did not run DFSORT
  • Messages were suppressed (e.g. OPTION MSGPRT=NONE), or messages were redirected to another DD and you are looking at the wrong dataset, or the step abended before printing it
  • ICE000I is only for MERGE
  • You must use DEBUG to get it