Define Variable-length RRDS Example


Scenario - Create RRDS 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
//*********************************************
//* DEFINE VSAM VARIABLE LENGTH RRDS
//*********************************************
//STEP01   EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN    DD  *
  DEFINE CLUSTER -
    (NAME(MATEGJ.TEST.VRRDS)  -
     RECORDSIZE(47,67)    -
     CYLINDERS(2,1)       -
     VOLUMES(DEVHD4)      -
     NUMBERED             -
     REUSE     )          -
  DATA(NAME(MATEGJ.TEST.VRRDS.DATA)) -
  INDEX(NAME(MATEGJ.TEST.VRRDS.INDEX))
/*

Output -

Once the above JCL is submitted, check the MAXCC of the job for any errors. If the MAXCC is 00 or 04, RRDS successfully created.

Create RRDS Output

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

Create RRDS Output

Explaining Example -

In the above example,

  • RECORDSIZE(47,67) specifies that the record average length is 47, and the maximum length is 67. So the RRDS 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.
  • VOLUMES(DEVHD4) specifies that allocate the RRDS on volume DEVHD4.
  • NUMBERED parameter specifies the file is to create RRDS.
  • REUSE specifies the memory can reuse immediately once the file gets deleted.