z/OS message

ICE083A: Resources unavailable for dynamic allocation of work data sets

ICE083A means DFSORT tried to allocate its own sort work data sets with dynamic allocation and couldn't get the space or devices it asked for. The value in parentheses at the end of the message says why the allocation failed or wasn't attempted.

Other names for this code

Also written as ICE083A RESOURCES WERE UNAVAILABLE FOR DYNAMIC ALLOCATION OF WORK DATA SETS, ICE083A DFSORT, ICE083A 064K, ICE083A 0218, DFSORT DYNALLOC failed.

What it means

When a sort needs work space and the JCL has no SORTWKnn DD statements, DFSORT can allocate work data sets itself through dynamic allocation. This is the DYNALLOC option. DFSORT works out how much space the sort needs, divides it across the number of work data sets it is allowed, and asks the system for them on the unit name it was given.

ICE083A means that request failed, or that DFSORT could see in advance that it would fail. Before z/OS 2.1 it read RESOURCES WERE UNAVAILABLE FOR DYNAMIC ALLOCATION OF WORK DATA SETS (rsn). IBM changed the text in z/OS 2.1 to give more diagnostic detail, so the exact wording depends on your release.

The value in parentheses is the clue. One documented value is 064K. It means the space DFSORT needed for each work data set was more than it could put in one data set. On older systems that limit was 64K tracks. A four-digit value such as 0218 matches a dynamic allocation error reason code, which you look up in the DYNALLOC reason code table.

The A suffix marks a critical error. DFSORT stops, and the step normally ends with return code 16.

Common causes

  • The sort is large and DFSORT is allowed too few work data sets, so each one would need more space than a single data set can hold. This gives the 064K form.
  • The devices behind the unit name used for work data sets (often SYSDA) are offline, or are mounted PRIVATE when work data sets need them PUBLIC or STORAGE. An old IBM note links reason 0218 to this.
  • The SMS storage group or the pool of volumes for temporary data sets can be full at the time the job runs.
  • The DYNALLOC unit name is wrong for this system, or points at devices this job can't use.
  • An estimated file size much larger than the real input can make DFSORT ask for far too much space.

How to find the problem

  1. Read the value in parentheses at the end of ICE083A in the sort step's SYSOUT.
  2. If it is a four-digit hex code, look it up in the dynamic allocation error reason code table in IBM's MVS Authorized Assembler Services Guide. The 02xx codes cover devices and volumes that aren't available.
  3. Look for ICE254I or other DFSORT allocation messages near ICE083A, and for system allocation messages in the job log.
  4. Check the DYNALLOC setting in effect. It may come from the installation defaults, from OPTION DYNALLOC in DFSPARM or SYSIN, or from a PARM.
  5. Ask the storage administrators whether the work pool or storage group was short of space when the job ran.

How to fix it

  • Let DFSORT use more work data sets, for example OPTION DYNALLOC=(SYSDA,32) in a DFSPARM DD. More data sets means less space in each one.
  • If the input size is known, pass a realistic estimate with FILSZ so DFSORT doesn't ask for far too much.
  • Correct the unit name if it points at the wrong devices. Have the storage team check the volumes or storage group behind it.
  • As a stopgap, code SORTWKnn DD statements in the JCL with explicit space, on a unit you know has room.
  • Rerun once space is freed if the failure was caused by a short-term shortage.

IBM documentation

IBM documentation: ICE083A. Use the documentation for your installed release.

Report a correction to WND Software.

Questions

What does 064K mean in ICE083A?

It means each work data set would need more space than DFSORT could fit in one data set, so it didn't try. Let DFSORT use more work data sets so each one needs less space.

Why does a COPY with the same input work when the SORT fails with ICE083A?

A copy doesn't need work data sets, so no work space is allocated. Only sorts that spill out of main storage need SORTWK space.

Is ICE083A the same as ICE046A?

No. ICE083A means DFSORT couldn't get its work data sets at the start. ICE046A means it got them but filled them before the sort finished.