Define Variable-length ESDS
Define Variable-length ESDS Example
Scenario - Create ESDS with variable-length records of average size 47 and maximum size 67 bytes.
JCL -
----+----1----+----2----+----3----+----4----+----5
//MATEPKE JOB (123),'MTH',CLASS=A,
// MSGCLASS=A,
// MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//*********************************************
//* Creating variable-length ESDS
//*********************************************
//STEP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER -
(NAME(MATEPK.TEST.VESDS) -
RECORDSIZE(47,67) -
CYLINDERS(2,1) -
CISZ(4096) -
VOLUMES(DEVHD4) -
NONINDEXED -
REUSE ) -
DATA(NAME(MATEPK.TEST.VESDS.DATA))
/*
Output -
Once the above JCL is submitted, check the MAXCC of the job for any errors. If the MAXCC is 00 or 04, ESDS successfully created.

Verify the ESDS in 3.4 (Dataset List utility) or any File management tools for the existance.

Explaining Example -
In the above example,
- RECORDSIZE(47,67) specifies the record average length is 47, and the maximum size is 67. So the ESDS file we are creating is variable-length.
- CYLINDERS(2,1) specifies the primary memory allocation is 2 CYLINDERS, and secondary memory allocation is 1 CYLINDER.
- CISZ(4096) specifies the control interval size is 4096.
- VOLUMES(DEVHD4) specifies that allocate the ESDS on volume DEVHD4.
- NONINDEXED parameter specifies the file is to create ESDS.
- REUSE specifies the memory can reuse immediately once the file gets deleted.