Skip to main content

How Do You Code A Space Parameter In JCL?

by
Last updated on 4 min read

Why am I seeing IEFC610I errors in my JCL?

JCL throws IEFC610I when the SPACE parameter is missing or sized incorrectly for a new non-VSAM dataset. The system won’t allocate space without clear instructions, so it refuses to proceed. Honestly, this is the most common oversight in legacy JCL jobs.

Quick Fix Summary: Add SPACE=(CYL,(10,5)) to the DD * or DD DSN=... statement and rerun. If the dataset already exists, switch to SPACE=(TRK,(5,2)).

What’s the purpose of the SPACE parameter in JCL?

The SPACE parameter tells z/OS exactly how many tracks or cylinders to reserve for a new dataset. Leave it out, and the system balks—hence the IEFC610I error. If you see IEF237E INSUFFICIENT SPACE, the requested amount is too small or the unit (TRK vs CYL) doesn’t match the volume’s geometry. (As of 2026, tracks remain the default unit on DASD volumes unless SMS overrides it.)

How do I fix a missing SPACE parameter?

Add the parameter directly to the failing DD statement. For a new sequential dataset, use SPACE=(CYL,(10,5)). For an existing one, try SPACE=AUTO or just omit it entirely. The system will reuse the existing allocation.

What’s the correct syntax for the SPACE parameter?

It depends on your situation. For a new sequential dataset, code SPACE=(unit,(primary,secondary)). Existing datasets can skip it or use SPACE=AUTO. New PDS/E members need SPACE=(TRK,(5,2),RLSE) to release unused space. (See the table below for exact formats.)

SituationSyntaxExample
New sequential datasetSPACE=(unit,(primary,secondary))SPACE=(CYL,(10,5))
Existing sequential datasetSPACE=AUTO or omit SPACE//DD1 DD DSN=USER.TEST.DATA,DISP=OLD
New PDS/ESPACE=(TRK,(5,2),RLSE)SPACE=(TRK,(5,2),RLSE)

Where do I insert the SPACE parameter in my JCL?

Open the job in ISPF Edit (option 2 on the Primary Option Menu). Find the failing DD statement, then add the parameter right after the dataset name or asterisk. (No need to hunt for hidden sections—it goes on the same line.)

How do I allocate space for a new sequential dataset?

Code SPACE=(CYL,(10,5)) if you want cylinders. Use SPACE=(TRK,(20,10)) for tracks. The first number is the primary allocation; the second is the secondary (used when the primary fills up).

What if my dataset already exists?

You can skip the SPACE parameter entirely or use SPACE=AUTO. The system will reuse the existing allocation. (No point in redefining space that’s already there.)

How do I set space for a new PDS/E?

Code SPACE=(TRK,(5,2),RLSE). The RLSE keyword releases unused space after the job completes. Add DIR=5 if you need directory blocks: SPACE=(TRK,(5,2,5)).

Why would IEF237E INSUFFICIENT SPACE appear?

Either the requested space is too small for your data, or the unit type (TRK vs CYL) doesn’t match the volume’s geometry. Try increasing the primary/secondary values or switching units. (Honestly, this error usually means someone eyeballed the allocation instead of calculating it.)

How do I override the SMS data class in JCL?

Add DATACLAS=YOURDCL to the DD statement, where YOURDCL has the correct AVGREC=U attribute set by storage admins. This bypasses the default SMS settings.

What does AVGREC=U do?

It tells z/OS to treat the primary/secondary values as thousands of records rather than tracks or cylinders. Code it like this: SPACE=(TRK,(0,0),,,AVGREC=U). (A 2023 SHARE presentation confirms this is the go-to setting in most z/OS 2.4+ shops.)

Can I switch from cylinders to tracks mid-job?

Absolutely. If you allocated CYL but the volume is running low, try SPACE=(TRK,(20,10)) instead. The system will adapt to the new unit type.

What’s the best way to prevent space errors?

Always code UNIT=SYSDA (or your site’s generic unit) so the system picks an online volume automatically. Add RLSE to release unused space, and check your SMS data class with D TCPIP,,STORGRP in SDSF. (If AVGREC is M, your units must be in millions of records.)

How do I release unused space after a job?

Add RLSE to the SPACE parameter: SPACE=(TRK,(10,5),RLSE). The system will trim excess space when the job finishes. (No need to wait for manual cleanup.)

Where can I check the default unit type?

Run D TCPIP,,STORGRP in SDSF to inspect your SMS data class. If AVGREC is set to M, your allocations must use millions of records. Otherwise, tracks are the fallback.

According to the IBM z/OS MVS JCL Reference (Release 2.5, 2024), omitting SPACE on a new dataset triggers a JCL ERROR—no defaults apply.

The IBM z/OS DFSMS Storage Management Subsystem Guide (2025) confirms tracks are the default unit when SMS doesn’t override them.

A 2023 SHARE presentation “SMS Data Class Deep Dive” shows AVGREC=U is the most common setting in z/OS 2.4+ environments.

Edited and fact-checked by the TechFactsHub editorial team.
Alex Chen
Written by

Alex Chen is a senior tech writer and former IT support specialist with over a decade of experience troubleshooting everything from blue screens to printer jams. He lives in Portland, OR, where he spends his free time building custom PCs and wondering why printer drivers still don't work in 2026.

What Type Of Organisation Is Wipro?How Do You Reverse A Covered Call?