Sort
Sort
Sort
SC26-7525-05
z/OS
SC26-7525-05
Note
Before using this information and the product it supports, be sure to read the general information under “Notices” on page
135.
This edition applies to Version 1 Release 12 of z/OS™ (5694–A01), and to all subsequent releases and modifications
until otherwise indicated in new editions.
This edition replaces SC26-7525-04.
© Copyright IBM Corporation 1995, 2010.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.
Contents
Figures . . . . . . . . . . . . . . . v Eliminating DFSORT Installation as a Source of Error 4
Eliminating Your Invoking Program as a Source of
Tables . . . . . . . . . . . . . . . vii Error . . . . . . . . . . . . . . . . . 4
Eliminating Your User Exit Routines as a Source of
Error . . . . . . . . . . . . . . . . . 4
About this document . . . . . . . . . ix Errors in Using Registers . . . . . . . . . 4
How to use this document . . . . . . . . . ix Errors in Using Main Storage . . . . . . . . 5
Required product knowledge . . . . . . . . ix Errors in Record Contents . . . . . . . . . 5
Referenced documents . . . . . . . . . . . x Being Aware of Data Management Rules . . . . . 5
Accessing z/OS DFSORT documents on the Internet x Correcting Common Errors . . . . . . . . . 6
Using LookAt to look up message explanations . . xi Common System Abends Related to Storage . . . 6
Miscellaneous System Abends . . . . . . . 7
How to send your comments to IBM xiii User Abends at Run Time . . . . . . . . . 9
If you have a technical problem . . . . . . . xiii Common Problems Reported by DFSORT Users . 9
For information about the accessibility features of z/OS, for users who have a
physical disability, see Appendix C, “Accessibility,” on page 133.
You should also be familiar with the information presented in the following related
documents:
Referenced documents
This document refers to the following documents:
Table 1. Referenced documents
Document title Order number
SMP/E Reference SA22-7772
z/OS DFSMSdfp Diagnosis GY27-7618
z/OS DFSMS Macro Instructions for Data Sets SC26-7408
z/OS DFSMS Using Data Sets SC26-7410
z/OS MVS JCL Reference SA22-7597
z/OS MVS Programming: Authorized Assembler SA22-7608
Services Guide
z/OS MVS System Management Facilities SA22-7630
(SMF)
z/OS TSO/E Command Reference SA22-7782
z/OS DFSORT Messages, Codes and Diagnosis Guide is a part of a more extensive
DFSORT library. These documents can help you work with DFSORT more
effectively.
Order
Task Publication Number
Planning For and Customizing z/OS DFSORT Installation and SC26-7524
DFSORT Customization
Learning to Use DFSORT z/OS DFSORT: Getting Started SC26-7527
Application Programming z/OS DFSORT Application SC26-7523
Programming Guide
Tuning DFSORT z/OS DFSORT Tuning Guide SC26-7526
From this Web site, you can link directly to the z/OS softcopy documents by
selecting the Library icon. You can also link to the IBM Publications Center to
order printed documentation.
You can use LookAt from these locations to find IBM message explanations for
z/OS® elements and features, z/VM®, z/VSE, and Clusters for AIX® and Linux®:
v The Internet. You can access IBM message explanations directly from the LookAt
Web site at www.ibm.com/servers/eserver/zseries/zos/bkserv/lookat/.
v Your z/OS TSO/E host system. You can install code on your z/OS systems to
access IBM message explanations using LookAt from a TSO/E command line
(for example: TSO/E prompt, ISPF, or z/OS UNIX® System Services).
v Your Microsoft® Windows® workstation. You can install LookAt directly from the
z/OS Collection (SK3T-4269) or the z/OS and Software Products DVD Collection
(SK3T-4271) and use it from the resulting Windows graphical user interface
(GUI). The command prompt (also known as the DOS > command line) version
can still be used from the directory in which you install the Windows version of
LookAt.
v Your wireless handheld device. You can use the LookAt Mobile Edition from
www.ibm.com/servers/eserver/zseries/zos/bkserv/lookat/lookatm.html with a
handheld device that has wireless access and an Internet browser.
You can obtain code to install LookAt on your host system or Microsoft Windows
workstation from:
v A CD in the z/OS Collection (SK3T-4269).
v The z/OS and Software Products DVD Collection (SK3T-4271).
v The LookAt Web site (click Download and then select the platform, release,
collection, and location that suit your needs). More information is available in
the LOOKAT.ME files available during the download process.
IBM or any other organizations will only use the personal information that you
supply to contact you about the issues that you submit.
You might notice changes in the style and structure of some content in this
document—for example, more specific headings for notes, such as Tip and
Requirement. The changes are ongoing improvements to the consistency and
retrievability of information in DFSORT documents.
The "Readers' Comments - We'd Like to Hear from You" section at the back of this
publication has been replaced with a new section “How to send your comments to
IBM” on page xiii. The hardcopy mail-in form has been replaced with a page that
provides information appropriate for submitting readers comments to IBM.
New Information
This edition includes the following new enhancements:
Improvements in Performance
DFSORT can now use memory object storage as intermediate work space or as an
extension of main storage. A memory object is a data area in virtual storage that is
allocated above the bar and backed by central storage. Using memory object
storage as intermediate work space is the preferred choice.
A new MOWRK installation and run-time option allows you to specify whether
memory object storage can be used for intermediate work space or as an extension
of main storage, as appropriate, or only as an extension of main storage.
The MOSIZE installation default will still limit the total amount of memory object
storage that can be used by a sort application.
Improved Diagnostics
DFSORT now provides additional information in new messages ICE248I and
ICE249I when message ICE083A, ICE254I or ICE258I is issued. These new
messages will assist with determining why DFSORT was unable to dynamically
allocate all of the requested disk work space and what corrective action may be
required.
Memory Objects
DFSORT's new shipped installation default of MOWRK=YES allows memory object
storage to be used as intermediate work space or as an extension of main storage,
as appropriate. MOWRK=YES can improve performance. If you want DFSORT to
only use memory object storage as an extension of main storage, as in previous
releases, you can set MOWRK=NO.
The MOSIZE installation default will still limit the total amount of memory object
storage that can be used by a sort application.
New Information
This edition includes the following new enhancements:
JOINKEYS Application
A new JOINKEYS application helps you to perform various "join" operations on
two files by one or more keys. A JOINKEYS application makes it easy to create
joined records in a variety of ways including inner join, full outer join, left outer
join, right outer join, and unpaired combinations. The two input files can be of
different types (fixed, variable, VSAM, and so on) and have keys in different
locations.
Three new control statements can be used for a JOINKEYS application. One
JOINKEYS statement is required for each input file to indicate the ddname of the
file, describe the keys, indicate whether the file is already sorted by those keys,
and so on. An inner join is performed by default, but a JOIN statement can be
used to specify a different type of join. A REFORMAT statement is used to describe
the fields from the two files to be included in the joined records, and optionally an
indicator of where the key was found ('B' for both files, '1' for file1 only or '2' for
file2 only).
The records from the two input files can be processed in a variety of ways before
and after they are joined.
DFSORT symbols can be used for fields and constants specified in the JOINKEYS
and REFORMAT statements and in the other DFSORT statements used with a
JOINKEYS application.
The date field can be in either Julian or Gregorian form, with 2-digit or 4-digit
years, in CH, ZD and PD format. For example, C'ccyyddd', P'yymmdd',
Z'dddccyy', C'ccyymmdd', P'dddyy', and so on.
CH output date fields can also be displayed with separators. For example,
C'ccyy/ddd', C'mm-dd-ccyy', and so on.
MERGE Operator
MERGE is a new operator of ICETOOL that allows you to merge up to 50 input
files that are already in order by the same keys. MERGE makes it easy to include
DFSORT MERGE operations in your ICETOOL jobs.
Various options of MERGE allow you to define the ddnames for the input data sets
(FROM), the ddnames for the output data sets (TO), the MERGE and other
DFSORT control statements to be used for the MERGE operation (USING), and so
on.
DFSORT symbols can be used in the DFSORT statements used with a MERGE
operator.
Any automated actions based on the ICE217A message should be evaluated since
the ddname will change for a MERGE application
New Information
This edition includes the following new enhancements:
Various options of FINDREP allow you to define one or more input constants and
a corresponding output constant (IN, OUT), define one or more pairs of input and
output constants (INOUT), start and end the find scan at specified positions
(STARTPOS, ENDPOS), stop after a specified number of constants are replaced
(DO), increase or decrease the length of the output record (MAXLEN), define the
action to be taken if nonblank characters overrun the end of the record
(OVERRUN), and specify whether output constants are to replace or overlay input
constants (SHIFT).
Group Operations
WHEN=GROUP is a new type of IFTHEN clause that allows you to do various
types of operations involving groups of records. WHEN=GROUP makes it easy to
propagate fields from the first record of a group to the other records of the group,
add an identifier to each record of the group, or add a sequence number to each
record of the group. These functions are useful by themselves, and can also
facilitate other types of group operations such as sorting groups, including or
omitting groups, and so on.
DFSORT symbols can be used for columns, fields and constants specified with
WHEN=GROUP clauses.
Various options of DATASORT allow you to define the number of header records
and/or trailer records (HEADER or FIRST, TRAILER or LAST), the ddname for the
input data set (FROM), the ddname for the output data set (TO), and the SORT
and other DFSORT control statements to be used for the DATASORT operation
(USING).
DFSORT symbols can be used for the number of header and trailer records
specified with DATASORT.
SUBSET
SUBSET is a new operator of ICETOOL that allows you to create a subset of the
input or output records by specifying that you want to keep or remove header
(first) records, trailer (last) records, or records with specific relative record
numbers. SUBSET makes it easy to keep or remove records based on these criteria.
SUBSET does not require an "identifier" or "sequence number" in the records to be
kept or removed.
Various options of SUBSET allow you to define the criteria (HEADER or FIRST,
TRAILER or LAST, RRN), the ddname for the input data set (FROM), the ddname
for the output data set to contain the records that meet the criteria and/or don't
meet the criteria (TO, DISCARD), whether the records that meet the criteria are to
be kept or removed (KEEP, REMOVE), whether the criteria are to be applied to the
input or output records (INPUT, OUTPUT), and DFSORT control statements to be
used for the SUBSET operation (USING).
DFSORT symbols can be used for the number of header and trailer records and for
the relative record numbers specified with SUBSET.
A new TLEFT option allows you to left justify the title lines instead of centering
them. A new TFIRST option allows you to only display the title lines on the first
page of the report instead of on every page of the report.
DFSORT symbols can be used for 'string1', 'string2' and 'string3' with
TITLE('string1','string2','string3').
New Information
This edition includes the following new enhancements:
Installation Options
ICEPRMxx members in PARMLIB can now be used to specify changes to
DFSORT's installation options. Each ICEPRMxx member can contain options to be
changed for any or all of DFSORT's eight installation environments (JCL, INV, TSO,
TSOINV and TD1-TD4). Up to ten ICEPRMxx members can be activated by a
START ICEOPT started task command. The options in the activated members will
be merged with the ICEMAC defaults at run-time.
The ICETOOL DEFAULTS operator can be used at any time to produce a report
showing the merged PARMLIB/ICEMAC installation default values for each
environment that will be used at run-time, as well as the active ICEPRMxx and
ICEMAC values.
The channel programs associated with DFSORT's input, output and work data sets
can now reside above 16 megabytes virtual.
Total storage usage for dataspace sorting can now be controlled with the EXPMAX,
EXPRES and EXPOLD installation options.
DFSORT now provides new fields ICEMNVLX, ICEMNVLY and ICEMNVLZ in its
SMF type 16 record to aid in tuning main storage usage.
The information DFSORT passes to the termination exit (ICETEXIT) now includes
setting ICEPTST flag bit 6 on if the phase TCB timings are not valid.
Improved Diagnostics
DFSORT now provides additional information in messages ICE098I, ICE253I and
ICE254I to aid in diagnosing and correcting out-of-space conditions associated with
message ICE046A.
DFSORT now provides specific reason codes and associated documentation to aid
in diagnosing and correcting errors associated with the following messages:
ICE017A, ICE018A, ICE024A, ICE042A, ICE043A, ICE109A, ICE126A and ICE251A.
Installation Options
ICEPRMxx members are now the recommended way to change DFSORT
installation defaults since they are easier to use and more flexible then the old
method using the ICEMAC macro and usermods. However, the old method is still
supported.
Dataspace Sorting
The existing EXPMAX, EXPOLD and EXPRES installation options now apply to
dataspace sorting as well as to memory object sorting and Hipersorting
ICEDTEX Macro
Previously, fields ICEDSBKA, ICEDSBKB and ICEDSBKC in the ICEDTEX macro
provided statistics on expanded storage pages available for dataspace sorting,
while fields ICEDSBTA, ICEDSBTB and ICEDSBTC provided total expanded and
central storage pages available for dataspace sorting. Since this level of DFSORT
and z/OS no longer supports expanded storage, fields ICEDSBKA, ICEDSBKB and
ICEDSBKC are no longer relevant and have been removed. If you have an
ICETEXIT program that uses fields ICEDSBKA, ICEDSBKB and ICEDSBKC, you
should remove any references to those fields (you can change your program to use
fields ICEDSBTA, ICEDSBTB and ICEDSBTC instead) and recompile your program
before using it with this level of DFSORT.
For this situation, if the output data set was allocated with 0 secondary tracks, it
will not have any space available. Thus, any subsequent attempt to add records to
that data set will fail with an out of space condition unless you explicitly specify a
space allocation for that data set.
New Information
This edition includes the following new enhancements:
COND now allows you to use &DATEn, &DATEn(c) and &DATEnP as aliases for
DATEn, DATEn(c) and DATEnP, respectively.
You can use various PARSE options to define the rules for extracting variable fields
into up to one hundred %nn fixed-length parsed fields (%00-%99), and then use
these %nn fields where you can use p,m fields in BUILD, OVERLAY, IFTHEN
BUILD, IFTHEN OVERLAY and FIELDS. You can edit, convert, justify, squeeze,
translate, and do arithmetic with %nn fields.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and FIELDS now allow
you to use a new JFY option to left-justify or right-justify the data in a field. For a
left-justified field, leading blanks are removed and the characters from the first
nonblank to the last nonblank are shifted left, with blanks inserted on the right if
needed. For a right-justified field, trailing blanks are removed and the characters
from the last nonblank to the first nonblank are shifted right, with blanks inserted
on the left if needed.
Optionally for JFY, specific leading and trailing characters can be changed to
blanks before justification begins, a leading string can be inserted, a trailing string
can be inserted, and the output length can be changed.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and FIELDS now allow
you to use a new SQZ option to left-squeeze or right-squeeze the data in a field.
For a left-squeezed field, all blanks are removed and the characters from the first
nonblank to the last nonblank are shifted left, with blanks inserted on the right if
Optionally for SQZ, specific characters can be changed to blanks before squeezing
begins, a leading string can be inserted, a trailing string can be inserted, a string
can be inserted wherever a group of blanks is removed between the first nonblank
and the last nonblank, blanks can be kept as is between paired apostrophes or
paired quotes, and the output length can be changed.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and FIELDS now allow
you to insert past and future dates (relative to the date of your DFSORT run) into
your records in various forms using new DATEn+r, DATEn-r, DATEn(c)+r,
DATEn(c)-r, DATEnP+r and DATEnP-r constants. &DATEn+r, &DATEn-r,
&DATEn(c)+r, &DATEn(c)-r, &DATEnP+r and &DATEnP-r can be used as aliases
for DATEn+r, DATEn-r, DATEn(c)+r, DATEn(c)-r, DATEnP+r and DATEnP-r,
respectively.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and FIELDS now allow
you to use FL format to convert 4-byte or 8-byte hexadecimal floating-point values
to integer values.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and FIELDS now allow
you to use new TO=PDF and TO=PDC options to convert numeric values to PD
values with F or C for the positive sign, respectively. The TO=PDC option is
equivalent to the existing TO=PD option.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and FIELDS now allow
you to use &DATEn, &DATEn(c), &DATEnP, &YDDD=(abc), &YDDDNS=(ab),
&TIMEn, &TIMEn(c) and &TIMEnP as aliases for DATEn, DATEn(c), DATEnP,
YDDD=(abc), YDDDNS=(ab), TIMEn, TIMEn(c) and TIMEnP, respectively.
IFTHEN WHEN now allows you to compare date fields in various formats to past
and future dates (relative to the date of your DFSORT run) using new DATEn+r,
DATEn-r, DATEn(c)+r, DATEn(c)-r, DATEnP+r, DATEnP-r, Y'DATEn'+r and
Y'DATEn'-r constants. &DATEn+r, &DATEn-r, &DATEn(c)+r, &DATEn(c)-r,
&DATEnP+r and &DATEnP-r can be used as aliases for DATEn+r, DATEn-r,
DATEn(c)+r, DATEn(c)-r, DATEnP+r and DATEnP-r, respectively.
IFTHEN WHEN now allows you to test a field for numerics (field,EQ,NUM) or
non-numerics (field,NE,NUM) in character (FS), zoned decimal (ZD) or packed
decimal (PD) format.
IFTHEN WHEN now allows you to use &DATEn, &DATEn(c) and &DATEnP as
aliases for DATEn, DATEn(c) and DATEnP, respectively.
OUTFIL Enhancements
BLKCCH1 is a new report option that allows you to avoid forcing a page eject at
the start of the report header; the ANSI carriage control character of '1' (page eject)
in the first line of the report header (HEADER1) is replaced with a blank.
BLKCCH2 is a new report option that allows you to avoid forcing a page eject at
the start of the first page header; the ANSI carriage control character of '1' (page
eject) in the first line of the first page header (HEADER2) is replaced with a blank.
SPLIT1R is a new option that allows you to write contiguous groups of records in
one rotation among multiple output data sets. A specified number of records is
written to each output data set and extra records are written to the last output data
set.
PARSE and IFTHEN PARSE are new options that allow you to extract variable
position/length fields into fixed-length parsed fields defined as %nn fields. PARSE
gives you powerful new capabilities for handling variable fields such as delimited
fields, comma separated values (CSV), tab separated values, blank separated
values, keyword separated fields, null-terminated strings, and many other types.
You can use various PARSE options to define the rules for extracting variable fields
into up to one hundred %nn fixed-length parsed fields (%00-%99), and then use
these %nn fields where you can use p,m fields in BUILD, OVERLAY, IFTHEN
BUILD, IFTHEN OVERLAY and OUTREC. You can edit, convert, justify, squeeze,
translate, and do arithmetic with %nn fields.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and OUTREC now allow
you to use a new JFY option to left-justify or right-justify the data in a field. For a
left-justified field, leading blanks are removed and the characters from the first
nonblank to the last nonblank are shifted left, with blanks inserted on the right if
needed. For a right-justified field, trailing blanks are removed and the characters
from the last nonblank to the first nonblank are shifted right, with blanks inserted
on the left if needed.
Optionally for JFY, specific leading and trailing characters can be changed to
blanks before justification begins, a leading string can be inserted, a trailing string
can be inserted, and the output length can be changed.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and OUTREC now allow
you to use a new SQZ option to left-squeeze or right-squeeze the data in a field.
For a left-squeezed field, all blanks are removed and the characters from the first
nonblank to the last nonblank are shifted left, with blanks inserted on the right if
needed. For a right-squeezed field, all blanks are removed and the characters from
the last nonblank to the first nonblank are shifted right, with blanks inserted on
the left if needed.
Optionally for SQZ, specific characters can be changed to blanks before squeezing
begins, a leading string can be inserted, a trailing string can be inserted, a string
can be inserted wherever a group of blanks is removed between the first nonblank
and the last nonblank, blanks can be kept as is between paired apostrophes or
paired quotes, and the output length can be changed.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and OUTREC now allow
you to insert past and future dates (relative to the date of your DFSORT run) into
your records in various forms using new DATEn+r, DATEn-r, DATEn(c)+r,
DATEn(c)-r, DATEnP+r and DATEnP-r constants. &DATEn+r, &DATEn-r,
&DATEn(c)+r, &DATEn(c)-r, &DATEnP+r and &DATEnP-r can be used as aliases
for DATEn+r, DATEn-r, DATEn(c)+r, DATEn(c)-r, DATEnP+r and DATEnP-r,
respectively.
BUILD, OVERLAY, IFTHEN BUILD, IFTHEN OVERLAY and OUTREC now allow
you to use &DATEn, &DATEn(c), &DATEnP, &YDDD=(abc), &YDDDNS=(ab),
&TIMEn, &TIMEn(c) and &TIMEnP as aliases for DATEn, DATEn(c), DATEnP,
YDDD=(abc), YDDDNS=(ab), TIMEn, TIMEn(c) and TIMEnP, respectively.
INCLUDE, OMIT and IFTHEN WHEN now allow you to compare date fields in
various formats to past and future dates (relative to the date of your DFSORT run)
using new DATEn+r, DATEn-r, DATEn(c)+r, DATEn(c)-r, DATEnP+r, DATEnP-r,
Y'DATEn'+r and Y'DATEn'-rconstants. &DATEn+r, &DATEn-r, &DATEn(c)+r,
&DATEn(c)-r, &DATEnP+r and &DATEnP-r can be used as aliases for DATEn+r,
DATEn-r, DATEn(c)+r, DATEn(c)-r, DATEnP+r and DATEnP-r, respectively.
INCLUDE, OMIT and IFTHEN WHEN now allow you to test a field for numerics
(field,EQ,NUM) or non-numerics (field,NE,NUM) in character (FS), zoned decimal
(ZD) or packed decimal (PD) format.
INCLUDE, OMIT and IFTHEN WHEN now allow you to use &DATEn,
&DATEn(c) and &DATEnP as aliases for DATEn, DATEn(c) and DATEnP,
respectively.
Symbol Enhancements
A symbol can now be used for a %nn parsed field. For example, if Account,%01 is
defined in SYMNAMES, Account can be used for %01. A symbol for %nn can be
used in DFSORT control statements where %nn can be used. A symbol for %nn
results in substitution of %nn.
A symbol can now be used for an output column. For example, if Start_address,18
is defined in SYMNAMES, Start_address: can be used for 18:. symbol: can be used
in DFSORT control statements where c: can be used. A symbol for p or p,m or
p,m,f results in substitution of p: for symbol: (output column).
A symbol can now be used for a new system symbol string constant.
symbol,S'string' can be used to define a string containing any combination of
EBCDIC characters and system symbols you want to use to form a character string.
For example, if whererun,S' &JOBNAME. on &SYSPLEX' is defined in
SYMNAMES, whererun can be used for the resulting constant. You can use
dynamic system symbols such as &JOBNAME, &DAY, and so on, system-defined
static system symbols such as &SYSNAME, &SYSPLEX, and so on, and
installation-defined static system symbols specified by your installation in an
IEASYMxx member of SYS1.PARMLIB.
A symbol for a system symbol string can be used in DFSORT and ICETOOL
control statements where a symbol for a character string can be used. DFSORT will
replace each system symbol in S'string' with its substitution text to create a
character string in the format C'new_string'.
DISPLAY and OCCUR now allow you to use a new TBETWEEN(n) option to
specify the number of blanks between title elements (title, page number, date,
time).
SELECT and SPLICE now allow you to use an INREC statement to reformat your
records before they are selected or spliced. All of the operands of the INREC
statement (PARSE, BUILD, OVERLAY, IFTHEN, IFOUTLEN and FIELDS) are now
available with SELECT and SPLICE.
SUM Enhancements
The maximum position for the end of a sum field has been raised to 32752.
Other Enhancements
DFSORT supports large physical sequential data sets for input, output and work
data sets.
DSA can now be specified as a run-time option. This allows you to adjust the
maximum amount of storage available to DFSORT for dynamic storage adjustment
of individual Blockset sort applications when SIZE/MAINSIZE=MAX is in effect.
DFSORT now accepts and ignores zero values in the starting and ending address
of the RECORD statement image in the 24-bit Parameter List. You can set these
addresses to zero if you don't want to pass a control statement to DFSORT using
the third and fourth words of the parameter list .
If you used these words as symbols, you must change them to other words, such
as lowercase or mixed case forms (for example, Date1p, date3(/) or pdc).
FL Conversion
DFSORT's INREC, OUTREC and OUTFIL statements, and ICETOOL's DISPLAY
operator, can now convert FL (hexadecimal floating-point) values to integer values,
providing you are running in z/Architecture mode. If you use FL in INREC,
OUTREC, OUTFIL or DISPLAY when running in ESA/390 mode, FL will be
recognized and the error messages issued may be different than those issued
previously when FL was not allowed in INREC, OUTREC, OUTFIL or DISPLAY.
Note: If ABEND is in effect, DFSORT will ABEND with U0652, but will not issue
ICE652A.
If you want to reformat your records after SELECT or SPLICE processing, use an
OUTFIL statement rather than an OUTREC statement.
New Information
This edition includes the following new enhancements:
ICETOOL Enhancements
ICETOOL's DISPLAY, OCCUR, RANGE, SELECT, SPLICE, STATS, UNIQUE and
VERIFY operators now allow you to use larger numeric values for ON and BREAK
fields. PD, ZD and FS fields can now be up to 31 digits (or more in some cases). BI
and FI fields can now be up to 8 bytes (or more in some cases).
ICETOOL's RANGE operator now allows you to use larger decimal values for the
HIGHER(n), LOWER(n), EQUAL(n) and NOTEQUAL(n) options. These values can
now be up to 31 digits.
ICETOOL's DISPLAY and OCCUR operators now allow you to use new DC1-DC3
(TOD date), DE1-DE3 (ETOD date), TC1-TC4 (TOD time) and TE1-TE4 (ETOD
time) formats for ON and BREAK fields. These new formats produce meaningful
representations of TOD and ETOD date and time values.
ICETOOL's DISPLAY and OCCUR operators now allow you to specify multiline
headings for the columns of your reports. You can specify one, two or three line
headings with the HEADER option.
ICETOOL's DISPLAY and OCCUR operators now allow you to use new edit masks
G1-G6 to display numeric values with 4 decimal digits in various ways.
ICETOOL's DISPLAY and OCCUR operators now allow you to use new
YDDD(abc) and YDDDNS(abc) options to insert the year (yyyy) and day of the
year (ddd) of your ICETOOL run into your titles in various forms.
ICETOOL's SPLICE operator now allows you to use a new KEEPBASE option to
keep the base records as well as the spliced records.
OUTFIL Enhancements
OUTFIL now allows you to reformat records in one of the following three ways
using unedited, edited, or converted input fields and a variety of constants:
v BUILD or OUTREC: The existing OUTREC parameter, or its new alias of BUILD,
allows you to reformat each record by specifying all of its items one by one.
BUILD or OUTREC gives you complete control over the items you want in your
reformatted OUTFIL records and the order in which they appear. You can delete,
rearrange and insert fields and constants.
v OVERLAY: The new OVERLAY parameter allows you to reformat each record by
specifying just the items that overlay specific columns. Overlay lets you change
specific existing columns without affecting the entire record.
v IFTHEN clauses: The new IFTHEN clauses allow you to reformat different
records in different ways by specifying how BUILD or OVERLAY items are
applied to records that meet given criteria. IFTHEN clauses let you use
sophisticated conditional logic to choose how different record types are
reformatted.
OUTFIL OUTREC, as well as BUILD, OVERLAY, and IFTHEN, now allows you to
use larger numeric values for fields and decimal constants to be edited, converted
or used in arithmetic expressions. PD, ZD and FS fields, and decimal constants,
can now be up to 31 digits. BI and FI fields can now be up to 8 bytes.
OUTFIL OUTREC, as well as BUILD, OVERLAY, and IFTHEN, now allows you to
use new UFF (unsigned free form) and SFF (signed free form) formats for fields to
be edited, converted or used in arithmetic expressions.
OUTFIL OUTREC, as well as BUILD, OVERLAY, and IFTHEN, now allows you to
use new DC1-DC3 (TOD date), DE1-DE3 (ETOD date), TC1-TC4 (TOD time) and
TE1-TE4 (ETOD time) formats for fields to be edited, converted or used in
arithmetic expressions. These new formats produce meaningful representations of
TOD and ETOD date and time values.
OUTFIL OUTREC, as well as BUILD, OVERLAY, and IFTHEN, now allows you to
use a set field in the CHANGE option (for example,
1,2,CHANGE=(4,C'FY',C'0001',C'VV',21,4)).
OUTFIL OUTREC, as well as BUILD, OVERLAY and IFTHEN, now allows you to
restart the sequence number when the binary value of a specified field changes (for
example, SEQNUM,5,ZD,RESTART=(11,4)).
OUTFIL OUTREC, as well as BUILD, OVERLAY, and IFTHEN, now allows you to
use DATE, DATE=(abcd), DATENS=(abc), YDDD=(abc), YDDDNS=(ab), TIME,
TIME=(abc) and TIMENS=(ab) options to insert the date and time of your DFSORT
run into your records in various forms.
OUTFIL INCLUDE and OMIT now allow you to use larger FS values for compare
fields. These values can now be up to 32 digits.
OUTFIL INCLUDE and OMIT now allow you to use larger decimal constants for
comparison to BI and FI fields. Decimal constants can now be up to
+18446744073709551615 for comparison to BI fields. Decimal constants can now be
between -9223372036854775808 and +9223372036854775807 for comparison to FI
fields.
OUTFIL INCLUDE and OMIT now allow you to use new UFF (unsigned free
form) and SFF (signed free form) formats for compare fields. A UFF or SFF field
can be compared to a UFF, SFF, FS, CSL or CST field or to a decimal constant.
OUTFIL TRAILERx now allows you to use larger numeric values for statistical
fields (total, maximum, minimum, average). PD, ZD and FS fields, and decimal
constants, can now be up to 31 digits. BI and FI fields can now be up to 8 bytes.
OUTFIL TRAILERx now allows you to use new UFF (unsigned free form) and SFF
(signed free form) formats for statistical fields (total, maximum,minimum, average).
OUTFIL TRAILERx now allows you to use TO=fo and fo (to) options to convert
statistical fields (total, maximum, minimum, average) and counts to BI, FI, PD, ZD,
ZDC, ZDF or FS output values.
OUTFIL HEADERx and TRAILERx now allow you to insert hexadecimal strings
(X'yy...yy' or nX'yy...yy') in your headers and trailers.
OUTFIL HEADERx and TRAILERx now allow you to use new YDDD=(abc) and
YDDDNS=(ab) options to insert the year (yyyy) and day of the year (ddd) of your
DFSORT run in your headers and trailers.
OUTFIL HEADERx and TRAILERx now allow you to use PAGE=(edit) and
PAGE=(to) to edit or convert the page number (for example,
PAGE=(M11,LENGTH=3)).
INREC and OUTREC now allow you to use new UFF (unsigned free form) and
SFF (signed free form) formats for fields to be edited, converted or used in
arithmetic expressions.
INREC and OUTREC now allow you to use new DC1-DC3 (TOD date), DE1-DE3
(ETOD date), TC1-TC4 (TOD time) and TE1-TE4 (ETOD time) formats for fields to
be edited, converted or used in arithmetic expressions. These new formats produce
meaningful representations of TOD and ETOD date and time values.
INREC and OUTREC now allow you to use a set field in the CHANGE option.
INREC and OUTREC now allow you to restart the sequence number when the
binary value of a specified field changes.
INREC and OUTREC now allow you to use new TO=ZDC and TO=ZDF options to
convert numeric values to ZD values with C or F for the positive sign, respectively.
The TO=ZDF option is equivalent to the existing TO=ZD option.
INREC and OUTREC now allow you to use new DATE, DATE=(abcd),
DATENS=(abc), YDDD=(abc), YDDDNS=(ab), TIME, TIME=(abc) and
TIMENS=(ab) options to insert the date and time of your DFSORT run into your
records in various forms.
SORT and MERGE now allow you to use new UFF (unsigned free form) and SFF
(signed free form) formats for control fields.
SORT and MERGE now allow you to use other characters besides '+' (plus) as a
positive sign in control field values for CSL, CST, ASL, and AST formats. A '−'
(minus) sign is treated as negative and any other sign (for example, blank) is
treated as positive.
INCLUDE and OMIT now allow you to use larger decimal constants for
comparison to BI and FI fields. Decimal constants can now be up to
+18446744073709551615 for comparison to BI fields. Decimal constants can now be
between -9223372036854775808 and +9223372036854775807 for comparison to FI
fields.
INCLUDE and OMIT now allow you to use new UFF (unsigned free form) and
SFF (signed free form) formats for compare fields. A UFF or SFF field can be
compared to a UFF, SFF, FS, CSL or CST field or to a decimal constant.
Other Enhancements
For sort and copy applications with concatenated variable-length input data sets
for SORTIN, DFSORT now uses the largest LRECL it finds in the concatenation.
DFSORT now allows control statements in SYSIN and SORTCNTL to contain labels
up to 70 characters, and allows any character in the label. DFSORT now ignores
statements with a label followed only by blanks.
16-Byte FS Fields
In order to handle larger FS fields (a sign and up to 31 digits), DFSORT and
ICETOOL will now treat a 16-byte FS field as having a maximum of 16 digits,
rather than 15 digits.
For ICETOOL's DISPLAY and OCCUR operators, ON and BREAK fields for
16-byte FS values may result in different formatting for the output reports. You can
use the new U15 formatting item to limit these values to 15 digits instead of 16
digits. For example, ON(11,16,FS,U15).
For INREC, OUTREC and OUTFIL OUTREC, 16-byte FS values may be edited or
converted differently for output. You can use EDIT=(pattern) or LENGTH=n to
change the length of the output fields, if appropriate. For example,
11,16,FS,EDIT=(SIIIIIIIIIIIIIIT),SIGNS=(+,-).
If you used these words as symbols, you must change them to other words, such
as lowercase or mixed case forms (for example, dc1 or Dc1).
If you do not receive any DFSORT messages, make sure that you supply a message
data set, and resubmit your job using a SORTDIAG DD statement with a DUMMY
parameter. The SORTDIAG DD statement specifies that all messages, including
diagnostic messages (ICE800I through ICE999I), and control statements be printed.
For example:
//SORTDIAG DD DUMMY
//SYSOUT DD SYSOUT=A
If you invoke DFSORT from a COBOL program, you might receive a COBOL
dump and a DFSORT dump. For the procedures in this manual, use only the
DFSORT dump.
If you are using PL/I, you must specify the NOSPIE and NOSTAE macro at run
time to ensure that you receive a DFSORT dump. If you do not, you might receive
only a PL/I dump.
If you invoked DFSORT from another program, and particularly if you opened a
file in your user exit routine, check that you specified a sufficiently large amount
of reserved storage with the RESALL, ARESALL, RESINV, or ARESINV run-time
option.
For more detailed information on main storage, see z/OS DFSORT Application
Programming Guide.
Ensure that registers you use for loading or storing are not accidentally overlaying
DFSORT code or work areas. In this case, DFSORT might work without errors with
one technique but fail with another.
For more detailed information on register usage, see z/OS DFSORT Application
Programming Guide.
You can see if too little space was left for sorting by studying the information in
messages ICE092I, ICE093I, ICE156I and ICE231I. If you did not receive any
messages, refer to “How to Get Messages” on page 3.
For more detailed information, see z/OS DFSORT Application Programming Guide.
Also, if you first restore all registers and then try to load register 1 from a changed
base register, you might pass the wrong information to DFSORT.
Specifically, when a new output data set is allocated with a unit count and volume
count greater than one but specifies no volume serial numbers, one volume is
allocated. If a second or succeeding DD statement within the same step requests
the same data set, the same volume is allocated to it. If this job step extends the
output data set to more volumes, this new volume information is not available to
the second or succeeding DD statement.
Thus, you should not use different DDs for a data set to be used for output and
then input in the same step, unless that data set cannot be extended to a second or
This section lists abends you might encounter when running DFSORT, and
suggests ways of correcting the problems. Not every possible problem can be
listed, but the list includes those most commonly reported to IBM personnel. Use
the information here in conjunction with Part 2, “Messages and Codes,” on page 11
and z/OS MVS System Codes.
Different messages might be issued for the same error situation, depending upon
which DFSORT technique is used.
PARM options and program control statement options are explained in z/OS
DFSORT Application Programming Guide.
The following list outlines the hierarchy for message and control statements for the
Blockset and Peerage/Vale sorting techniques. SORTDIAG DD, MSGPRT, and LIST,
as they are used here, represent all methods of specifying the appropriate function.
For example, FLAG (I) in the EXEC PARM field is equivalent to MSGPRT=ALL,
and installation option DIAGSIM=YES is equivalent to specifying a SORTDIAG DD
statement for every job.
| Note: When an error message (ICExxxA) is issued and the message data set is
| available, DFSORT will display the diagnostic messages (ICE75xI, ICE8xxI
| and ICE9xxI) even if they are not requested (by DIAGSIM=YES or a
| SORTDIAG DD). This can improve first failure data capture and remove the
| need to rerun the application to display diagnostic messages.
SORTDIAG DD statement
Prints all messages (including diagnostic messages); prints control statements.
A message data set DD statement should be provided.
When SORTDIAG DD is specified, Blockset error messages that are normally
suppressed are printed. This may result in an error message being printed for a
run that is actually successfully completed by another technique (as indicated
by a return code of 0 or 4).
MSGPRT=ALL and LIST in effect
Prints all messages except diagnostic messages; prints control statements. A
message data set DD statement should be provided.
MSGPRT=ALL and NOLIST in effect
Prints all messages except diagnostic messages; does not print control
statements. A message data set DD statement should be provided.
MSGPRT=CRITICAL and LIST in effect
Prints only critical error messages; prints control statements. A message data
set DD statement should be provided.
Control statements are not printed if MSGPRT=CRITICAL is in effect and
DFSORT is dynamically invoked using the 24-bit parameter list.
MSGPRT=CRITICAL and NOLIST in effect
Prints only critical error messages; does not print control statements. A
message data set DD statement should be provided.
MSGPRT=NONE in effect
Does not print messages; does not print control statements.
Use the MSGPRT option to control the printing of messages returned by the EFS
program. Use the LISTX and NOLISTX options to control the printing of control
statements returned by the EFS program; use these two options in the same way
you use LIST and NOLIST to control printing of DFSORT control statements.
LISTX and NOLISTX can be used independently of LIST and NOLIST. When a
SORTDIAG DD statement is specified, LISTX is used. If no verb request list is
returned at Major Call 1, NOLISTX is used.
See z/OS DFSORT Application Programming Guide for more information about
Extended Function Support.
MSGCON= ALL
CRITICAL
NONE
Console message choices are independent of the message data set choices.
Messages ICE097I and ICE158A are written only to the master console. Inclusion of
a SORTDIAG DD statement has no effect on console messages.
Because of the addition of the job name and the step name, some DFSORT
messages can be truncated from the right when they are written to the master
console.
DFSORT scans each control statement for errors, and prints an error message for
the first error detected. Scanning stops at the first error, and then continues with
the next control statement. If DFSORT detects an error, it usually terminates after
all the control statements are scanned. However, in some cases, detection of an
error by the Blockset technique results in the use of another technique that could
avoid termination, and, in other cases, Blockset terminates immediately without
completing control statement scanning.
directly below the control statement near the error. If an error is associated with a
specific control statement, DFSORT prints the error message directly below the
marker line or control statement.
ICEnnns c text
Where Represents
nnn Message number.
s Severity code. Values for s are:
A Critical error message; requires programmer action.
I Informational message; usually requires no programmer action.
c Diagnostic trace character. This character is usually not needed, but might
be requested by your IBM representative for diagnostic purposes.
jjjjjjjj Job name.
ssssssss
Step name.
text Message text.
conflicting statements. The first one encountered is v A control statement must contain an operation
used. definer followed by a blank on the first line.
Programmer response: No action is necessary, if the
parameters on the duplicate (second and subsequent) ICE006A OPERAND DEFINER ERROR
control statements are not needed. Otherwise,
Explanation: Critical. The first operand of a control
consolidate the parameters from the duplicate control
statement did not begin on the same line as the
statements into a single control statement.
operation definer, or an operand or operand value was
not valid, or a required operand was not specified.
ICE003A CONTINUATION LINE MISSING
System action: The program terminates.
Explanation: Critical. A continuation line was
Programmer response: Check for statements with
indicated by the previous line ending with a comma, or
invalid operands, invalid operand values, missing
with a nonblank entry in column 72, but no line
operands, or no operands.
followed.
System action: The program terminates.
ICE007A SYNTAX ERROR
Programmer response: Check for an overflow of
Explanation: Critical. A control statement contained an
parameters into column 72 or a missing continuation
error in syntax.
line.
System action: The program terminates.
ICE005A BLANK NEEDED IN COLUMN 1 OR Programmer response: Check the control statements
OPERATION NOT DEFINED for syntax errors. Some of the more common syntax
CORRECTLY errors are:
v Unbalanced parenthesis
Explanation: Critical. One of the following errors was
v Missing comma
found:
v Embedded blank
v An operation definer, that is, ALTSEQ, DEBUG, v Invalid format type
| END, INCLUDE, INREC, JOINKEYS, JOIN, MERGE, v Invalid operator
MODS, OMIT, OPTION, OUTFIL, OUTREC, v Invalid constant
| RECORD, REFORMAT, SORT or SUM,, started in v Continuation of DFSPARM PARM options using the
column 1 instead of column 2. An operation definer continuation column.
must be preceded by at least one blank in column 1. v Symbol used where it is not allowed
v A control statement did not contain one of the valid v Parsed field (%nn) used where it is not allowed.
operation definers.
v A control statement did not contain an operation ICE008A FIELD VALUE EXCEEDS MAXIMUM
definer followed by a blank on the first line. ALLOWABLE CHARACTERS
v A DFSPARM PARM was continued using the
Explanation: Critical. A specified parameter value was
continuation column.
too long. Most parameter values have a maximum
v A continuation line followed a line with an error. length of eight characters, but some can have longer or
v A control statement passed by a parameter list shorter maximum lengths.
contained a label.
System action: The program terminates.
System action: The program terminates.
Programmer response: Check control statements for
Programmer response: Check that each control parameter values that are too long. Refer to the
statement contains a valid operation definer and description of each parameter to verify the maximum
follows the syntax rules for the source of the control length for its values.
statements (DFSPARM, SYSIN, SORTCNTL, parameter
list) including:
ICE010A NO SORT OR MERGE CONTROL
v An operation definer in a control statement in SYSIN STATEMENT
or SORTCNTL must be preceded by at least one
blank or by a label and at least one blank. Explanation: Critical. All control statements have been
processed and either:
v A control statement in DFSPARM or a parameter list
v No SORT or MERGE control statement or OPTION
must not start with a label.
COPY statement was found, or
v An operation definer in a control statement in v A 24-bit parameter list did not contain a SORT or
DFSPARM must be preceded by at least one blank. MERGE control statement.
v A DFSPARM PARM parameter must appear on one
System action: The program terminates.
line.
Programmer response: Make sure that the 24-bit control statement for the errors indicated in the
parameter list contains a SORT or MERGE control explanation and correct the errors.
statement. If you are not using a 24-bit parameter list,
make sure you have supplied a SORT or MERGE
ICE015A VARIABLE RECORD TOO SHORT
control statement or an OPTION COPY statement.
Explanation: Critical. This message was issued for one
of the following reasons:
ICE011A DUPLICATE OR CONFLICTING
v An input data set contained an invalid RDW or
OPERANDS ON THE OPTION
BDW.
STATEMENT
v A record passed to DFSORT from user exit E15 or
Explanation: Critical. On an OPTION control E35 contained an invalid RDW.
statement, one of the following errors was found: v A variable-length record was too short to contain all
v A keyword was specified twice. fields or, if Blockset was not selected, shorter than
v A keyword and a variation of it were both specified. L4.
CKPT and CHKPT are variations, as are FILSZ and v A record did not contain the first byte of the first
SIZE. control field when VLSHRT was in effect and
v A keyword and its opposite were both specified. Blockset was not selected.
EQUALS and NOEQUALS are examples of this.
System action: The program terminates.
System action: The program terminates.
Programmer response: If the records are valid but too
Programmer response: Check the OPTION control short to contain all fields, use the VLSCMP option
statement for the errors indicated in the explanation (INCLUDE, OMIT) or VLSHRT option (INCLUDE,
and correct the errors. OMIT, SORT, MERGE) to prevent DFSORT from
terminating. Otherwise, take one or more of the
following actions:
ICE012A MISSING FIELDS OPERAND
DEFINER v Check that the input data set contains valid BDWs.
v Check that the input data set and all records passed
Explanation: Critical. A SORT, MERGE, or SUM
from exits contain variable-length records with valid
control statement did not contain the FIELDS operand.
RDWs.
System action: The program terminates. v Decrease L4 if it is too large.
Programmer response: Check for a SORT, MERGE, or v Check the input data set and all records inserted at
SUM control statement that does not have the FIELDS user exits E15 and E35 to see that all records contain
operand. all fields.
v Remove any records that are too short.
ICE013A INVALID SORT OR MERGE v Check your E15 and E35 routines and correct any
STATEMENT OPERAND errors.
Explanation: Critical. An invalid keyword operand
If ICETOOL was used, check each ON field of the
was detected on a SORT or MERGE control statement.
failing operator for incorrectly specified displacement
System action: The program terminates. (position) or length.
Programmer response: Make sure the SORT or
You can use the ICETOOL STATS operator with
MERGE control statement does not contain an invalid
ON(VLEN) to show the length of the shortest variable
keyword operand.
length record. You can use the ICETOOL DISPLAY
operator with ON(VLEN) to show the length of each
ICE014A DUPLICATE SORT OR MERGE variable length record.
STATEMENT OPERAND
Explanation: Critical. On a SORT or MERGE control ICE016A INVALID FIELDS OPERAND VALUE
statement, one of the following errors was found:
Explanation: Critical. The FIELDS operand of a SORT
v A keyword was specified twice.
or MERGE statement contained an invalid f or s value
v A keyword and a variation of it were both specified.
in a p,m,s or p,m,f,s field.
CKPT and CHKPT are variations, as are FILSZ and
SIZE. System action: The program terminates.
v A keyword and its opposite were both specified.
Programmer response: Check for invalid f and s
EQUALS and NOEQUALS are examples of this.
values in the control fields.
System action: The program terminates.
Programmer response: Check the SORT or MERGE
Programmer response: Make sure that routines are Explanation: Critical. A SORT or MERGE control
specified for valid user exits only, and that each exit is statement defined a control field to be modified by a
associated with only one routine. Exits that can be user-written routine (this was done by specifying E for
specified in the MODS statement are E11, E15, E16, E17, the control field sequence indicator), and user exit E61
E18, E19, E31, E35, E37, E38, E39, and E61. was not activated by a MODS control statement.
System action: The program terminates.
Restriction: For a merge-only application you can only
specify exits E31, E35, E37, E38, E39, and Programmer response: Check for conflicts in the
E61. SORT or MERGE and MODS statements with respect to
E and E61.
output data set. Example: The SORTOUT data set length record formats (for example, RECFM=VB
is allocated on a 3350 and has BLKSIZE=32000. and RECFM=VBS). Do not use a data set with
12. The block size cannot be determined or is not RECFM=U.
valid for DFSORT processing. Examples: The 4. Ensure that a variable length spanned input data
SORTIN DD statement has DUMMY or NULLFILE set (for example RECFM=VBS) is not preceded by
but does not have BLKSIZE=value. The block size a variable length unspanned input data set (for
of the first SORTIN data set cannot be determined example, RECFM=VB).
13. The record format is variable length and the
5. Ensure that all of the fixed length input data sets
OUTFIL output data set has a fixed length record
have the same record length. If appropriate, use
format, or OUTFIL parameter FTOV or VLFILL is
fixed input data sets padded to the largest record
specified and the OUTFIL output data set has a
length.
fixed length record format. Examples: SORTIN has
RECFM=VB, OUTFIL FNAMES=OUT1 is specified, 6. Let DFSORT set the output data set block size,
and OUT1 has RECFM=FB. SORTIN has specify BLKSIZE=value with a value equal to or
RECFM=FB, OUTFIL FNAMES=OUT2,FTOV is larger than the record length and a multiple of the
specified and OUT2 has RECFM=F. SORTIN has record length, or use an existing data set with a
RECFM=VB, OUTFIL FNAMES=OUT3, block size that is valid for the record length, as
VLFILL=C’*’,BUILD=(70) is specified and OUT3 appropriate.
has RECFM=FB. 7. Use managed tapes, or specify BLKSIZE=value,
14. The record format is fixed length and the OUTFIL with a value equal to the largest block size, in the
output data set has a variable length record first input DD statement.
format, or OUTFIL parameter VTOF or CONVERT 8. Ensure that all of the input data and output data
is specified and the OUTFIL output data set has a sets have fixed length record formats (for example,
variable length record format. Examples: SORTIN RECFM=FB), or that all of the input and output
has RECFM=FB, OUTFIL FNAMES=OUT1 is data sets have variable length record formats (for
specified, and OUT1 has RECFM=VBS. SORTIN example, RECFM=VB and RECFM=VBS). If you
has RECFM=VB, OUTFIL want to convert from fixed length input records to
FNAMES=OUT2,VTOF,BUILD=(5,60) is specified variable length output records, use an OUTFIL
and OUT2 has RECFM=VB. statement with FTOV. If you want to convert from
15. The input data set with the largest block size was variable length input records to fixed length
not the first input data set. Example: SORTIN01 output records, use an OUTFIL statement with
has BLKSIZE=15000 and SORTIN02 has VTOF and BUILD.
BLKSIZE=20000 and Blockset could not be used.
16. A data set with RECFM=F has a block size that is 9. Ensure that the SOLRF parameter is in effect. Use
not equal to the record length, or the first input INREC or OUTREC to pad the output records to
data set has RECFM=F and is followed by a data the needed length. Let DFSORT set the output
set with a different block size. Example: SORTOUT record length, specify LRECL=value with a value
has RECFM=F, LRECL=80 and BLKSIZE=160. equal to the reformatted record length, or use an
existing data set with a record length equal to the
System action: The program terminates. reformatted record length, as appropriate.
Programmer response: For the data set associated 10. Ensure that the record format is available and is
with the indicated ddname, and the indicated attribute, valid for DFSORT processing (for example,
take the action for the indicated reason code value (rsn) RECFM=F, RECFM=FB, RECFM=VB,
as follows: RECFM=VBS). Do not use RECFM=U. Specify
RECFM=value on the DD statement, if
1. Let DFSORT set the output data set block size,
appropriate, and especially for a DUMMY or
specify BLKSIZE=value with a value that is valid
NULLFILE data set. Specify RECORD
for the record length, or use an existing data set
TYPE=value, if appropriate, and especially for a
with a block size that is valid for the record
VSAM input data set.
length, as appropriate.
11. Ensure that the output data set block size is equal
2. Do not use a data set with LRECL=X. Ensure that
to or smaller than the track capacity for the device
the record length is available, and is not larger
on which the output data set resides.
than 32767 or the maximum allowed for the record
format. Specify LRECL=value on the DD 12. Ensure that the block size is available and is valid
statement, if appropriate, and especially for a for DFSORT processing. Specify BLKSIZE=value
DUMMY or NULLFILE data set. on the DD statement, if appropriate, and especially
for a DUMMY or NULLFILE data set.
3. Ensure that all of the input data sets have fixed
length record formats (for example, RECFM=FB), 13. If you want to use FTOV or VLFILL, ensure that
or that all of the input data sets have variable the OUTFIL output data set has a variable length
record format or no record format. If you want to
convert from variable length input records to fixed
length output records, use VTOF and BUILD and DFSORT was able to read in before it used all of the
ensure that the OUTFIL output data set has a fixed available intermediate storage.
length record format or no record format.
14. If you want to use VTOF or CONVERT, ensure The amount of intermediate storage required can vary
that the OUTFIL output data set has a fixed length depending on many factors including:
record format or no record format. If you want to v The amount of Hiperspace DFSORT is able to use at
convert from from fixed length input records to the time the sort is run
variable length output records, use FTOV and v The amount of main storage available
ensure that the OUTFIL output data set has a v The degree of randomness of the records to be sorted
variable length record format or no record format. v The values specified (or defaulted) for options such
as DYNALOC, DYNAUTO, DYNSPC, FILSZ/SIZE,
15. Rerun the job with a SORTDIAG DD statement to
AVGRLEN, or DYNALLOC
get message ICE800I, which indicates the reason
v The amount of padding required for short records
Blockset could not be used. If possible, remove the
when VLSHRT is in effect.
condition preventing the use of Blockset.
Alternatively, specify BLKSIZE=value, with a value System action: The program terminates.
equal to the largest block size, in the first input
DD statement. Programmer response: Take one or more of the
following actions:
16. Ensure that data sets with RECFM=F have a block v If dynamic allocation was used, refer to message
size equal to the record length, or specify ICE254I (if issued) for more information.
RECFM=FB in the first input DD statement. v If JCL work data sets were used, increase the amount
of work space available to DFSORT.
ICE044I EXIT Enn INVALID OPTION v If message ICE118I was received, refer to message
ICE253I for more information
Explanation: An invalid input/output option was v If you are sorting variable length records, refer to
passed to DFSORT at user exit E18, E19, E38, or E39. message ICE098I for more information.
The nn value in the above message text is replaced by v If appropriate, increase the amount of main storage
the number of the user exit at which the error occurred. available to DFSORT using the options
System action: The invalid option is ignored. MAINSIZE/SIZE or the JCL option REGION.
Increasing the amount of main storage available to
Programmer response: Check the parameter list DFSORT can help DFSORT use less intermediate
passed by the user-written routine against the table in storage. Avoid running a large sort in a small
Appendix A, “Valid Input/Output Options at User amount of main storage as this can degrade
Exits—ICE044I,” on page 129 before rerunning the performance and increase intermediate storage
application. An x in the table indicates an option that is requirements. In some cases, a small amount of main
allowed with the user exit in question. storage can force DFSORT to perform an
intermediate merge as indicated by message ICE247I;
ICE045I END SORT PH refer to ICE247I for more information on the
consequences of an intermediate merge and how to
Explanation: The sort (input) phase completed avoid it.
successfully. This message appears only when the v If VLSHRT was in effect and the total size of all
BALN or POLY tape technique was used. control fields was significantly larger than the
average LRECL for the data set, you may be able to
reduce the amount of work space required by
ICE046A SORT CAPACITY EXCEEDED -
reducing the total size of the control fields.
RECORD COUNT: n
Explanation: Critical. DFSORT was not able to
ICE047A RECORD COUNT OFF, SPECIFIED n,
complete processing with the intermediate storage
RECEIVED n
available (Hiperspace or disk work data sets). For work
data sets with secondary allocation allowed, DFSORT
overrides system B37 abends and continues processing; RCD COUNT OFF
this message is issued only when no more space is Explanation: Critical. Installation option FSZEST=NO
available in Hiperspace or on any allocated work data was specified or defaulted, and the number of records
set. received was NOT equal to the value specified in the
FILSZ=x or SIZE=y option in effect.
Note: DFSORT uses only the first volume of
multi-volume work data sets. The SPECIFIED field contains the value specified in the
FILSZ=x or SIZE=y option. The RECEIVED field
contains the actual number of records in the input data
The count n is either an approximation of the number
sets (for SIZE=y) or the actual number of records to be
of records or is the total number of records that
sorted or merged (for FILSZ=x). See the explanation of
Explanation: DFSORT diagnostic message for use by If DEBUG CTRx was used and Blockset was not
IBM software support personnel. selected, the n values could be meaningless.
For a tape work data set sort or Conventional merge
ICE050I END MERGE PH application, record counts that exceed 4294967295 will
be displayed as asterisks.
Explanation: DFSORT diagnostic message for use by
IBM software support personnel. System action: None.
Programmer response: If you are using user exit E15
ICE051A UNENDING MERGE or E35 and have any reason to suspect that you are
“losing” or “gaining” records, check message ICE055I.
Explanation: Critical. There was not enough main The sum of RECORDS IN plus INSERT should always
storage or work data set space available for DFSORT to be equal to the sum of RECORDS OUT plus DELETE.
run with. If it is not, you should also receive message ICE025A.
System action: The program terminates.
Programmer response: Assign more intermediate ICE055I INSERT n, DELETE n
storage or main storage and rerun the job. Reverse Explanation: The number of records inserted or
sequence files can require more space. deleted (prior to OUTFIL processing, if used) replaces
the values shown as n in the above format.
ICE052I END OF DFSORT If DEBUG CTRx was used and Blockset was not
Explanation: The program completed. selected, the n values could be meaningless.
System action: Returns control to the operating For a tape work data set sort or Conventional merge
system or invoking program. application, record counts that exceed 4294967295 will
be displayed as asterisks.
Programmer response: None.
System action: None.
Programmer response: See message ICE054I.
continue processing for certain invalid return codes the format of the RDW you are building at the
from the E15 and E35 user exits. beginning of each record.
In a COBOL-invoking program containing an input or For case 2, if the Blockset technique was selected, you
output procedure, check that control passes through the may be able to run the application by specifying
end of the input procedure before the output procedure OPTION NOBLKSET.
is entered, and through the output procedure before the
You can use the ICETOOL STATS operator with
sort is ended.
ON(VLEN) to show the length of the longest variable
Also check that the user exit did not overlay register length record. You can use the ICETOOL DISPLAY
15, for example, by inadvertently including the register operator with ON(VLEN) to show the length of each
in a load multiple (LM) instruction. variable length record.
For complete details of how return codes are For case 3, either reduce the record lengths, or replace
interpreted in various situations for the E15, E16, E32, the tape work data sets with disk work data sets so the
and E35 user exits, see the chapter on using your own Blockset technique can be used.
user exit routines in the z/OS DFSORT Application
For case 4, ensure that OPTCD=Q is specified on all
Programming Guide. In particular, see the detailed tables
ASCII tape input DD statements.
in the section on the E15/E35 return codes and
EXITCK. For case 5, ensure that all RDWs and BDWs are valid.
Programmer response: Refer to z/OS DFSMS Macro v An empty data set is used for input, but
Instructions for Data Sets for the meaning of the error NVSAMEMT is in effect.
code and, if possible, take appropriate action. v Concatenated VSAM data sets are used.
v The same VSAM data set defined without REUSE is
ICE076A VSAM INPUT ERROR i (nnn) ddname used for both input and output, but RESET is in
effect.
Explanation: Critical. i is either P (physical) or L
(logical), describing the type of error encountered for
the data set with the indicated ddname. nnn is the ICE079A VSAM CLOSE ERROR (nnn) ddname
VSAM feedback code (RPLERRCD) from a GET macro,
Explanation: Critical. nnn is the VSAM CLOSE
in decimal.
ERROR return code (ACBERFLG), in decimal, for the
System action: The program terminates. data set with the indicated ddname.
Programmer response: Refer to z/OS DFSMS Using System action: The program terminates.
Data Sets or z/OS DFSMS Macro Instructions for Data
Programmer response: Refer to z/OS DFSMS Using
Sets for the meaning of the error code and, if possible,
Data Sets or z/OS DFSMS Macro Instructions for Data
take appropriate action.
Sets for the meaning of the error code and, if possible,
take appropriate action.
ICE077A VSAM OUTPUT ERROR i (nnn)
[ddname]
ICE080I IN MAIN STORAGE SORT
Explanation: Critical. i is either P (physical) or L
Explanation: All records were sorted in main storage
(logical), describing the type of error encountered. nnn
or data space. Work data sets were not used.
is the VSAM feedback code (RPLERRCD) from a PUT
Hiperspace was not used.
macro, in decimal. The ddname of the data set in error is
given, if available. System action: None.
System action: The program terminates. Programmer response: None.
Programmer response: Refer to z/OS DFSMS Using
Data Sets or z/OS DFSMS Macro Instructions for Data ICE081A FIRST COMMUNICATION AREA
Sets for the meaning of the error code and, if possible, SPACE EXCEEDED
take appropriate action.
Explanation: Critical. The complexity of the
A VSAM logical error, reason code 8, can occur for a application caused dynamic areas and routines to
non-empty KSDS, RRDS, or VRRDS output data set if exceed the total fixed amount of storage allowed for
NORESET is in effect, or if the data set is defined them in the first communication area. This situation
without the REUSE option. normally occurs due to specification of one or more of
the following (in approximate order of importance):
A VSAM logical error, reason code 12, can occur if the
v A large number of SORT, MERGE, INREC, or
output data set is a KSDS and either the VSAM keys
OUTREC fields
are not in ascending binary sequence or there are
v Use of an E61 user exit
duplicate keys. If so, ensure that the keys are in
v Use of the VLSHRT option
ascending binary sequence and that there are no
v Use of the NOSZERO option
duplicate keys.
v Use of an ICETEXIT routine
Refer to z/OS DFSORT Application Programming Guide v Very large records.
for more information about VSAM data sets. v An EFS program requesting statements with a large
number of fields.
ICE078A VSAM OPEN ERROR (nnn) ddname System action: The program terminates.
Explanation: Critical. nnn is the VSAM OPEN ERROR Programmer response: Reduce the complexity of the
return code (ACBERFLG) in decimal, for the data set application. For example, reduce the number of SORT
with the indicated ddname. fields or specify OPTION NOVLSHRT, if possible.
System action: The program terminates.
ICE082I CHECKPOINT CANCELLED
Programmer response: Refer to z/OS DFSMS Macro
Instructions for Data Sets for the meaning of the error Explanation: No more work data set tracks were
code and, if possible, take appropriate action. available; therefore, the tracks allocated for CKPT were
given back to the sort work data sets.
Some of the more common reasons for a VSAM OPEN
error are as follows: System action: The program continues, but no
checkpoints are taken.
Programmer response: Increase the work space | v In JNF2CNTL for the JOINKEYS F2 subtask.
allocation for the next run.
ICE084I {BSAM|EXCP|VSAM} ACCESS
ICE083A RESOURCES WERE UNAVAILABLE METHOD USED FOR ddname
FOR DYNAMIC ALLOCATION OF
Explanation: This message identifies the access
WORK DATA SETS (xxxx)
method used for the identified data set.
Explanation: Critical.
System action: None.
v If xxxx is 064K:
Programmer response: None, unless you have any
The work space needed for each work data set
problems reading or writing the data set. If EXCP was
exceeds the limit of 64K tracks for a single, physical
used, you can force DFSORT not to use EXCP by
data set. Dynamic allocation could not be attempted.
specifying BSAM on the DEBUG control statement or
v If xxxx is not 064K: as an EXEC PARM.
DFSORT attempted to dynamically allocate work
data sets using the DYNALOC, DYNSPC, and
ICE085A SECOND COMMUNICATION AREA
DYNALLOC values in effect. Dynamic allocation
SPACE EXCEEDED - ADD AT LEAST
failed; xxxx indicates the failure code returned by the
nK BYTES TO REGION
system's dynamic allocation facility. See z/OS MVS
Programming: Authorized Assembler Services Guide for Explanation: Critical. The complexity of the
an explanation of the failure code. application caused dynamic areas and routines to
exceed the total fixed amount of storage allowed for
Two commonly received return codes are: them in the second communication area. This situation
normally occurs due to specification of one or more of
0218 The device type is defined to the system, but
the following (in approximate order of importance):
the requested device has insufficient space
v A large number of SORT, MERGE, INREC, or
available. For example, the device type is
OUTREC fields
defined to the system but no devices of that
v Use of an E61 user exit
type have been installed, or all devices of that
v Use of the VLSHRT option
type are mounted as private.
v Use of the NOSZERO option
021C The device type is not defined to the system. v Use of an ICETEXIT routine
For example, SYSDX was specified instead of v A large number of SUM fields.
SYSDA. v A large number of OUTFIL fields.
System action: The program terminates.
However, in a DFSMS environment, the return code is
usually 970C regardless of the specific error Programmer response:
encountered. v If n is not zero, increase the REGION value by at
least n KB, and ensure that the MAINSIZE value in
System action: The program terminates. effect is at least 200 KB.
Programmer response: v If n is zero and the MAINSIZE value in effect is less
than 200 KB, increase the MAINSIZE value to at least
v If xxxx is 064K:
200 KB.
Use the DYNALLOC=(,n) parameter to increase the v If n is zero and the MAINSIZE value in effect is at
maximum number of work data sets (n) such that least 200 KB, reduce the complexity of the
the work space needed for each work data set does application. For example, reduce the number of sort
not exceed 64K tracks. fields or specify OPTION NOVLSHRT, if possible.
v If xxxx is not 064K:
Ensure that work data sets can be dynamically ICE088I jobname.stepname.procstepname, INPUT
allocated. LRECL = n, BLKSIZE = n, TYPE = t
If message ICE118I was received, specify FILSZ=En Explanation: Gives current job name, step name,
with a reasonably accurate estimate of the number of procedure step name, and information related to the
records to be sorted. If you cannot specify FILSZ=En, input records when SORTIN or SORTINnn is present:
use DYNSPC=n to decrease the primary space v LRECL is the largest logical record length of the
allocated. input data sets.
v BLKSIZE is the largest block size (non-VSAM) or
| For a JOINKEYS operation, you can supply any needed largest control interval size (VSAM) used by
| parameters as follows: DFSORT.
v TYPE is the record format of one of the input data
| v In DFSPARM for the JOINKEYS main task. sets, and can be one or more of the following:
| v In JNF1CNTL for the JOINKEYS F1 subtask. – F - fixed-length input records
Explanation: Gives information related to the output Programmer response: None, unless DFSORT
records when SORTOUT is present: subsequently terminated abnormally. In that case, check
v LRECL is the logical record length of the output the z value to see how much storage was really
records. available to DFSORT. If space was the problem, you
v BLKSIZE is the block size (non-VSAM) or control have probably also received message ICE039A. If
interval size (VSAM) of the output data set. storage was heavily fragmented, the result might
v TYPE is the record format of the output data set and instead be a system 80A abend in either DFSORT or
can be one or more of the following: one of your own routines.
– F - fixed-length output records You can need considerably more than the normal
– V - EBCDIC or ASCII variable-length output minimum if the region is fragmented.
records
– B - blocked records
– S - standard for fixed-length records or spanned ICE093I MAIN STORAGE = (MAX,y,z)
for variable-length records Explanation: Gives information related to the use of
– A - ANSI control characters. main storage for this DFSORT application:
v (SDB) indicates that the system-determined optimum
block size was used. MAX The value MAX was in effect.
Programmer response: Ensure that the specified Explanation: Critical. A SORT, MERGE, or SUM
partitioned data set or PDSE member exists. control statement contained an invalid keyword
operand.
DFSORT can help DFSORT use less work data set If dynamic allocation of work space is used, DFSORT
space. Avoid running a large sort in a small amount allocates the primary space according to the DYNSPC
of main storage. value in effect. This can result in an underallocation or
v If dynamic allocation was used, check that the values overallocation, possibly leading to wasted space or an
for options DYNALLOC and FILSZ/SIZE were out-of-space condition, respectively. Performance may
appropriate. If necessary, specify these options. also be degraded.
v If JCL disk work data sets were used, increase the
System action: None.
amount of disk work space available to DFSORT.
v If tape work data sets were used, check that all reels Programmer response: None required, unless you
contained full-length tapes. (A bad tape may appear receive message ICE046A or ICE083A, in which case
short because of many write errors.) If all reels you should specify FILSZ=En with a reasonably
contained full-length tapes, rerun the application and accurate estimate of the number of records to be sorted.
specify more work data sets. If you receive message ICE046A with dynamically
allocated work space and you cannot specify
FILSZ=En, use DYNSPC=n to increase the primary
ICE117A I/O ERROR, jobname, stepname, unit
space allocated. If you receive message ICE083A and
address, device type, ddname, operation
you cannot specify FILSZ=En, use DYNSPC=n to
attempted, error description, last seek address
decrease the primary space allocated.
or block count, access method. (SYNADAF)
You may want to specify FILSZ=En even if you don't
Explanation: Critical. This message was issued for one
receive message ICE046A or ICE083A, because doing so
of the following reasons:
may improve resource usage and performance.
v The job control statements incorrectly specified
record length or blocking information for the data set | For a JOINKEYS operation, you can supply any needed
located on the device indicated by the “unit address” | parameters as follows:
field in the message. | v In DFSPARM for the JOINKEYS main task.
v A permanent error occurred during an I/O operation
on the indicated device. | v In JNF1CNTL for the JOINKEYS F1 subtask.
| v In JNF2CNTL for the JOINKEYS F2 subtask.
The most probable cause is a hardware-related error.
Note: FILSZ=E0 is ignored.
System action: If no user options are specified, the
program terminates.
ICE119A SUM FIELD OVERLAPS CONTROL
Operator response: If the “error description” field in FIELD
the message does not contain
“WRNG. LEN. RECORD” Explanation: Critical. A sum field in a SUM control
statement overlapped a control field in a SORT or
MERGE control statement.
run the job again with the indicated unit offline, using
an alternative unit or volume in its place at run time. System action: The program terminates.
Programmer response: Make sure that the DD Programmer response: Make sure that the sum fields
statement for the data set assigned to this device in the FIELDS operand of the SUM control statement
contains the correct DCB information. In a merge do not overlap control fields in the FIELDS operand of
application, if the device in error holds an input data the SORT or MERGE control statement.
set, make sure that the DCB information (except for
BLKSIZE) specified in the SORTIN01 DD statement
correctly describes the data in this device. ICE120I EXIT Enn IGNORED
Explanation: User exit E14 or E2n was specified in the
ICE118I UNKNOWN FILE SIZE - FILSZ=EN MODS statement, as identified in the message by Enn.
MAY IMPROVE RESOURCE USAGE Exit Enn is not supported and cannot be entered.
AND PERFORMANCE System action: The Enn operand is checked for correct
Explanation: DFSORT could not determine the input syntax, but the user exit is not used.
file size, and the number of records was not supplied Programmer response: Optional. Correct the MODS
by a FILSZ or SIZE value, that is, the input file size is statement by removing the identified Enn operand.
unknown. Generally, DFSORT can automatically
determine the input file size. However, in a few cases,
such as when an E15 supplies all of the input records ICE121A FILE SIZE IS TOO LARGE
or when information about a tape data set is not Explanation: Critical. The amount of data to be sorted
available from a tape management system, DFSORT exceeded a DFSORT implementation limit for the
cannot determine an accurate file size. maximum number of records that can be sorted.
DFSORT cannot handle the amount of data regardless
of environmental factors, such as the amount of work Programmer response: Make sure that the sum fields
data set space provided. Specific implementation limits in the FIELDS operand of the SUM control statement
include: do not overlap the RDW.
1. Variable-length records - 4294967295 records
2. EQUALS in effect - 4294967295 records
ICE125A SUM FIELD OVERLAPS SUM FIELD
3. VLSHRT in effect - 2147483647 records
4. Blockset technique not selected - 2147483647 records Explanation: Critical. A sum field in a SUM control
statement overlapped another sum field.
System action: The program terminates.
System action: The program terminates.
Programmer response: For cases 1 through 3, perform
the sort on subsets of the data set containing less than Programmer response: Make sure that the sum fields
the indicated maximum number of records. Then merge in the FIELDS operand of the SUM control statement
the sorted subsets into a single data set. do not overlap.
For case 4, rerun the job with a SORTDIAG DD
statement to get message ICE800I, which indicates the ICE126A INCONSISTENT REFORMATTING
reason Blockset could not be used. If possible, remove FOR {*INREC|*OUTREC|ddname}:
the condition preventing the use of Blockset. REASON CODE rsn, IFTHEN n
Alternatively, perform the sort on subsets of the data
set containing less than the indicated maximum Explanation: Critical. The FIELDS, BUILD, or IFTHEN
number of records. Then merge the sorted subsets into BUILD operand of an INREC or OUTREC statement, or
a single data set. the OUTREC, BUILD or IFTHEN BUILD operand of an
OUTFIL statement, contained a field that was
inconsistent with the format (fixed or variable) of the
ICE122A keyword VALUE INVALID input or output records, or with other fields.
Explanation: Critical. The numeric value specified for OUTFIL data sets for which VTOF or CONVERT is
the indicated keyword exceeded the DFSORT used have variable-length input records and fixed
processing limit of 562949953421311 records (Blockset length output records. OUTFIL data sets for which
selected) or 2147483647 records (Blockset could not be FTOV is used have fixed-length input records and
used). variable-length output records.
System action: The program terminates. The following information is displayed in the message:
Programmer response: Specify a numeric value for the v *INREC if the error is associated with an INREC
indicated keyword that is less than the processing limit. statement. *OUTREC if the error is associated with
an OUTREC statement. ddname if the error is
associated with an OUTFIL statement.
ICE123I CKPT OR CHKPT OPTION IGNORED
v rsn: The reason code associated with the error. The
Explanation: CKPT or CHKPT was specified in the reason code (listed below) helps you determine the
SORT or OPTION control statement for a sort specific cause of the error.
application, IGNCKPT=YES was specified during v n: 0 if the error is not associated with an IFTHEN
installation, and the Blockset technique was selected. clause. Otherwise, n identifies the number of the
The Blockset technique does not support the automatic IFTHEN clause associated with the error (starting at
checkpoint/restart facility, so the CKPT or CHKPT 1 for the first IFTHEN clause).
option was ignored.
System action: The program continues, but no The statement and operand associated with the error
checkpoints are taken. are identified as follows:
v *INREC and n=0 indicates that the FIELDS or BUILD
Programmer response: Specifying NOBLKSET on the
operand of the INREC statement caused the error.
OPTION control statement will allow you to take
checkpoints, except in cases where only the Blockset v *OUTREC and n=0 indicates that the FIELDS or
technique can be used (for example, when an OUTFIL BUILD operand of the OUTREC statement caused
control statement is specified). the error.
v ddname and n=0 indicates that the OUTREC or
BUILD operand of an OUTFIL statement caused the
ICE124A SUM FIELD OVERLAPS RECORD
error. ddname identifies the first data set in the
DESCRIPTOR WORD
associated OUTFIL group.
Explanation: Critical. A sum field in a SUM control v *INREC and n>0 indicates that an IFTHEN BUILD
statement overlapped the record descriptor word operand of the INREC statement caused the error. n
(RDW) for variable-length record processing. identifies the number of the associated IFTHEN
System action: The program terminates. clause (starting at 1 for the first IFTHEN clause in
the INREC statement).
The data set's parameters are listed only if LIST is in ICE143I t a TECHNIQUE SELECTED
effect (see message ICE128I). Explanation: t indicates the DFSORT technique chosen
for the run, and a indicates the application chosen for
A parameter in a statement other than the OPTION or the DFSORT technique. Message values are as follows:
DEBUG control statement completely overrides the
same or corresponding control statement in other t BLOCKSET – disk work data set sort,
sources. standard merge or copy
PEERAGE — disk work data set sort
A DEBUG control statement in the alternate parameter VALE — disk work data set sort
data set overrides only the same or corresponding CONVENTIONAL — tape work data set sort
parameters in a DEBUG control statement in the other or nonstandard merge
sources. This selective override does not affect the other
parameters in a DEBUG control statement in the a SORT
alternate parameter data set or the other sources. MERGE
COPY
An OPTION control statement in the alternate
System action: None.
parameter data set overrides only the same or
corresponding parameters in an OPTION, SORT, or Programmer response: None required. However, if
MERGE control statement in the other sources. This Blockset was not selected, you may want to remove the
selective override does not affect the other parameters condition preventing the use of Blockset. Rerun the job
in an OPTION, SORT, or MERGE control statement in with a SORTDIAG DD statement to get message
the alternate parameter data set or the other sources. ICE800I, which indicates the reason Blockset could not
be used.
See z/OS DFSORT Application Programming Guide for
complete details on the order of override.
ICE144A TOO MANY SUM FIELDS
System action: None.
Explanation: Critical. The complexity of the
Programmer response: None. application caused dynamic areas to exceed the storage
allowed for them.
ICE141A SPANNED RECORD ON ddname System action: The program terminates.
COULD NOT BE ASSEMBLED
Programmer response: Reduce the number of
Explanation: Critical. A spanned record on the summary fields.
indicated data set could not be properly assembled.
This message was issued for one of the following
ICE145A SVC nnn IS AN INVALID USER SVC
reasons:
v A segment length was greater than the LRECL. Explanation: Critical. The DFSORT installation
v A segment length was less than 4 bytes. defaults for your site indicate that SVC nnn is the
v The total length of segments was greater than the DFSORT SVC. SVC nnn is not compatible with the
LRECL. DFSORT release currently running. Either SVC nnn is
v Segments are blocked incorrectly for VBS data sets for a release of DFSORT other than this one, or SVC
(that is, a first and a last segment are in the same nnn is a non-DFSORT SVC.
block).
System action: The program terminates.
System action: The program terminates.
Programmer response: Report this message to your
Programmer response: Check the indicated data set
System action: None. Explanation: The VLSHRT option was in effect, and
one or more of the following situations exists:
Programmer response: None. v An INREC or OUTREC statement was specified.
v A copy application was specified without an
INCLUDE or OMIT statement.
ICE147A OPTION STATEMENT OPERAND
v More than one control field was specified, and
SORTIN OR SORTOUT NOT
Blockset was not selected.
ALLOWED
v The application had EFS processing in effect, and an
Explanation: Critical. The OPTION statement operand EFS01 or EFS02 user exit routine was supplied by the
SORTOUT was specified for a Conventional merge, or EFS program.
the operand SORTIN or SORTOUT was specified for a v Locale processing was required for sort or merge
tape work data set sort, or ICETOOL was used for a fields.
tape work data set sort.
System action: Processing continues; VLSHRT is not
System action: The program terminates. used for SORT, MERGE, INCLUDE, OMIT or SUM
statement fields, but is used for OUTFIL INCLUDE or
Programmer response: Remove the SORTIN or
OMIT parameter fields, if specified.
SORTOUT operand. You can use the SORTDD operand
of the OPTION statement to provide alternate ddnames Programmer response: None, unless message ICE015A
for SORTIN and SORTOUT. or ICE218A was received, in which case you can either
respecify your fields to be within the shortest record in
If ICETOOL was used, do not use tape work data sets.
the input data set, or use equivalent OUTFIL
parameters (for example, the INCLUDE and OUTREC
parameters of OUTFIL instead of the INCLUDE and
OUTREC statements) for the application.
If Blockset was not selected, rerun the job with a v Use an INREC or OUTREC statement with multiple
SORTDIAG DD statement to get message ICE800I, IFTHEN clauses to "OR" sets of conditions together,
which indicates the reason Blockset could not be used. and set a "flag" after the end of each record that
If possible, remove the condition preventing the use of satisfies a condition. Use an OUTFIL statement to
Blockset. keep (INCLUDE) or delete (OMIT) the records which
have the flag on, and then remove the flag.
ICE151A TOO MANY {*INCLUDE|*OMIT| In the following example, the input data set has
*INREC|*OUTREC|ddname} IFTHEN n RECFM=FB and LRECL=80. a1 to an and b1 to bn
CONDITIONS represent relational conditions. We use an INREC
statement to set a 'Y' flag in position 81 after the end
Explanation: Critical. The complexity of the conditions of each record for which any specified condition is
in a COND, INCLUDE, OMIT or IFTHEN WHEN, true. We use an OUTFIL statement to INCLUDE the
BEGIN or END operand caused dynamic areas to records with a 'Y' in position 81, and then we remove
exceed the storage allowed for them. The specific cause the flag so the output records have the same length
of the error is identified as follows: as the input records.
v *INCLUDE indicates that the COND operand of the //MULT EXEC PGM=ICEMAN
| INCLUDE statement, or the INCLUDE operand of a //SYSOUT DD SYSOUT=*
JOINKEYS statement, caused the error. n is 0. //SORTIN DD DSN=...
v *OMIT indicates that the COND operand of the //SORTOUT DD DSN=...
//SYSIN DD *
| OMIT statement, or the OMIT operand of a
OPTION COPY
| JOINKEYS statement, caused the error. n is 0. * If a1,OR,a2,OR,...,an is true,
v ddname and n=0 indicates that the INCLUDE or * set flag in 81 to ’Y’.
OMIT operand of an OUTFIL statement caused the INREC IFTHEN=(WHEN=(a1,OR,a2,OR,...,an),
error. ddname identifies the first data set in the OVERLAY=(81:C’Y’)),
associated OUTFIL group. * If b1,OR,b2,OR,...,bn is true,
* set flag in 81 to ’Y’.
v *INREC indicates that an IFTHEN WHEN, BEGIN or IFTHEN=(WHEN=(b1,OR,b2,OR,...,bn),
END operand of the INREC statement caused the OVERLAY=(81:C’Y’)),
error. n identifies the number of the associated * If none of the conditions is true,
IFTHEN clause (starting at 1 for the first IFTHEN * set flag in 81 to ’N’.
clause in the INREC statement). IFTHEN=(WHEN=NONE,OVERLAY=(81:C’N’))
* If the flag in 81 is ’Y’, include the
v *OUTREC indicates that an IFTHEN WHEN, BEGIN
* records.
or END operand of the OUTREC statement caused OUTFIL INCLUDE=(81,1,CH,EQ,C’Y’),
the error. n identifies the number of the associated * Remove the flag byte.
IFTHEN clause (starting at 1 for the first IFTHEN OUTREC=(1,80)
clause in the OUTREC statement). /*
v ddname and n>0 indicates that an IFTHEN WHEN,
BEGIN or END operand of an OUTFIL statement ICE152I OVERFLOW DURING SUMMATION -
caused the error. ddname identifies the first data set RC=n
in the associated OUTFIL group. n identifies the
number of the associated IFTHEN clause (starting at Explanation: The application was successfully
1 for the first IFTHEN clause in the OUTFIL processed, but overflow occurred for one or more pairs
statement). of summary fields. DFSORT set a return code of 0 or 4
as indicated by n. DFSORT only set a return code of 4
System action: The program terminates. if OVFLO=RC4 was in effect and summary fields
Programmer response: Reduce the number of overflowed.
conditions, or the size of the constants, in the COND, System action: Summation continues for pairs of
INCLUDE, OMIT or IFTHEN WHEN, BEGIN or END records for which overflow does not occur. Summation
operand that caused the problem. Alternatively, you is not performed for pairs of records for which
may be able to avoid reducing the number of overflow would occur; the original records are left
conditions, or the size of the constants, by using one of unchanged. DFSORT passes back a return code of n
the following techniques: unless it sets a higher return code for some other
v If NOSZERO is in effect and you can treat numeric reason.
–0 and +0 values as signed (that is, different) for this
application, use the SZERO option. Programmer response: If appropriate, redesign the
records so that summary fields do not overflow, or, if
v If possible, rewrite the conditions to use substring possible, use INREC to increase the size of the
comparison tests (see z/OS DFSORT Application summary fields (see z/OS DFSORT Application
Programming Guide for details) Programming Guide ), or specify the OVFLO=RC0,
OVFLO=RC4, or OVFLO=RC16 run-time option to
y The maximum amount of main storage 1 The SORTIN or SORTOUT data set was BDAM.
available to DFSORT above 16 MB virtual.
2 FREE=CLOSE was specified (ICEGENER).
z The actual amount of main storage available to
3 An attempt to open a data set caused a system
DFSORT above 16 MB virtual, after DFSORT
error.
has released the ARESALL and ARESINV
space. 4 The SORTIN or SORTOUT data set resided on an
unsupported device.
This message is only printed when Blockset is selected.
5 ASCII tapes had the following parameters:
System action: None.
(LABEL=AL or OPTCD=Q) and RECFM=D and
Programmer response: None. BUFOFF¬=L
or
Explanation: The initialization exit (ICEIEXIT) was a Total primary and secondary disk work space
used to change one or more of the options that apply allocated and available throughout sort processing
to your application. DFSORT used the changed options (in tracks). This space is not available for use by
| where appropriate. Messages ICE127I through ICE133I, other applications.
| ICE235I and ICE236I indicate which options DFSORT b Total primary and secondary disk work space
used. actually used during sort processing (in tracks).
System action: None.
Note: In some cases, DFSORT may free up
Programmer response: No action is necessary. If JCL-specified work space if it is determined that
appropriate, see your system programmer for an the space is not needed for the sort.
explanation of the changes made with the ICEIEXIT
routine. System action: None.
Programmer response: None.
ICE163A DFSORT CANNOT FIND THE
IEBGENER MODULE
ICE168I CENTURY WINDOW FOR Y2 FORMAT
Explanation: Critical. This message, issued only to the FIELDS IS FROM ssss TO eeee
master console, indicates the DFSORT ICEGENER
Explanation: Indicates the starting year (ssss) and
facility attempted to transfer control to the IEBGENER
ending year (eeee) for the century window to be used
module, but the DFSORT installation option for that
in conjunction with the specified Y2 format fields.
name was the same as the name for the ICEGENER
System action: Processing continues and DFSORT support. You can bypass the use of system-determined
passes back a return code of n unless it sets a higher block size for this application by specifying either
return code for some other reason. SDB=NO or a BLKSIZE value on the DD statement for
the output data set.
Programmer response: If appropriate, change the
application to produce records for the relevant OUTFIL
data sets (which you can identify by a DATA count of 0 ICE178I REALLOCATING VIO SORTWK DATA
in message ICE227I). Alternatively, specify the SETS TO REAL SORTDK DATA SETS
NULLOFL=RC0, NULLOFL=RC4, or NULLOFL=RC16 USING UNIT=device
run-time option on the relevant OUTFIL statements to
Explanation: SORTWKdd data sets specified in the
provide a different return code for this situation.
JCL were allocated on virtual devices (VIO). Because
the VIO=NO installation option was specified or
ICE175I ATTEMPT TO REALLOCATE VIO defaulted, DFSORT will attempt to reallocate the
WORK DATA SETS TO REAL SORTWKdd data sets as SORTDKdd data sets using
RESULTED IN VIO devices of the type indicated by device.
Explanation: Since VIO=NO was in effect, DFSORT System action: Processing continues; DFSORT
attempted to reallocate work data sets to real (non-VIO) attempts to reallocate the data sets.
devices, but could not. Since the reallocated data sets
Programmer response: If appropriate, allocate the
were directed to VIO again, DFSORT continued
SORTWKdd data sets on real devices to avoid
processing with the VIO work data sets, and issued this
reallocation.
warning message. The use of VIO for work data sets is
not recommended because:
v It prevents the use of large format data sets ICE179A RESOURCES WERE UNAVAILABLE
FOR VIO REALLOCATION OF WORK
v Performance might be degraded since DFSORT's
DATA SETS (xxxx)
Memory Object, Hiperspace, and Dataspace functions
already exploit processor storage to avoid DASD I/O Explanation: Critical. SORTWKdd data sets specified
to work datasets. in the JCL were allocated on virtual devices (VIO).
Because the VIO=NO installation option was specified
System action: Processing continues using the VIO
or defaulted, DFSORT attempted to reallocate the
work data sets. Large format data sets are not used.
SORTWKdd data sets as SORTDKdd data sets using a
Programmer response: No action is necessary. If real device of the type indicated in message ICE178I.
appropriate, verify that the DFSMS Automatic Class The reallocation failed; xxxx indicates the failure code
Selection (ACS) routines do not force DFSORT work returned by the system's dynamic allocation facility. See
data sets to VIO. z/OS MVS Programming: Authorized Assembler Services
Guide for an explanation of the failure code.
ICE176A service SERVICE ERROR (x-y) Two commonly received return codes are:
Explanation: Critical. The indicated system service 0218 The real device type is defined to the system,
failed when DFSORT called it. Message values are as but the requested device has insufficient space
follows: available. For example, the real device type is
defined to the system but no devices of that
x The return code from the service, in decimal.
type have been installed, or all devices of that
y The reason code from the service, in decimal, type are mounted as private.
or zero if unavailable.
021C The real device type is not defined to the
System action: The program terminates. system. For example, 3380 was specified
instead of 3390.
Programmer response: Contact IBM for programming
support.
However, in a DFSMS environment, the return code is
usually 970C regardless of the specific error
ICE177A DASD CALCULATION SERVICES encountered.
ERROR (x-y)
System action: The program terminates.
Explanation: Critical. DASD Calculation Services
Programmer response: Ensure that the VIO
returned an unexpected return or reason code when
SORTWKdd data sets can be reallocated on the real
DFSORT called it to determine the optimum block size
device indicated in message ICE178I, or if appropriate,
for an output data set.
allocate the SORTWKdd data sets on real devices to
System action: The program terminates. avoid reallocation.
Programmer response: Contact IBM for programming Alternatively, specify installation option VIO=YES (can
ICE180I HIPERSPACE STORAGE USED = nK Programmer response: If you want to sort the VSAM
BYTES data set in-place, ensure that VSAMIO and RESET are
in effect, and that the VSAM data set is defined with
Explanation: n is the number of Kilobytes of REUSE. Otherwise, ensure that the indd DD and outdd
Hiperspace storage used during this sort. If n is zero, DD statements do not specify the same VSAM data set.
Hiperspace storage was not used.
System action: None. ICE184I THE NUMBER OF RECORDS SORTED
Programmer response: None. WITH EQUAL KEYS IS n
Explanation: n is the number of records sorted having
ICE181A HIPERSPACE READ ERROR (xx) equal control keys.
[yyyyyyyy] System action: None.
Explanation: Critical. The HSPSERV SREAD service Programmer response: None.
request for a Hiperspace read failed. xx is the HSPSERV
return code (in decimal). yyyyyyyy is the reason code
(set only when the return code is 8). ICE185A AN xnnnn ABEND WAS ISSUED BY
DFSORT, ANOTHER PROGRAM OR
System action: The program terminates. AN EXIT (PHASE m y)
Programmer response: Refer to the HSPSERV service Explanation: Critical. DFSORT detected a system or
| documentation in the z/OS MVS Programming: user abend while it's ESTAE routine was in effect. The
| Authorized Assembler Services Reference EDT-IXG for a abend may have been issued by DFSORT, another
description of HSPSERV return codes and reason codes. program that called DFSORT, or a user exit called by
If possible, take appropriate action. DFSORT. Although DFSORT detected the abend,
The use of Hiperspace can be bypassed by specifying DFSORT is not necessarily the cause of the abend.
HIPRMAX=0 on the OPTION control statement. This message gives details about the abend as follows:
x The abend type, either S for system or U for
ICE182A HIPERSPACE WRITE ERROR (xx) user
[yyyyyyyy]
nnnn The abend code
Explanation: Critical. The HSPSERV SWRITE service
request for a Hiperspace write failed. xx is the This message gives details about DFSORT's application
HSPSERV return code (in decimal). yyyyyyyy is the mode (if known at the time of the error) and phase at
reason code (set only when the return code is 8). the time DFSORT detected the abend.
System action: The program terminates. m S, M, or C for a Blockset sort, merge, or copy,
Programmer response: Refer to the HSPSERV service respectively. m is P when the Peerage/Vale
| documentation in the z/OS MVS Programming: technique was used. m can also be blank if the
| Authorized Assembler Services Reference EDT-IXG for a abend occurred before DFSORT determined
description of HSPSERV SWRITE return codes and the application type.
reason codes. If possible, take appropriate action. y Phase number 0, 1, 2, 3, or 4.
The use of Hiperspace can be bypassed by specifying System action: The program terminates.
HIPRMAX=0 on the OPTION control statement.
Programmer response: Use the information in the
abend dump to determine if DFSORT, a calling
ICE183A CONDITIONS NOT MET TO USE THE program, or a user exit caused the abend, and take
SAME VSAM DATA SET FOR indd appropriate action.
AND outdd
For system abends, see the appropriate systems codes
Explanation: Critical. The indd DD statement and document.
outdd DD statement both specified the same VSAM
data set, but one of the following conditions prevented User abends are program specific. If Unnnn is reported
DFSORT from using the same VSAM data set for input in the message, nnnn in the range 1000-1675 or 2222
and output: may or may not have been issued by DFSORT. nnnn
v The application is a copy or merge outside that range was not issued by DFSORT.
v NOVSAMIO is in effect
ICE186A DFSORT CONTINUED AFTER ERROR ICE189A BLOCKSET REQUIRED BUT COULD
AND OUTPUT IS USABLE NOT BE USED - REASON CODE IS rsn
Explanation: Critical. An error was detected or an Explanation: Critical. DFSORT's primary technique,
abend occurred; however, the sort, copy, or merge was Blockset, could not be used due to the reason indicated
completed successfully. The SORTOUT data was by reason code rsn, the meaning of which is
written successfully or an E35 user exit disposed of all documented in message ICE800I.
of the output records. The SORTOUT data set written
Blockset was required to handle one of the following
by DFSORT was closed successfully.
situations which cannot be handled by DFSORT's
System action: The program terminates with the secondary techniques:
abend code. v LOCALE processing
v OUTFIL processing
Programmer response: The SORTOUT data set can be
| v JOINKEYS processing
used (provided the system did not delete it) even
| v MERGEIN processing
though the program terminated abnormally. Because of
| v Y2x, Y2xx, Y4x, PD0, FS, CSF, UFF, or SFF format
the error, one of the following DFSORT functions below
v PARSE, OVERLAY, FINDREP, IFTHEN, or
was not completed successfully:
IFOUTLEN processing
v The writing of final and statistical messages
v INREC or OUTREC processing with one of the
v The writing of an SMF record, if appropriate
following:
v The calling of a termination exit, if present
– p,m,HEX
v The closing of data sets, releasing of space, and other
– p,HEX
cleanup functions.
– p,m,TRAN=LTOU
– p,TRAN=LTOU
ICE187I DFSORT SVC LEVEL INCOMPATIBLE – p,m,TRAN =UTOL
WITH DFSORT PROGRAM LEVEL – p,TRAN=UTOL
– p,m,TRAN=ALTSEQ
Explanation: The running level of DFSORT did not – p,TRAN=ALTSEQ
match the installed level of the DFSORT SVC. This – p,m,f
incompatibility had no effect on the DFSORT run if the – p,m,lookup
SVC was not needed. If the SVC was needed, the run – p,m,JFY=(...)
could have terminated with a system abend code of – p,m,SQZ=(...)
56D or other failure. DFSORT uses the SVC with – %nn or %n
certain disk devices and to write the SMF record. See – SEQNUM
z/OS DFSORT Installation and Customization for more – DATE1, DATE1(c), DATE1P, DATE2, DATE2(c),
information about installing the SVC. Message ICE816I DATE2P, DATE3, DATE3(c), DATE3P, or +n and -n
was also printed if DFSORT abended trying to call the variations (for example, DATE1-20 or DATE3P+20)
SVC. – DATE4, DATE, DATE=(abcd), DATENS=(abc),
System action: Processing continues. YDDD=(abc) or YDDDNS=(ab),
– TIME1, TIME1(c), TIME1P, TIME2, TIME2(c),
Programmer response: Ask your system programmer TIME2P, TIME3, TIME3P, TIME, TIME=(abc), or
to check that the DFSORT SVC is installed properly for TIMENS=(ab)
this level of DFSORT and that the correct routing code – +n
for the SVC is selected. If necessary, rerun the job with – –n
a SORTDIAG DD dummy statement to get message – (...)
ICE816I. v A VSAM extended addressability data set
v To set the SORTOUT LRECL from the L3 length
ICE188I DATA SPACE STORAGE USED = nK (without E35, INREC or OUTREC), the OUTREC
BYTES length or the INREC length, with SOLRF in effect
v an FL format sort field with NOSZERO in effect
Explanation: n is the number of Kilobytes of data v VLLONG in effect and SORTOUT present
space storage used during this sort. If n is zero, data v VSAMEMT in effect for a sort or merge with VSAM
space storage was not used. input
System action: None. v The same VSAM data set was specified for both
input and output
Programmer response: None. v An HFS file was specified for input or output
v A tape data set with a block size greater than 32760
bytes was specified for input or output
v SDB=LARGE or SDB=INPUT was in effect and
DFSORT selected a block size greater than 32760
bytes for a tape output data set
v VLSHRT in effect with a SUM statement
v Position plus length for a control field exceeded 4093 dummy statement to get message ICE816I.
v Position plus length for a summary field exceeded
4093
ICE192I INVALID RETURN CODE FROM EXIT
v ICETOOL called DFSORT for DATASORT or SUBSET
Enn WAS ACCEPTED
processing
v ICETOOL called DFSORT for an operation involving Explanation: User exit Enn (E15 or E35)
SORTOUT, and NULLOUT=RC16 is in effect inappropriately passed DFSORT a return code of 0, 4,
v DB2 Utilities called DFSORT. 12 or 20. Because EXITCK=WEAK was in effect, the
v INCLUDE or OMIT processing with NUM invalid return code was accepted and interpreted as a
v A 33 to 256 byte PD, ZD, CSL, CST, CLO, CTO, ASL valid return code. See z/OS DFSORT Application
or AST format merge field Programming Guide for an explanation of how DFSORT
v A 256 byte PD format sort field with NOSZERO in interprets E15 and E35 return codes when
effect EXITCK=WEAK is in effect.
| v A program dynamically allocated DFSORT input,
| output or work data sets using the options for This message is issued once for E15 if it passes one or
| XTIOT, uncaptured UCBs, or DSAB above 16 more inappropriate return codes to DFSORT or once for
| megabyte virtual. E35 if it passes one or more inappropriate return codes
to DFSORT.
System action: The program terminates.
System action: Processing continues.
Programmer response: Correct the situation indicated
by the reason code (rsn) so Blockset can be used. Programmer response: None.
Alternatively, you can remove the source of the
requirement to use Blockset. However, this will result ICE193I ICEAMx INVOCATION
in the use of a less efficient technique. ENVIRONMENT IN EFFECT - ICEyyy
ENVIRONMENT SELECTED
ICE190A ddname DYNALLOC CALL FAILED - Explanation: ICEAMx indicates the invocation
RETURN CODE x AND REASON installation environment in effect for this run as
CODE y follows:
Explanation: Critical. For the data set with the v ICEAM1 - batch JCL directly invoked environment
associated ddname, the DYNALLOC SVC failed while v ICEAM2 - batch program invoked environment
attempting to obtain the pathname for an HFS file, or
v ICEAM3 - TSO directly invoked environment
while attempting to determine if the data set was an
HFS data set. x and y are the return code and reason v ICEAM4 - TSO program invoked environment
code, respectively, from the DYNALLOC SVC.
ICEyyy indicates the time-of-day installation
System action: The program terminates. environment (ICETDx) or invocation installation
Programmer response: Refer to the explanation for environment (ICEAMx) selected for this run. The set of
DYNALLOC Return Codes in z/OS MVS Programming: installation defaults for the selected installation
Authorized Assembler Services Guide for more information environment are used for the run.
about the indicated return code and reason code. If
possible, take appropriate action. An ICETDx installation environment can be selected
only if:
v It is specified by the ENABLE parameter of the
ICE191I DFSORT SVC NOT AVAILABLE -
ICEAMx installation environment in effect for the
PERFORMANCE MAY BE DEGRADED
run-time environment, and
Explanation: An input, output, or work data set was v It specifies a day and time range that includes the
on a cached disk control unit, but the DFSORT SVC day and time of the run (as listed in DFSORT's
was either not installed on the system or installed ICE000I message)
incorrectly. DFSORT did not use its SVC to set the
optimal caching mode for the data set, which could If an ICETDx installation environment is not selected,
have lengthened DFSORT's elapsed time. Message the ICEAMx installation environment in effect for the
ICE816I was also printed if DFSORT abended while run-time environment is selected.
trying to call the SVC.
System action: Processing continues. Note: You can use ICETOOL's DEFAULTS operator to
list merged PARMLIB/ICEMAC defaults in effect
Programmer response: Have your system programmer for each installation environment.
check to see that the DFSORT SVC has been installed
properly for this level of the DFSORT program and that System action: None.
the correct routing code for the SVC has been selected.
Programmer response: None.
If necessary, rerun the job with a SORTDIAG DD
Example: Example:
OUTFIL FTOV,VLFILL=C’*’ OUTFIL IFTHEN=(WHEN=(5,2,CH,EQ,C’AA’),
v PARSE, OUTREC, BUILD, OVERLAY or FINDREP OVERLAY=(10:C’A’)),
was specified with IFTHEN or IFOUTLEN. IFTHEN=(WHEN=INIT,BUILD=(1,80))
v An IFTHEN clause with WHEN=GROUP was
Example:
preceded by an IFTHEN clause with
OUTFIL FINDREP=(IN=C’ONE’,OUT=C’TWO’), WHEN=(logexp), WHEN=ANY or WHEN=NONE.
IFTHEN=(WHEN=INIT,OVERLAY=(25:C’YES’))
v OUTREC and BUILD, OUTREC and OVERLAY, Example:
OUTREC and FINDREP, BUILD and OVERLAY, OUTFIL IFTHEN=(WHEN=(5,2,CH,EQ,C’AA’),
BUILD and FINDREP, or OVERLAY and FINDREP OVERLAY=(10:C’A’)),
were specified. IFTHEN=(WHEN=GROUP,RECORDS=3,
PUSH=(8:SEQ=2))
Example: v An IFTHEN clause with WHEN=NONE was
OUTFIL BUILD=(1,20),OVERLAY=(10:C’A’) followed by an IFTHEN clause with WHEN=INIT,
v For an IFTHEN clause, WHEN was not specified. WHEN=WHEN=(logexp), or WHEN=ANY.
Example: Example:
OUTFIL IFTHEN=(OVERLAY=(10:C’A’)) OUTFIL IFTHEN=(WHEN=NONE,OVERLAY=(10:C’A’)),
v For an IFTHEN clause, WHEN=INIT, IFTHEN=(WHEN=ANY,BUILD=(1,80))
WHEN=(logexp), or WHEN=NONE was specified v The first IFTHEN clause with WHEN=ANY was not
without PARSE, BUILD, OVERLAY, or FINDREP. preceded by an IFTHEN clause with
Example: WHEN=(logexp).
OUTFIL IFTHEN=(WHEN=(5,1,CH,EQ,C’1’),HIT=NEXT) Example:
v For an IFTHEN clause, WHEN=GROUP was OUTFIL IFTHEN=(WHEN=INIT,OVERLAY=(10:C’A’)),
specified without BEGIN, END or RECORDS, or IFTHEN=(WHEN=ANY,BUILD=(1,80))
without PUSH v An IFTHEN clause with WHEN=ANY and without
Example: HIT=NEXT was followed by an IFTHEN clause with
WHEN=ANY.
OUTFIL IFTHEN=(WHEN=GROUP,
BEGIN=(9,2,CH,EQ,C’NO’)) Example:
v For an IFTHEN clause, WHEN=(logexp), OUTFIL IFTHEN=(WHEN=(5,1,CH,EQ,C’1’),
WHEN=ANY, or WHEN=NONE was specified with OVERLAY=(10:C’A’),HIT=NEXT),
PARSE, but without BUILD, OVERLAY, or FINDREP. IFTHEN=(WHEN=(5,1,CH,EQ,C’2’),
OVERLAY=(10:C’B’),HIT=NEXT),
Example: IFTHEN=(WHEN=ANY,OVERLAY=(28:C’ABC’)),
OUTFIL IFTHEN=(WHEN=NONE, IFTHEN=(WHEN=ANY,BUILD=(1,80))
PARSE=(%01=(FIXLEN=5,ENDBEFR=BLANKS)))
v For an IFTHEN clause, WHEN=INIT, System action: The program terminates.
WHEN=(logexp), WHEN=ANY, or WHEN=NONE Programmer response: Check the OUTFIL control
was specified with BEGIN, END, RECORDS or statement for the errors indicated in the explanation
PUSH. and correct the errors.
Example:
OUTFIL IFTHEN=(WHEN=INIT,PUSH=(9:5,8)) ICE215A SPECIFIED FEATURE IS ONLY
v For an IFTHEN clause, WHEN=GROUP was SUPPORTED BY OUTFIL STATEMENT
specified with PARSE, BUILD, OVERLAY or
FINDREP. Explanation: Critical. One of the following, which is
supported only by the OUTFIL control statement, was
Example:
specified on an INREC or OUTREC control statement:
OUTFIL IFTHEN=(WHEN=GROUP,BUILD=(9:5,8)) v A / in a FIELDS, BUILD, or IFTHEN BUILD
v For an IFTHEN clause, WHEN=INIT and BUILD operand
with / were specified v A VTOF or CONVERT operand
Example: v An FTOV operand
OUTFIL IFTHEN=(WHEN=INIT,BUILD=(1,25,/,26,25)) v A VLFILL=byte operand
v For an IFTHEN clause, BUILD with / and v A VLTRIM=byte operand
HIT=NEXT were specified. System action: The program terminates.
Example:
Programmer response: If a / was specified, use a / in
OUTFIL IFTHEN=(WHEN=(21,1,CH,EQ,C’A’), a BUILD or IFTHEN BUILD operand in an OUTFIL
BUILD=(1,25,/,26,25),HIT=NEXT) statement instead. If a VTOF, CONVERT, or
v An IFTHEN clause with WHEN=INIT was preceded VLFILL=byte operand was specified, use the same
by an IFTHEN clause with WHEN=(logexp),
WHEN=ANY or WHEN=NONE.
operand and BUILD in an OUTFIL statement instead. specify an LRECL up to 32767 bytes if you also specify
For example: RECFM=VBS.
OUTFIL BUILD=(1,60),FTOV If variable-length records are longer than the LRECL of
the OUTFIL data set, you may be able to use the
If an FTOV or VLTRIM=byte operand was specified, VLTRIM=byte parameter of the OUTFIL statement to
use the same operand and BUILD or IFTHEN BUILD shorten them. For example, VLTRIM=C' ' will remove
in an OUTFIL statement instead. For example: trailing blanks from the records.
OUTFIL VLTRIM=X’40’,
If variable-length output records are longer than the
IFTHEN=(WHEN=(5,1,CH,EQ,C’A’),BUILD=(1,40,45))
LRECL of the SORTIN data set, the first data set in the
concatenation does not have the largest LRECL as
ICE216A TOTAL LENGTH OF CONTROL required. Either specify the data set with the largest
FIELDS AND SUM FIELDS IS TOO LRECL first in the SORTIN concatenation, or specify
LONG LRECL=n as a parameter on the SORTIN DD statement
where n is equal to or greater than the length of the
Explanation: Critical. The total length of the SORT or
longest record.
MERGE control fields and SUM summary fields is too
long for DFSORT to process, or the complexity of the If variable-length records from an E15, E32, or E35 exit
application caused dynamic areas to exceed the storage are longer than the corresponding Ln value, correct the
allowed for them. Note that locale processing can RDW or Ln value, as appropriate.
significantly decrease the total length of the SORT or
You can use the ICETOOL STATS operator with
MERGE fields DFSORT can process.
ON(VLEN) to show the length of the longest
System action: The program terminates. variable-length record. You can use the ICETOOL
DISPLAY operator with ON(VLEN) to show the length
Programmer response: Remove one or more control
of each variable-length record.
fields or summary fields, or make them shorter.
The statement and operand associated with the error System action: The program terminates.
are identified as follows: Programmer response: Take the action for the
v *INREC and n=0 indicates that the FIELDS or BUILD indicated reason code value (rsn) as follows:
operand of the INREC statement caused the error. 1. Specify 1,4 before the separation field. . Examples:
v *OUTREC and n=0 indicates that the FIELDS or INREC FIELDS=(1,4,4X)
BUILD operand of the OUTREC statement caused
the error. OUTREC BUILD=(1,4,8:5C’*’)
v ddname and n=0 indicates that the OUTREC or
BUILD operand of an OUTFIL statement caused the OUTFIL BUILD=(1,4,C’ABCD’)
error. ddname identifies the first data set in the 2. Specify 1,n with n equal to or greater than 4 as the
associated OUTFIL group. first field. Examples:
v *INREC and n>0 indicates that an IFTHEN BUILD INREC BUILD=(1,4,5)
operand of the INREC statement caused the error. n
identifies the number of the associated IFTHEN OUTREC BUILD=(1,8,9,10)
clause (starting at 1 for the first IFTHEN clause in 3. Specify 1,n with n equal to or greater than 4 as the
the INREC statement). first field. Example:
v *OUTREC and n>0 indicates that an IFTHEN BUILD OUTREC IFTHEN=(WHEN=INIT,
operand of the OUTREC statement caused the error. BUILD=(1,8,3X,21,5,HEX))
n identifies the number of the associated IFTHEN 4. Specify 1,n with n equal to or greater than 4 as the
clause (starting at 1 for the first IFTHEN clause in first field. Example:
the OUTREC statement).
INREC BUILD=(1,4,10:X)
v ddname and n>0 indicates that an IFTHEN BUILD
5. Specify 1,4 before the modified or edited field.
operand of an OUTFIL statement caused the error.
Examples:
ddname identifies the first data set in the associated
OUTFIL group. n identifies the number of the
associated IFTHEN clause (starting at 1 for the first
IFTHEN clause in the OUTFIL statement).
sign (#), the dollar sign ($), the commercial at sign v The value contains a number longer than 31
(@), the underscore(_), and the hyphen (-). significant digits.
v The symbol, keyword or value is null (for example, v The constant contains a string longer than 64
symbol,,5,CH). characters.
v The symbol, keyword or value is followed by or System action: The program terminates.
contains an invalid delimiter.
Programmer response: Specify a symbol, value or
v p or m in p,m or p,m,f is 0 or greater than 32752 or
string that is less than or equal to the allowed limit.
contains a non-numeric character.
v q in POSITION,q is 0 or greater than 32752 or
contains a non-numeric character. ICE274A NEXT POSITION TO BE USED FOR *
IS LARGER THAN 32752
v symbol in POSITION,symbol references a symbol
that was not previously defined or which was Explanation: Critical. The SYMNAMES statement
previously defined without a valid position (for specifies an asterisk (*) for p requesting that the next
example, a symbol for a constant). position be used for p. However, the next position is
v n in SKIP,n is 0 or greater than 32752 or contains a greater than the limit for p of 32752.
non-numeric character. Calculation of the next position will be discontinued
v The decimal constant contains a non-numeric once a SYMNAMES statement error has been detected.
character other than a leading plus sign (+) or minus Therefore, ICE274A is only issued once and only if a
sign (-). previous SYMNAMES processing error was not
v An equal sign (=) is specified for p, m or f, but the detected.
previous position, previous length or previous format, System action: The program terminates.
respectively, was not established.
v f in p,m,f is not a valid format. The valid formats are Programmer response: Specify a value for p that is
AC, AQ, ASL, AST, BI, CH, CLO, CSF, CSL, CST, less than or equal to 32752. You can do this directly by
CTO, DC1, DC2, DC3, DE1, DE2, DE3, DT1, DT2, specifying a number for p or indirectly by specifying *
DT3, D1, D2, FI, FL FS, LS, OL, OT, PD, PD0, SFF, SS, for p and ensuring that the next position is less than or
TC1, TC2, TC3, TC4, TE1, TE2, TE3, TE4, TM1, TM2, equal to 32752. See z/OS DFSORT Application
TM3, TM4, TS, UFF, Y2B, Y2C, Y2D, Y2DP, Y2P, Programming Guide for an explanation of how the next
Y2PP, Y2S, Y2T, Y2TP, Y2U, Y2UP, Y2V, Y2VP, Y2W, position is set.
| Y2WP, Y2X, Y2XP, Y2Y, Y2YP, Y2Z, Y4T, Y4U, Y4V,
| Y4W, Y4X, Y4Y and ZD, and lowercase or mixed case ICE275A DUPLICATE SYMBOL
variations
Explanation: Critical. The symbol was used in a
v x in ALIGN,x is not a valid alignment. The valid
previous SYMNAMES statement. A symbol can only be
alignments are H, F, D, h, f and d.
used once in SYMNAMES.
v The character constant, system symbol constant,
hexadecimal constant, or bit constant does not have System action: The program terminates.
an ending apostrophe after the string. Programmer response: Remove or rename one of the
v The hexadecimal constant is null (X'') or contains an duplicate symbols.
odd number of digits (for example, X'123').
v The hexadecimal constant contains an invalid ICE276A RESERVED WORD - NOT ALLOWED
character. The valid characters are 0-9, A-F and a-f. FOR SYMBOL
v The bit constant is null (B'') or contains a number of
Explanation: Critical. The SYMNAMES statement
bits that is not a multiple of 8 (for example, B'1010').
specifies a DFSORT/ICETOOL reserved word for the
v The bit constant contains an invalid character. The symbol. Reserved words cannot be used for symbols.
valid characters are . (period), 0 and 1. The reserved words are as follows (uppercase only as
System action: The program terminates. shown): A, AC, ADD, ALL, AND, AQ, ASL, AST, BI,
CH, CLO, COPY, COUNT, COUNT15, CSF, CSL, CST,
Programmer response: Correct the symbol, value or CTO, D, DATE, DATE1, DATE1..., DATE2, DATE2...,
syntax error. DATE3, DATE3..., DATE4, DC1, DC2, DC3, DE1, DE2,
DE3, DIV, DT1, DT2, DT3, D1, D2, E, F, FI, FL, FS, H,
ICE273A SYMBOL OR VALUE IS TOO LONG HEX, LS, MAX, MIN, MOD, MUL, Mn, Mnn, NONE,
NUM, OL, OR, OT, PAGE, PAGEHEAD, PD, PDC, PDF,
Explanation: Critical. The SYMNAMES statement has PD0, SEQNUM, SFF, SS, SUB, SUBCOUNT,
one of the following errors: SUBCOUNT15, TC1, TC2, TC3, TC4, TE1, TE2, TE3,
v The symbol is longer than 50 characters. TE4, TIME, TIME1, TIME1P, TIME2, TIME2P, TIME3,
TIME3P, TM1, TM2, TM3, TM4, TS, UFF, VALCNT,
| VLEN, X, Y2x, Y2xx, Y4x, Z, ZD, ZDC, and ZDF, where
Programmer response: Use a symbol that is not one of Explanation: This message is followed by a listing of
the reserved words, such as a lowercase or mixed case the original ICETOOL operator statements before they
version of the word being used. For example, you are transformed by symbol processing. The operator
could use Valcnt (which is not a reserved word) instead statements listed are from TOOLIN or the calling
of VALCNT (which is). program's parameter list as indicated by message
ICE632I.
Programmer response: None. However, specifying | Explanation: Critical. A JOINKEYS application was
AVGRLEN=n with a reasonably accurate estimate of | requested by a JOINKEYS, JOIN or REFORMAT
the average record length can prevent DFSORT from | statement, or a JKFROM operand (ICETOOL COPY or
overallocating or underallocating dynamic work space. | SORT), but a JOINKEYS statement for file F1 or file F2,
| as indicated, was not found.
| For a JOINKEYS operation, you can supply
| AVGRLEN=n, if needed, as follows: | System action: The program terminates.
| v In DFSPARM for the JOINKEYS main task. | Programmer response: Supply two JOINKEYS
| v In JNF1CNTL for the JOINKEYS F1 subtask. | statements; one for F1 (with FILE=F1, FILES=F1 or
| F1=ddname) and another for F2 (with FILE=F2,
| v In JNF2CNTL for the JOINKEYS F2 subtask.
| FILES=F2 or F2=ddname).
| is required. However, a REFORMAT statement was not | all of the keys in the JOINKEYS FIELDS operand is less
| found. | than or equal to 4080 bytes.
| System action: The program terminates.
| ICE408A MERGE FUNCTION CANNOT BE
| Programmer response: Either specify a JOIN
| USED WITH JOINKEYS MAIN TASK
| statement with the ONLY operand, or specify a
| REFORMAT statement, as appropriate. | Explanation: Critical. A MERGE FIELDS=(p,m,s,...)
| statement was found for the main task of a JOINKEYS
| application in SYSIN, SORTCNTL, DFSPARM or a
| ICE405A JOINKEYS STATEMENTS HAD
| parameter list. A MERGE function cannot be used with
| MISMATCH IN NUMBER, LENGTH
| JOINKEYS.
| OR ORDER OF KEYS
| System action: The program terminates.
| Explanation: Critical. The keys (p,m,s) specified in the
| FIELDS operands of the JOINKEYS statements for F1 | Programmer response: Replace the MERGE
| and F2 did not match in one or more of the following | FIELDS=(p,m,s,...) statement with a MERGE
| ways: | FIELDS=COPY, SORT FIELDS=COPY, OPTION COPY
| v The two FIELDS operands have different numbers of | or SORT FIELDS=(p,m,s,...) statement, as appropriate.
| keys. For example, FIELDS for F1 has two keys and
| FIELDS for F2 has three keys. | ICE409A INSUFFICIENT STORAGE FOR
| v Corresponding keys in the two FIELDS operands | JOINKEYS APPLICATION - ADD AT
| have different lengths. For example, the second key | LEAST nMB
| for F1 has a length of 5 and the second key for F2
| has a length of 6.
| Explanation: Critical. DFSORT could not get the
| additional nMB of storage needed for this JOINKEYS
| v Corresponding keys in the two FIELDS operands | application.
| have different orders. For example, the third key for
| F1 has ascending order (A) and the third key for F2 | System action: The program terminates.
| has descending order (D). | Programmer response: Add at least nMB to the
| System action: The program terminates. | storage available to DFSORT (for example, increase the
| REGION size).
| Programmer response: Ensure that the FIELDS
| operands of the JOINKEYS statements for F1 and F2
| have the same number of keys, and that corresponding | ICE410A JOINKEYS APPLICATION
| keys have the same length and order. | TERMINATED - SEE ddname
| MESSAGES
| ICE406A JOINKEYS STATEMENT FIELD ENDS | Explanation: Critical. This message is issued by
| AFTER POSITION 32752 | subtask1 (for file F1) or subtask2 (for file F2) of a
| JOINKEYS application to indicate that the main task
| Explanation: Critical. The last byte of the key (p,m,s) | terminated. ddname is the ddname associated with the
| in a JOINKEYS FIELDS operand ended beyond | message data set for the main task.
| position 32752. Each key must end at or before position
| 32752 (position plus length must not be greater than | System action: The program terminates.
| 32753). For example, 32752,1,A is valid because it ends | Programmer response: See the messages in the
| at position 32752, but 32752,2,A is invalid because it | indicated ddname data set for information about the
| ends at position 32753. | main task. Correct the error that caused the main task
| System action: The program terminates. | to terminate.
| Explanation: Critical. The total length of all of the | System action: None.
| keys (p,m,s) in a JOINKEYS FIELDS operand exceeded | Programmer response: None.
| the limit of 4080 bytes.
| System action: The program terminates.
| Programmer response: Ensure that the total length of
Chapter 3. Informational and Error Messages 77
Informational and Error Messages
| ICE412A REFORMAT REQUIRES RDW IN | ICE414A ddname (Fn) type FIELD END AT p IS
| FIRST FIELD | BEYOND LENGTH OF n
| Explanation: The FIELDS operand of the REFORMAT | Explanation: Critical. A JOINKEYS or REFORMAT
| statement has a position without a length (p without | statement specifies a field which ends beyond the
| m) as its last field, but the first field does not include | maximum record length. The information displayed in
| the RDW (1,n with n equal to or greater than 4). For | the message is as follows:
| example, the REFORMAT statement is: | v the ddname of the input file with the field in error.
| REFORMAT FIELDS=(F1:5,8,F2:1,20,F1:15) | v the file (F1 or F2) with the field in error.
| v the type of field in error as follows:
| instead of:
| – KEY to indicate a field in the FIELDS operand of a
| REFORMAT FIELDS=(F1:1,8,F2:1,20,F1:15)
| JOINKEYS statement.
| REFORMAT FIELDS=(F1:1,4,?,F1:5)
| – REFORMAT to indicate a field in the FIELDS
| operand of a REFORMAT statement.
| System action: The program terminates. | v the position (p) at which the field ends.
| Programmer response: Include the RDW (1,n with n | v the maximum record length (n) which the ending
| equal to or greater than 4) in the first field, or do not | position exceeded
| use a position without a length, as appropriate.
| System action: The program terminates.
| v F1: is used for the first field (which includes the | Explanation: Critical. The maximum length (n) of the
| RDW), but F1 does not refer to a TYPE=V file. | joined records for a JOINKEYS application, as defined
| v F2: is used for the first field (which includes the
| by the REFORMAT statement or by default if a
| RDW), but F2 does not refer to a TYPE=V file.
| REFORMAT statement was not specified, exceeds the
| maximum length (m) of 32760 for TYPE=F records or
| v F1: is used for a position without length field, but F1 | 32767 for TYPE=V records.
| does not refer to a TYPE=V file.
| v F2: is used for a position without length field, but F2
| System action: The program terminates.
| does not refer to a TYPE=V file. | Programmer response: Reduce the maximum length
| of the joined records so it does not exceed the
| For example, SORTJNF1 for F1 has RECFM=FB and | maximum length of 32760 for TYPE=F records or 32767
| SORTJNF2 for F2 has RECFM=VB and the REFORMAT | for TYPE=V records.
| statement is:
| Note that the maximum LRECL for RECFM=VB records
| REFORMAT FIELDS=(F1:1,20,F2:5,6,15) | is 32756 and the maximum LRECL for RECFM=VBS
| records is 32767; if you want RECFM=VBS records,
| instead of: | ensure that RECFM is specified appropriately for the
| REFORMAT FIELDS=(F2:1,4,F1:1,20,F2:5,6,15) | output data set.
| Programmer response: See the messages in the | Explanation: Critical. The last byte of a field (p,m) in
| ddname2 data set for information about the subtask. | a REFORMAT FIELDS operand ended beyond position
| Correct the error that caused the subtask to terminate. | 32767. Each field must end at or before position 32767
| (position plus length must not be greater than 32768).
| For example, 32767,1 is valid because it ends at
| ICE419I JOINED RECORDS: TYPE=x, | position 32767, but 32767,2 is invalid because it ends at
| LENGTH=n | position 32768.
| Explanation: Indicates the record type (F or V) and | System action: The program terminates.
| maximum record length (n) of the joined records
| passed as input to the main task of a JOINKEYS
| Programmer response: Ensure that each field in the
| application.
| REFORMAT FIELDS operand ends at or before position
| 32767.
| System action: None.
| Programmer response: None. | ICE424A ddname (Fn) KEY IS OUT OF
| SEQUENCE
| ICE420A COULD NOT ALLOCATE ddname FOR | Explanation: Critical. The SORTED operand was
| Fn MESSAGES - SUPPLY DD | specified without the NOSEQCK operand on the
| STATEMENT | JOINKEYS statement associated with the indicated
| ddname for file F1 or F2. DFSORT checked the records
| Explanation: Critical. For a JOINKEYS application, a
| of the indicated file and found a record out of sequence
| required message data set was not found and could not
| for the keys specified in the FIELDS operand of the
| be dynamically allocated. A DD statement for the
| JOINKEYS statement.
| indicated ddname was required for the messages
| associated with the subtask for the F1 or F2 file. A DD | System action: The program terminates.
| statement for that ddname was not found, so DFSORT
| attempted to dynamically allocate a SYSOUT=*
| Programmer response: Remove the SORTED operand
| message data set. However, the message data set could
| from the JOINKEYS statement for the indicated file (F1
| not be allocated.
| or F2) to force DFSORT to sort that file by the specified
| keys.
| System action: The program terminates.
| Programmer response: Supply a message data set
| ICE427A verb STATEMENT CANNOT BE USED Explanation: Indicates the start of the ICETOOL run.
| WITH JOINKEYS SUBTASK System action: None.
| Explanation: Critical. For a JOINKEYS application, a Programmer response: None.
| JOINKEYS, JOIN, MERGE, OUTFIL, OUTFILE,
| OUTREC, REFORMAT or SORT statement was found
| in JNF1CNTL for subtask1 or in JNF2CNTL for ICE601I DFSORT ICETOOL UTILITY RUN
| subtask2. These statements cannot be used for a ENDED - RETURN CODE: nn
| JOINKEYS subtask. Explanation: Indicates the end of the ICETOOL run
| System action: The program terminates. and the highest return code encountered. Message
ICE602I gives the return code for each operation.
| Programmer response: Remove all statements that
| cannot be used for a JOINKEYS subtask from System action: None.
| JNF1CNTL or JNF2CNTL. Programmer response: None if nn is 00. Otherwise,
check the ICE602I messages for non-zero return codes
| ICE428A TOO MANY DUPLICATES OF ONE and take the action indicated.
| KEY IN ddname (F2)
| Explanation: Critical. The F2 file associated with the ICE602I OPERATION RETURN CODE: nn
| indicated ddname contained more duplicates for a Explanation: Indicates the return code for this
| single key than DFSORT could process with the storage operation.
| available.
System action: If nn is greater than 04, this operation
| System action: The program terminates. was terminated due to an error.
| Programmer response: If possible, increase the storage Programmer response: None if nn is 00, or if nn is 04
| available to DFSORT (for example, try specifying and message ICE651I was issued. Otherwise:
| REGION=0M). Alternatively, if the maximum v If nn is 04, match the identifier in message ICE606I
| duplicates for a single key in file F1 is less than the or ICE627I for this operation to the same identifier in
| maximum duplicates for a single key in file F2, reverse DFSORT message ICE200I (in the DFSMSG data set)
to find the set of DFSORT messages for this v Mutually exclusive operands were used. Example:
operation. If appropriate, correct the condition that BLANK and PLUS for DISPLAY or WITHEACH and
caused the return code of 4 indicated in the relevant VLENOVLY for SPLICE.
DFSORT informational message. v A numeric value was too low or too high. Example:
v If nn is 12, check the error messages for this LINES(9) or LINES(1000)
operation in the TOOLMSG data set and correct the v A string was not enclosed in apostrophes. Example:
indicated errors. HEADER(Revenue), HEADER(’Revenue),
v If nn is 16, match the identifier in message ICE606I HEADER(’Revenue"), or HEADER("Revenue")instead of
or ICE627I for this operation to the same identifier in HEADER(’Revenue’)
DFSORT message ICE200I (in the DFSMSG data set) v A string exceeded the character limit allowed.
to find the set of DFSORT messages for this Example:
operation. Correct the error indicated in the DFSORT
error message. TITLE(’This string is longer
than the limit of 50 characters
for TITLE’)
ICE603I INFORMATION PRINTED IN ddname
DATA SET
Note: In your ICETOOL statement, the entire
Explanation: The information requested for this operand must be on one line.
operator was printed in the list data set with the v A parameter was specified incorrectly. Example:
indicated ddname. If the operation was terminated, the DATE(DMY) instead of DATE(DMY.)
list data set can be incomplete. v NOHEADER was used when HEADER(NONE) was
required. Example: HEADER(’Name’) NOHEADER instead
System action: None.
of HEADER(’Name’) HEADER(NONE)
Programmer response: None. v Mutually exclusive items were specified within an
operand. Example: DATE(YM4/) instead of DATE(YMD/)
or DATE(DM4/)
ICE604A ERROR IN KEYWORD, PARAMETER,
v A formatting item was specified for an operator
OR DELIMITER
other than DISPLAY or OCCUR. Example:
Explanation: Critical. The statement contained an
error in an operand (keyword, parameter) or a SELECT ON(1,5,ZD,A1) instead of
delimiter was incorrect or missing. Some common SELECT ON(1,5,ZD)
errors are: v A symbol was specified where it is not allowed.
v A keyword or parameter was misspelled. Example: Example: LINES(Max_Lines) instead of LINES(50)
ALLDUP instead of ALLDUPS v Too many 9's were specified in the pattern for
v A keyword was used with an operator for which it is E'pattern'. Example:
not valid. Example: NOSIGN was used with an ON(VALCNT,E'999-999-999-999-999-9') instead of
operator other than VERIFY. ON(VALCNT,E'99-999-999-999-999-9')
v A parameter or value was used with a keyword for v Too many characters were specified in the pattern for
which it is not valid. Example: VSAMTYPE(U) E'pattern'. Example:
instead of VSAMTYPE(F) or VSAMTYPE(V).
ON(VALCNT,E'*999**999**999**999**999*') instead of
v The cccc value for USING(cccc) was SYSc or was not
ON(VALCNT,E'999**999**999**999**999*')
four characters. Example: USING(ABC) instead of
v A required parameter was missing. Example:
USING(ABCD) or USING(SYS1) instead of
ON(25,5) instead of ON(25,5,ZD)
USING(SYX1).
v A parameter was specified where it isn't allowed.
v A left or right parenthesis was missing. Example:
Example: WITH(25,5,ZD) instead of WITH(25,5)
FROM IN instead of FROM(IN)
v A blank was used inside a parentheses. Example: System action: This operation is terminated.
FROM( IN) instead of FROM(IN) Programmer response: A $ marks the point at which
v A continuation indicator (-) was used incorrectly. the error was detected. Correct the error.
Example: TO(OUT1,- instead of TO(OUT1,OUT2) -
v Parameters were not separated by a comma or
semicolon. Example: ON(3:5:ZD) instead of ICE605A REQUIRED DD STATEMENT NOT
ON(3,5,ZD) or ON(3;5;ZD) FOUND: ddname
v A numeric value was specified incorrectly. Example:
Explanation: Critical. A DD statement for the
ON(0,3,ZD) instead of ON(1,3,ZD) or LIMIT(+1)
indicated ddname was not present. The ddname was
instead of LIMIT(1)
required because:
v An operand that can be specified only once per
v It was DFSMSG.
operator was specified more than once. Example:
v It was TOOLIN and the ICETOOL Parameter List
COPY TO(OUT1) TO(OUT2) instead of
Interface was not used.
COPY TO(OUT1,OUT2)
v It was specified in the FROM, TO, LIST, or DISCARD System action: None.
operand for this operator.
Programmer response: You can use the information in
v USING(xxxx) was specified for this operator.
this message to determine the result of this call to
System action: If the ddname was TOOLIN or DFSORT. If DFSORT terminated, use the call identifier
DFSMSG, ICETOOL terminates without performing any to find the set of DFSORT messages for this call (in the
operations. Otherwise, this operation is terminated. DFSMSG data set), and correct the error indicated in
the DFSORT error message.
Programmer response: Supply a DD statement for the
indicated ddname.
ICE607I STATISTICS FOR {(p,m,f)|(VLEN)}:
| ICE606I DFSORT CALL nnnn FOR Explanation: Indicates the field to which the statistics
| {COPY|SORT|MERGE} FROM in subsequent messages ICE608I, ICE609I, and ICE648I
| {ddname1|JKFROM|MERGEIN} TO apply. (p,m,f) or (VLEN) is a field you specified for this
| {ddname2|E35 EXIT|OUTFIL} USING STATS operator.
| xxxxCNTL
System action: None.
| {COMPLETED|TERMINATED}
Programmer response: None.
Explanation: Supplies information about a specific call
to DFSORT for this operation as follows:
ICE608I MINIMUM: snnnnnnnnnnnnnnn,
nnnn The call identifier for this call to DFSORT. You
MAXIMUM: snnnnnnnnnnnnnnn
can match nnnn to the same nnnn in DFSORT
message ICE200I in the DFSMSG data set to Explanation: Indicates the minimum and maximum
find the set of DFSORT messages for this call for the field indicated in the ICE607I message
to DFSORT. preceding this message. Each value consists of a + or -
sign and 15 decimal digits (padded with zeros on the
COPY The DFSORT copy function was used.
left as needed). If the values could not be determined
SORT The DFSORT sort function was used. due to an error (as indicated in a previous message),
asterisks were printed for the values.
| MERGE
| The DFSORT merge function was used.
Note: ICE648I messages are printed for the minimum
ddname1 and maximum values (instead of ICE608I) if
The ddname of the data set that was copied or either value contains more than 15 significant
sorted. digits, or if LMSG is specified.
| JKFROM System action: None.
| A JOINKEYS application was used.
Programmer response: None unless asterisks were
| MERGEIN printed for the values, in which case you should correct
| A MERGE operator was used the error indicated by the previous error message for
this operation.
ddname2
| The ddname of the data set resulting from the If you want all of the minimum and maximum values
| copy, sort or merge. displayed with 31 digits, specify the LMSG keyword
for this STATS operator.
E35 EXIT
ICETOOL's E35 user exit was used.
ICE609I AVERAGE: snnnnnnnnnnnnnnn,
OUTFIL
TOTAL: snnnnnnnnnnnnnnn
Either OUTFIL data sets were produced or an
E35 user exit routine was used to dispose of Explanation: Indicates the average and total for the
all the output records field indicated in the ICE607I message preceding this
message. Each value consists of a + or - sign and 15
xxxxCNTL
decimal digits (padded with zeros on the left as
| The ddname of the DFSORT control data set
needed). If a value could not be determined due to an
| used for the copy, sort or merge.
error (as indicated in a previous message), asterisks
COMPLETED were printed for the value.
DFSORT did not detect any errors preventing
completion of this ICETOOL operation. Note: ICE648I messages are printed for the average
and total values (instead of ICE609I) if either
TERMINATED
value contains more than 15 significant digits, or
DFSORT detected an error which prevented
if LMSG is specified.
completion of this ICETOOL operation.
System action: None.
Programmer response: A $ marks the point at which The maximum number of TITLE operands is 3 for a
the error was detected. Correct the error. DISPLAY or OCCUR operator.
The maximum number of RRN operands is 300 for a
ICE620A SUM OF POSITION AND LENGTH SUBSET operator.
GREATER THAN max | The maximum number of FROM operands is 10 for a
Explanation: Critical. A specified field extended | MERGE operator
beyond the maximum position (max - 1) allowed for The maximum number of ON fields for each operator
this operation. is:
System action: This operation is terminated. v DISPLAY - 20
v OCCUR - 10
Programmer response: A $ marks the point at which v RANGE - 1
the error was detected. Change the position or length v SELECT - 10
so that the field ends at or before position max - 1. v SPLICE - 10
v STATS - 10
ICE621I DFSORT DETECTED AN ERROR v UNIQUE - 1
AFTER E35 EXIT PROCESSING v VERIFY - 10
COMPLETED System action: This operation is terminated.
Explanation: A call to DFSORT for this operation Programmer response: A $ marks the point at which
resulted in a return code of 16. However, because the the error was detected. Reduce the number of indicated
error was detected by DFSORT after ICETOOL's E35 keywords for this operator to the maximum allowed. If
user exit completed its processing, the error did not necessary, use additional operators to handle all the
prevent the completion of this ICETOOL operation. required fields.
System action: None.
Programmer response: None required, but you can ICE624A MAXIMUM NUMBER OF TO
examine the DFSORT messages in DFSMSG to DDNAMES EXCEEDED
determine the error detected by DFSORT and correct it Explanation: Critical. Too many TO ddnames were
if appropriate. specified for this operator. The maximum number of
TO ddnames for each operator is:
v COPY - 10
System action: This operation is terminated. Programmer response: Provide a return area of m
bytes (or more) for this operation and set the return
Programmer response: A $ marks the point at which
area length appropriately.
the error was detected. Specify values for HIGHER and
LOWER that define a valid range.
ICE634A VALUE FOR (p,m,f) EXCEEDS 31
DIGITS
ICE630I MODE IN EFFECT: mode
Explanation: Critical. A value for the indicated FS or
Explanation: Indicates the processing mode to be used
CSF field had 32 digits, or a value for the indicated
for subsequent operators as follows:
UFF or SFF field had 32 or more digits, exceeding the
v STOP mode - set at the beginning of the run and
limit of 31 digits.
when a MODE STOP statement is processed. Stops
subsequent operations if an error is detected (by System action: This operation is terminated.
entering SCAN mode).
Programmer response: Limit all FS, CSF, UFF, and SFF
v CONTINUE mode - set when a MODE CONTINUE
data values for this operation to 31 digits. The
statement is processed. Continues with subsequent
DISPLAY operator with CH format can be used to
operations if an error is detected.
visually identify the values with 32 digits.
v SCAN mode - set when an error is encountered in
STOP mode and when a MODE SCAN statement is
processed. ICETOOL statements are checked for ICE635A NUMBER OF HEADER KEYWORDS
errors, but DFSORT is not called to perform the DOES NOT MATCH NUMBER OF ON
operations. KEYWORDS
System action: None. Explanation: Critical. There was not a one-to-one
correspondence between the HEADER keywords and
Programmer response: If SCAN mode was set due to
the ON keywords. For example, two HEADER
an error while in STOP mode, correct the error.
keywords were specified with three ON keywords.
System action: This operation is terminated.
ICE631I NUMBER OF VALUES IN RANGE FOR
{(p,m,f)|(VLEN)}: nnnnnnnnnnnnnnn Programmer response: Specify one HEADER('string')
or HEADER(NONE) keyword for each ON keyword.
Explanation: Indicates the count of values within the
specified range for this field (prints as 15 decimal digits
padded with zeros on the left as needed). (p,m,f) or ICE636A INVALID VALUE IN DFSORT ICEyyy
(VLEN) is the field you specified for this RANGE INSTALLATION ENVIRONMENT
operator.
Explanation: Critical. A value in the indicated
System action: None. DFSORT installation environment (ICEyyy) could not
be interpreted by ICETOOL. This indicates an
Programmer response: None.
installation problem. Any or all of the values printed
can be incorrect.
ICE632I SOURCE FOR ICETOOL
STATEMENTS: source Note: ICETOOL cannot detect all possible invalid
values in the ICEyyy environment; it only prints
Explanation: Indicates whether ICETOOL statements
this message for the first invalid value it detects.
were processed from TOOLIN or from the calling
program's PARMLIST (parameter list). Statements are System action: '> > INVALID < <' is printed in the list
processed from TOOLIN unless the ICETOOL data set for the invalid value, and all subsequent
Parameter List Interface is used. processing for this operator is terminated.
System action: None. Programmer response: Have your system programmer
check that the ICEMAC macro and the DFSORT
Programmer response: None.
modules (especially ICEPRML, ICETOOL and
ICEMCDU) were installed correctly and that the
ICE633A RETURN AREA IS n BYTES, BUT m ICEMAC installation modules (ICEAM1, ICEAM2,
BYTES ARE REQUIRED ICEAM3, ICEAM4, ICETD1, ICDTD2, ICETD3, and
ICETD4) were generated correctly and are at the same
Explanation: The length of the return area (in bytes)
level as the DFSORT modules.
as indicated in the calling program's parameter list was
too small to contain all of the information to be
returned for this operation. A return area of m bytes is
needed.
System action: This operation is terminated.
v (VALCNT) indicates a value count for this OCCUR printed for the AVERAGE and TOTAL values, in which
operator exceeded the number of digits you allowed case you should correct the error indicated by the
for it. previous error message for this operation.
v COUNT indicates a count for this COUNT operator,
If you want all of the minimum, maximum, average
or an overall count or break count for this DISPLAY
and total values displayed with 31 digits, specify the
operator, exceeded the number of digits you allowed
LMSG keyword for this STATS operator.
for it.
System action: This operation is terminated.
ICE649A HEX VALUE: h...h
Programmer response: Specify an Ndd or Udd
Explanation: Critical. Displays the invalid value
formatting item, or a DIGITS(n) operand, large enough
associated with preceding message ICE618A. h...h is the
to prevent overflow of the record number, value count,
invalid value in hexadecimal. See the Explanation of
overall count or break count (that is, use an appropriate
message ICE618A for details
Ndd, Udd, or DIGITS value between n+1 and 15).
System action: See the System Action of message
ICE618A for details.
ICE646A RECORD COUNT MEETS CRITERIA -
RC=12 SET Programmer response: See the Programmer Response
of message ICE618A for details.
Explanation: Critical. EMPTY, NOTEMPTY,
HIGHER(n), LOWER(n), EQUAL(n), or NOTEQUAL(n)
was specified for this COUNT operator. Because the ICE650I VISIT http://www.ibm.com/storage/
record count met the specified criteria, RC=12 was set dfsort FOR ICETOOL PAPERS,
for this COUNT operation. EXAMPLES AND MORE
System action: The operation is terminated. Explanation: The DFSORT website at
http://www.ibm.com/storage/dfsort is an important
Programmer response: None.
source of information about DFSORT's ICETOOL utility.
It contains papers, examples, online documents, news,
ICE647I RECORD COUNT DOES NOT MEET tips, techniques and more that can help you get the
CRITERIA - RC=0 SET most out of ICETOOL.
Explanation: EMPTY, NOTEMPTY, HIGHER(n), System action: None.
LOWER(n), EQUAL(n), or NOTEQUAL(n) was
Programmer response: Optional. Visit the DFSORT
specified for this COUNT operator. Because the record
website to see what it has to offer.
count did not meet the specified criteria, RC=0 was set
for this COUNT operation.
ICE651I RECORD COUNT MEETS CRITERIA -
System action: None.
RC=4 SET
Programmer response: None.
Explanation: RC4 and EMPTY, NOTEMPTY,
HIGHER(n), LOWER(n), EQUAL(n), or NOTEQUAL(n)
ICE648I statistic: was specified for this COUNT operator. Because the
snnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn record count met the specified criteria, RC=4 was set
for this COUNT operation.
Explanation: Indicates the minimum, maximum,
average or total for the field indicated in the ICE607I System action: Processing continues and ICETOOL
message preceding this message. statistic is MINIMUM, passes back a return code of 4 unless it sets a higher
MAXIMUM, AVERAGE or TOTAL. Each value consists return code for some other reason.
of a + or - sign and 31 decimal digits (padded with
Programmer response: None.
zeros on the left as needed).
Note: An ICE608I message is printed for the minimum ICE652A OUTREC STATEMENT FOUND BUT
and maximum values (instead of ICE648I NOT ALLOWED - USE OUTFIL
messages) if both values contain less than 16 STATEMENT INSTEAD
significant digits, unless LMSG is specified. An
Explanation: Critical. A DFSORT OUTREC statement
ICE609I message is printed for the average and
was specified for this DATASORT, SELECT, SPLICE, or
total values (instead of ICE648I messages) if both
SUBSET operator, but you cannot use an OUTREC
values contain less than 16 significant digits,
statement with DATASORT, SELECT, SPLICE, or
unless LMSG is specified.
SUBSET.
System action: None.
System action: The operation is terminated.
Programmer response: None unless asterisks were
Programmer response: If you want to reformat the
ICE701A EFS PROCESSING WAS TERMINATED ICE705A EFS PROCESSING WAS TERMINATED
BY pppppppp AT MAJOR CALL n BY ppppp OF EFS PROGRAM pppppppp
Explanation: Critical. Termination of the DFSORT run Explanation: Critical. Termination of the DFSORT run
was requested by EFS program pppppppp at Major Call was requested by a user exit routine generated by EFS
1, 2, 3, 4, or 5. program pppppppp.
System action: If the termination was requested at ppppp is one of the following names:
Major Call 1, the program terminates. If the termination
EFS01 The SORT/MERGE user exit routine.
was requested at Major Call 2 through 5, DFSORT
scans all remaining control statements and then the EFS02 The INCLUDE/OMIT user exit routine.
program terminates.
System action: The program terminates.
Programmer response: Refer to the message issued by
EFS program pppppppp for the error description. Programmer response: Refer to the message issued by
the user exit routine generated by EFS program
pppppppp.
ICE702A INVALID RETURN CODE FROM EFS
PROGRAM pppppppp AT MAJOR CALL
n ICE706I END OF SUPPLIED CONTROL
STATEMENTS - EFS RETURNED
Explanation: Critical. EFS program pppppppp returned CONTROL STATEMENTS FOLLOW
an invalid return code to DFSORT at Major Call 1, 2, 3,
4, or 5. Explanation: When control statements are specified in
the invoking parameter list or control statements are
System action: If the invalid return code was returned specified with the DD statement for SYSIN or
at Major Call 1, the program terminates. If the invalid xxxxCNTL, this message separates the listing of those
return code was returned at Major Call 2 through 5, control statements from the listing of the control
DFSORT scans all remaining control statements and statements returned by an EFS program.
then the program terminates.
A control statement returned by an EFS program
Programmer response: Check the EFS program completely overrides the corresponding control
thoroughly and ensure that the return code is either 0 statement in the parameter list, or in SYSIN or
or 16. xxxxCNTL. (OPTION control statement operands EFS,
LIST, NOLIST, LISTX, NOLISTX, MSGDDN, MSGPRT,
SORTDD, SORTIN, SORTOUT, and USEWKDD are
ICE703A INVALID RETURN CODE FROM ppppp
ignored if returned by an EFS program.)
OF EFS PROGRAM pppppppp
For complete details on the order of override, see z/OS
Explanation: Critical. The ppppp-generated user exit
DFSORT Application Programming Guide.
routine, EFS01 or EFS02, of EFS program pppppppp
returned an invalid return code to DFSORT. System action: None.
System action: The program terminates. Programmer response: None.
Programmer response: Check the EFS-generated user
exit routines thoroughly and ensure that the return ICE707A EXIT E61 IS NOT SUPPORTED FOR
code returned by EFS01 is either 0 or 16 and that the EFS FIELDS
return code returned by EFS02 is 0, 4, or 16.
Explanation: Critical. The SORT or MERGE control
statement defined a control field to be processed both
ICE704A LOAD FAILED FOR EFS PROGRAM by an EFS program and an E61 user exit routine.
pppppppp
System action: The program terminates.
Explanation: Critical. EFS program pppppppp could not
be loaded. Programmer response: Check the SORT or MERGE
control statement for errors resulting in the
System action: The program terminates. specification of a D1 field format type with an E field
sequence type.
Programmer response: Check that EFS program
pppppppp is installed.
ICE708A AN EFS PROGRAM IS REQUIRED
Explanation: Critical. A SORT/MERGE control field or
an INCLUDE/OMIT compare field was to be processed
by an EFS program, but the EFS program was not
activated by the EFS option, nor was a verb request list
returned at Major Call 1.
System action: The program terminates. Programmer response: Reduce the number or length
of SORT or MERGE control fields that require locale
Programmer response: If D1, D2, or EFS is the
processing.
indicated keyword, take one of the following actions:
v Specify run-time option EFS=NONE to use locale
processing without EFS processing. (Locale ICE721A A COMPARE FIELD CONTAINS AN
processing might eliminate the need for an EFS INVALID CHARACTER
program.)
Explanation: Critical. Locale processing of a compare
v Specify run-time option LOCALE=NONE to use EFS
field detected that a character in the compare field is
processing without locale processing.
not defined in the active locale.
If CHALT is the indicated keyword, take one of the System action: The program terminates.
following actions:
Programmer response: Ensure that the correct locale is
v Specify run-time option NOCHALT to use locale
the active locale in effect or correct the invalid
processing without alternate sequence processing for
character.
CH fields. (Locale processing might eliminate the
need for alternate sequence processing.) If alternate
sequence processing is needed for a particular field, ICE722I ACTIVE LOCALE name WAS USED
specify AQ for that field instead of CH. FOR LOCALE PROCESSING
v Specify run-time option LOCALE=NONE to use
alternate sequence processing for CH fields without Explanation: Indicates that DFSORT used locale
locale processing. processing and gives the name of the active locale.
Locale processing is used for:
v SORT or MERGE character (CH) control fields
If INREC is the indicated keyword, take one of the
v INCLUDE or OMIT character (CH) compare fields
following actions:
v INCLUDE or OMIT character or hexadecimal
v Use the OUTREC statement or the OUTREC operand
constant to character (CH) compare field
of the OUTFIL statement instead of the INREC
comparisons.
statement to allow locale processing.
v Specify run-time option LOCALE=NONE to use the
INREC statement without locale processing. Note: Locale processing is not used for IFTHEN
WHEN constants or compare fields.
If E61 is the indicated keyword, take one of the System action: None
following actions:
v Eliminate the E61 exit, and change E to A or D for Programmer response: None
each field, to use locale processing without E61
processing. (Locale processing might eliminate the ICE725A LANGUAGE ENVIRONMENT
need for an EFS program.) SERVICE ERROR (nnnn)
v Specify run-time option LOCALE=NONE to use E61
processing without locale processing. Explanation: Critical. Language Environment services
returned an unexpected feedback code for a service call
used by DFSORT. nnnn is the error message number of
ICE716A A CONTROL FIELD CONTAINS AN the feedback code.
INVALID CHARACTER
System action: The program terminates.
Explanation: Critical. Locale processing of a control
field detected that a character in the control field is not Programmer response: Take one or more of the
defined in the active locale. following actions, as appropriate:
v Check that all SORT, MERGE, INCLUDE, or OMIT
System action: The program terminates.
CH fields contain valid character data values.
Programmer response: Ensure that the correct locale is v Contact IBM for programming support. The error
the active locale in effect or correct the invalid message number can be used to reference Language
character. Environment Run-Time Messages in Locale Processing.
ICE717A CONTROL FIELDS FOR LOCALE ICE726A LOAD FAILED FOR LOCALE
PROCESSING ARE TOO COMPLEX PROCESSING
Explanation: Critical. For a SORT or MERGE Explanation: Critical. DFSORT's locale processing
statement with control fields that require locale routine could not be loaded.
processing, the complexity of the application caused
dynamic areas to exceed the storage allowed for them. System action: The program terminates.
System action: The program terminates. Programmer response: Contact your system
ICE754I ab
Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
ICE755I abc
Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
ICE818I LOCATE CALL FAILED Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
Explanation: A call to the LOCATE SVC failed while
DFSORT was attempting to obtain information about
an input or output data set. ICE854I abc
System action: Processing continues without the Explanation: DFSORT diagnostic message for use by
information from LOCATE. This can result in one of the IBM Support Center.
the following situations:
v DFSORT cannot accurately estimate the input file ICE855I a : TX=b, R=c, L=d, B=e, BL=f, BR=g,
size (message ICE118I indicates this situation).. DCT=h, VS=i, RU=j, SB=k
v DFSORT cannot obtain the input record length. Explanation: DFSORT diagnostic message for use by
v An OPEN error may occur if a VSAM output data the IBM Support Center.
set is defined without REUSE, and RESET is in effect.
Programmer response: None required. If DFSORT ICE857I C=a, LA=b, DA=c, LB=d, DB=e, MB=f,
cannot accurately estimate the input file size, refer to CB=g, UB=h
the Programmer Response for message ICE118I. If
Explanation: DFSORT diagnostic message for use by
DFSORT cannot obtain the input record length, specify
the IBM Support Center.
an L1 value in the LENGTH parameter of the RECORD
statement. If a VSAM OPEN error occurs, specifying
NORESET may eliminate the OPEN error.
ICE859I LB=a, DB=b, AB=c, BB=d, CP=e, RS=f, ICE888I INI01 a AXI01 b W1 c INI03 d AXI03 e
TB=g BRUNS f VDg
Explanation: DFSORT diagnostic message for use by Explanation: DFSORT diagnostic message for use by
the IBM Support Center. the IBM Support Center.
ICE860I F=a, P=b, M=c, B=d ICE889I CT=a, SB=b, L=c, D=defg, CCW=hijk
Explanation: DFSORT diagnostic message for use by Explanation: DFSORT diagnostic message for use by
the IBM Support Center. the IBM Support Center.
ICE880I QP=a QA=b HI=c LI=d MI=e TZ=f ICE891I a WMAIN, b CMAIN, c CALLOC, d
N1=g N2=h SZ=i HN=j SCN, e BA, f AZ, g BZ, h QC, i CZ, j
DZ, k PLE
Explanation: DFSORT diagnostic message for use by
the IBM Support Center. Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
ICE881I EQ=a DX=b D2=c D3=d D4=e AS=f
SA=g SB=h SC=i HN=j ICE892I a RIN b BLI c BLO d RUN e BUN f
CPU g CVC
Explanation: DFSORT diagnostic message for use by
the IBM Support Center. Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
ICE882I a PLE b
ICE893I a XIN b WIN c GIN NDEd PFPe Bf
Explanation: DFSORT diagnostic message for use by
CMg CIh UPTi LMj VSk RU1
the IBM Support Center.
Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
ICE883I IX=a, IFC=b, INC=c, OX=d, OFC=e,
ONC=f, CRT=g, NCR=h
ICE894I a STR b MOR c IPB d OPB e CYL f MN
Explanation: DFSORT diagnostic message for use by
the IBM Support Center. Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
ICE884I a b AVK c AVR d
ICE895I a MUNIT b SUNIT c OUNIT
Explanation: DFSORT diagnostic message for use by
the IBM Support Center. Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
ICE885I DAT a DSR b BINS c BSZ d RCP e AJC
f RLC g DUNIT h ICE896I a SET b DEXTOT c BLK d CSZ e WE
Explanation: DFSORT diagnostic message for use by Explanation: DFSORT diagnostic message for use by
the IBM Support Center. the IBM Support Center.
ICE886I SYS a TSTG b FS c INIT d MAX e LEN | ICE897I AVAL=a, BVAL=b, ENQT=c, ASV=d,
f | HSZ=e, HM=f, HN=g
Explanation: DFSORT diagnostic message for use by Explanation: DFSORT diagnostic message for use by
the IBM Support Center. the IBM Support Center.
ICE915I
MOFSZ=a,MOSZ=b,MOSYS=c(d),
MOSTG=e,MEML=f(g)
Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
ICE916I MOFR=a,MOVR=b
Explanation: DFSORT diagnostic message for use by
the IBM Support Center.
| ICE920I Z a S1 b S2 c EN d ZI e
| Explanation: DFSORT diagnostic message for use by
| the IBM Support Center.
For unsuccessful completion with ABEND in effect, DFSORT issues a user abend
with the appropriate code as specified by the ABCODE installation option (either
the error message number or a number between 1 and 99).
For additional information on DFSORT User Abends, see “User Abends at Run
Time” on page 9.
The meanings of the return codes that DFSORT passes back (in register 15) are:
0 Successful completion. DFSORT completed successfully.
4 Successful completion. DFSORT completed successfully, and:
v OVFLO=RC4 was in effect and summary fields overflowed, or
v PAD=RC4 was in effect and the SORTOUT LRECL was larger than the
SORTIN/SORTINnn LRECL (LRECL padding), or
v TRUNC=RC4 was in effect and the SORTOUT LRECL was smaller than the
SORTIN/SORTINnn LRECL (LRECL truncation), or
v SPANINC=RC4 was in effect and one or more incomplete spanned records
was detected, or
v NULLOUT=RC4 was in effect and there were no records for the SORTOUT
data set, or
v NULLOFL=RC4 was in effect and there were no data records for an
OUTFIL data set
16 Unsuccessful completion. DFSORT detected an error that prevented it from
completing successfully.
20 Message data set missing. Installation option NOMSGDD=QUIT was in
effect and neither a message data set DD statement nor a SYSOUT DD
statement was provided.
24 Unsupported operating system. This operating system is not supported by
this release of DFSORT.
For successful completion of all operations, ICETOOL passes back a return code of
0 or 4 to the operating system or the invoking program.
The meanings of the return codes that ICETOOL passes back (in register 15) are:
0 Successful completion. All operations completed successfully.
4 Successful completion. All operations completed successfully. Either:
v RC4 was specified for an ICETOOL COUNT operator and the record count
met the specified criteria, or
v DFSORT passed back a return code of 4 for one or more operations. See
“DFSORT Return Codes” on page 101 for details.
12 Unsuccessful completion. ICETOOL detected one or more errors that
prevented it from completing successfully. Messages for these errors were
printed in the TOOLMSG data set.
16 Unsuccessful completion. DFSORT detected one or more errors that
prevented ICETOOL from completing successfully. Messages for these errors
were printed in the DFSMSG data set.
20 Message data set error. The TOOLMSG DD statement was not present or the
TOOLMSG data set was not opened.
24 Unsupported operating system. This operating system is not supported by
this release of DFSORT.
The meanings of the return codes that ICEGENER passes back (in register 15) are:
0 Successful completion. ICEGENER completed successfully.
4 Successful completion. ICEGENER completed successfully, and:
An APAR contains information explaining how to fix or bypass the error. This
might be a program temporary fix (PTF), an APAR fix, or a bypass.
If an APAR has not been recorded, the IBM Support Center personnel might ask
you to obtain messages or a dump to provide information beyond the keyword
string you developed.
If the source of error is not your own routines or calling programs, go to step
2.
2 Follow the instructions in “Developing Your Keyword String” on page 108.
Each of the keywords in the string describes one aspect of a program failure
and makes the search argument more specific. The more precise your
keyword string, the more selective the search, and the fewer problem
descriptions there are to evaluate.
You need messages or a dump to develop most keyword strings. If you did
not receive messages or a dump, read “How to Get Messages” on page 3, and
Table 2 on page 3.
Before contacting the IBM Support Center for assistance, ensure that your keyword
string contains all the required keywords for your particular type of failure.
Figure 1 on page 109 shows the steps you need to follow, depending on the type of
failure you describe. The following are the keywords you might need to use:
Keyword When required
Component Identification Always required
FMID Always required
Type-of-Technique Required for all except document errors
Type-of-Application Required for all except document errors
Type-of-Failure Always required
Module Required for system abend, user abend, wait, and
loop
Offset Required for system abend, user abend, wait, and
loop
Message Variable Required for messages ICE061A and ICE117A
Order Number Required for document error
Begin with “Constructing Keyword Strings” on page 110 and follow the procedures
until the keyword string is developed and you are instructed to use it as a search
argument.
START
Component
ID Keyword
FMID
Keyword
Document Yes
?
No
Type of
Technique
Keyword
Type of
Application
Keyword
Type of
Failure
No No
ICE061A No Order
Module or ICE117A Number
Keyword
Keyword
Yes
Offset Variable
Keyword Keywords
S5JD2006
Search
Argument
Procedure
No APAR
Match
? Preparation
Procedure
Yes
Apply the
Correction
END
BLOCKSET
SORT WAIT
Wait/ 0 5740SM105 Rxxx PEERVALE ICEname OFFSETn 0
Loop MERGE LOOP
CONVENTIONAL
COPY
BLOCKSET
SORT
System 0 5740SM105 Rxxx PEERVALE ABENDnnn ICEname OFFSETn 0
Abend MERGE
CONVENTIONAL
COPY
BLOCKSET
User SORT
0 5740SM105 Rxxx PEERVALE ABENDnnnn ICEname OFFSETn 0
Abend MERGE
CONVENTIONAL
COPY
BLOCKSET
SORT
Message 0 5740SM105 Rxxx PEERVALE MSGICEnnnA A
MERGE
(All messages) CONVENTIONAL
COPY
BLOCKSET
Incorrect SORT
0 5740SM105 Rxxx PEERVALE INCORROUT 0
Output MERGE
CONVENTIONAL
COPY
BLOCKSET
Performance SORT
0 5740SM105 Rxxx PEERVALE PERFM 0
MERGE
CONVENTIONAL
COPY
Figure 2. Keyword String Syntax. If you receive message ICE061A or ICE117A, fill in the second part of the message
string. Otherwise, stop the keyword string at the message number.
5740SM105
| 5740SM105 RK00
You need a message for this procedure. If you did not receive any messages, see
“How to Get Messages” on page 3.
1. Find out which technique was used by looking at the diagnostic trace character
in the last message you received from DFSORT.
There is a diagnostic trace character in all DFSORT messages. The format of a
DFSORT message is:
ICEnnns c text
Where Represents
nnn The error message number
s The severity code (which can be either A for error messages or
I for information messages)
c The diagnostic trace character
text An explanation of the message
Each technique is associated with a set of diagnostic trace characters:
For example, if you received message ICE085A 1, the 1 means the Blockset
technique. The keyword string so far would be:
If your job enters a wait or loop, the system terminates the job and gives you a
system abend code n22, where n is any hexadecimal digit. Common examples are
122, 222, and 322.
You need a dump for this procedure. If you did not receive a dump, see Table 2 on
page 3.
1. Find the program status word (PSW) in the dump. See Figure 3.
PSW
JOB SORTA STEP WAIT TIME 162253 DATE 91039 ID = 000 CPUID = 230202333081 PAGE 0001
ASCB 00F70730
+0 ASCB C1E2C3C2 FWDP 00F67C88 BWDP 00F781E0 CMSF 00000000 SVRB 005ED130 SYNC 000C72E6
+18 IDSF 00000000 TNEW 005AF300 CPUS 00000001 IDSQ 001D0019 IODP 00000161 RESV 00000000
+30 LDA 005EF548 RSM 00F705D8 CSCB 00F8BF48 TSB 00000000 EJST 00000005 XJST 06079A00
+48 EWST 9707A4D3 XWST 19E75C60 JSTL 00000005 ECB 805ED7E0 UBET 9707A358 TLCH 00000000
+60 DUMP O05ECD9O FW1 FFFF0100 TMCH 00000000 ASXB 005EF300 FW2 02C60000 SRBS 00000000
+78 VSC 00000016 RCTP 005EDA68 LOCK 00000000 LSQH 00000000 QECB 00000000 MECB 00000000
+90 OUCB OOF8BE6O OUXB 00F68D48 FMCT 003B0000 XMPQ 00000000 IQEA 00000000 RTMC 00000000
+A8 MCC 00000000 JBNI O0FEO7FO JBNS 00F8BF58 SRQ 00000000 VGTT 00000000 PCTT O07A7CA0
+C0 SMCT 00000007 SWTL 0000283B SRBT 00000000 ATME 01673A00 LSMQ 00000000 LSPL 00000000
+D8 TCBS 00000001 TCBL 00000000 WPRB OOFEEAO8 SRDP 61FFFF6O LOCI 00000000 CMLH 00000000
+F0 CMLC 00000000 SSCM 00000000 ASTE 005C4620 LTOV 005E6F80 ATOV 005ECC50 ETC 00000000
+108 LXR 00000000 STKH 005EEA18 GQEL 005C4620 LQEL 002712F0 GSYN 00000000 XTCB 005AF300
+120 FW3 00000000 GXL 00000000 EATT 00000000 EAT1 5120FC00 INTS 9707A4C4 INTl 34655E80
+138 FW4 00000000 RCMS 00000000 IOSC 00000002 PKXC 008001F4 NSQA 00000000 ASM 00F70608
+150 RESV 00000000 TCME 00000000
Figure 3. Finding the System Abend Code and the PSW in the SYSUDUMP
2. Check whether the wait state bit (bit 14) of the PSW is on or off (see Figure 4
on page 115).
3. If the wait state bit is on, use the keyword WAIT. If the wait state bit is off, use
the keyword LOOP.
4. For the example in Figure 4, you would have the following keyword string:
You need a message for this procedure. If you did not receive any messages, refer
to “How to Get Messages” on page 3.
1. Record the system abend code in the following format:
ABENDnnn
You need a message for this procedure. If you did not receive any messages, refer
to “How to Get Messages” on page 3.
1. Look at the user completion code.
v If the code is less than 1000, it corresponds to a DFSORT error message. Go
to “Message Keyword Procedure” on page 116.
v If the code is equal to or greater than 1000, continue with step 2.
2. Record the user abend keyword in the following format:
ABENDnnnn
Do not use this procedure if the problem is associated with an error message. Use
the message keyword procedure instead.
1. Use INCORROUT as your type-of-failure keyword.
You now have the following keyword string:
If the documentation problem is not severe, use the reader’s comment form
(attached to the back of the manual that is causing the problem) to suggest
corrections or improvements to the publication.
If you consider the problem a severe one, build the keyword string as follows:
1. Use DOC as your type-of-failure keyword.
You now have the following keyword string:
2. Use the order number on the cover of the document as your next keyword. The
order number is of the form ccnn-nnnn-dd. Include ccnn, nnnn, and dd, but omit
the hyphens. dd is the edition number.
For example, if you found a documentation error in z/OS DFSORT Application
Programming Guide, your keyword string would be:
You need a dump for this procedure. If you did not receive a dump, see Table 2 on
page 3.
If you invoke DFSORT from a COBOL program, you might receive both a COBOL
dump and a DFSORT dump. For this procedure, use only the DFSORT dump.
If you are using PL/I, you must specify the NOSPIE and NOSTAE macro at run
time to ensure that you receive a DFSORT dump. If you do not, you might receive
only a PL/I dump.
1. Find the program status word (PSW) in the dump, and note the instruction
address, which is the last 31 bits of the PSW.
See Figure 5 for an example. The last 31 bits of the PSW (that is, 22D417F2) is
the instruction address.
2. Obtain the abend address by subtracting the instruction length code (ILC) from
the instruction address.
22D417F2 instruction address
− 2 instruction length code
22D417F0 abend address
3. Go to the abend address and scan backward until you find, on the right side of
the dump, the closest name of the form:
ICEname Z/OSv.rr
where ICEname is the module name and Z/OSv.rr is the version and release.
| In Figure 6, ICEIPFT Z/OS1.12 is the closest module name, version, and release.
22D41700 D3C9C3C5 D5E2C5C4 40D4C1E3 C5D9C9C1 D3E24060 ... *LICENSED MATERIALS - PROPERTY OF*
22D41720 40C9C2D4 40F5F6F9 F460C1F0 F140C3D6 D7E8D9C9 ... * IBM 5694-A01 COPYRIGHT IBM CORP*
22D41740 4B40F1F9 F7F36B40 F2F0F0F8 40404040 40C3D6D7 ... *. 1973, 2008 COPYRIGHT WATSO*
22D41760 D540D440 C3D6D5D5 C5D940C9 D5C34B40 F1F9F8F3 ... *N M CONNER INC. 1983 *
22D41780 40C1D3D3 40D9C9C7 C8E3E240 D9C5E2C5 D9E5C5C4 ... * ALL RIGHTS RESERVED. ICEIPFT *
22D417A0 E961D6E2 F14BF1F2 F0F361F1 F661F0F9 40F0F84B ... *Z/OS1.1203/16/09 08.46 BASE *
22D417C0 41C0F000 4190C800 41909800 D23ADCD0 DCD192CF ... *..0...H...q.K..}.Jk.........{.K.*
22D417E0 1000C33C 4110100A 5010DB48 92C9D182 0000D9EE ... *..C.....&...kIJbj.R...{.m.M..0Kq*
|
abend address is 22D417F0
If you cannot find the module name, the problem might not be with DFSORT.
In this case, call your IBM Support Center.
4. Use the module name as the keyword. For this example, the keyword string
would be:
Check to see that the version and release that appears after the module name is
current. If the version and release is not current, ensure DFSORT has been
installed correctly.
5. The next keyword shows the offset. See Figure 7 on page 119.
Step Action
1 Gather the information.
1. Have the following information ready when you report a problem:
v Customer number
v Current service level (PTF list and list of APAR fixes applied)
v The keyword string developed to search the IBM software support
database
v Processor number (serial model)
2. Also have the following documents ready to assist in analyzing the
problem:
v Source code (assembler or compiler listings) and load module for any
user routines or invoking program.
v A listing of the job control language (JCL), DFSORT control statements,
and all messages. You can use a SORTDIAG DD statement to obtain all
messages, including diagnostic messages.
v A listing of the symbols information if a SYMNAMES DD statement
was specified. You can produce this listing by specifying a SYMNOUT
DD statement.
v A copy of the input data set in machine-readable form.
v A list of the installation defaults selected at your site. You can produce
this list by using the DEFAULTS operator of ICETOOL with the same
step, job, or link library used for the job associated with this APAR. See
z/OS DFSORT Application Programming Guide for complete details of the
DEFAULTS operator of ICETOOL.
v A dump from the failing run of DFSORT.
2 Contact the IBM Support Center.
After gathering the information, contact the IBM Support Center for
assistance in resolving the problem. If the difficulty is an IBM problem, the
representative will assist you in preparing an APAR.
3 Submit APAR documentation.
When submitting material for an APAR to IBM, carefully pack and clearly
identify any tapes that contain application source programs, job stream data,
data sets, or libraries.
Each tape must have the following information attached and visible:
v The APAR number assigned by IBM
v A list of data sets on the tape (for example, application source program,
JCL, data, and load modules)
v Data on how the tape was created:
– The exact JCL listing or the list of commands used
– The record format and block size used for each data set
– Tape labeling
– The recording mode and density
End of input (EOI) is indicated by a zero in the first word of the parameter list
passed to your exit.
Table 8. User Exit Return Codes - ICE071A
Valid Return Codes
Enn Case EXITCK Situation 0 4 8 12 16 20*
E15 S1 STRONG Without SORTIN X X X
E15 W1 WEAK Without SORTIN X X X X X X
E15 S2 STRONG With SORTIN before EOI X X X X X X
E15 W2 WEAK With SORTIN before EOI X X X X X X
E15 S3 STRONG With SORTIN after EOI X X X
E15 W3 WEAK With SORTIN after EOI X X X X X X
E16 16 N/A N/A X X X
E32 32 N/A N/A X X X
E35 S0 STRONG Without SORTOUT or OUTFIL before EOI X X X
E35 W0 WEAK Without SORTOUT or OUTFIL before EOI X X X X X X
E35 S1 STRONG Without SORTOUT or OUTFIL after EOI X X
E35 W1 WEAK Without SORTOUT or OUTFIL after EOI X X X X X X
E35 S2 STRONG With SORTOUT or OUTFIL before EOI X X X X X X
E35 W2 WEAK With SORTOUT or OUTFIL before EOI X X X X X X
E35 S3 STRONG With SORTOUT or OUTFIL after EOI X X X
E35 W3 WEAK With SORTOUT or OUTFIL after EOI X X X X X X
Note: * Only applies to COBOL E15 and COBOL E35
z/OS information
z/OS information is accessible using screen readers with the BookServer/Library
Server versions of z/OS books in the Internet library at:
http://www.ibm.com/systems/z/os/zos/bkserv/
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you
any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions, therefore, this statement may not apply
to you.
IBM may use or distribute any of the information you supply in any way it
believes appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact:
The licensed program described in this information and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement, or any equivalent agreement
between us.
This publication also documents intended Programming Interfaces that allow the
customer to write programs to obtain the services of DFSORT. This information is
identified where it occurs, either by an introductory statement to a chapter or
section or by the following marking:
Trademarks
IBM, the IBM logo, and ibm.com® are trademarks or registered trademarks of
International Business Machines Corporation in the United States, other countries,
or both. If these and other IBM trademarked terms are marked on their first
occurrence in this information with a trademark symbol (® or ™), these symbols
indicate U.S. registered or common law trademarks owned by IBM at the time this
information was published. Such trademarks may also be registered or common
law trademarks in other countries. A current list of IBM trademarks is available on
the Web at http://www.ibm.com/legal/copytrade.shtml.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of
Microsoft Corporation in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other
countries.
Other company, product, and service names may be trademarks or service marks
of others.
Printed in USA
SC26-7525-05