Module 3: Access Method Services (AMS)
Defining ESDS
- What is ESDS? Please refer Module 2 <LINK>
- ESDS cluster can be defined using DEFINE CLUSTER command which is explained along with Syntax in ‘IDCAMS DEFINE CLUSTER Command’ section. <LINK>
- Below is the most basic Syntax for defining ESDS cluster:-
DEFINE CLUSTER - ( NAME(esds-file-name) - CYLINDERS ( primary[ secondary] ) - VOLUMES ( volser1 [volser2...] ) - [CONTROLINTERVALSIZE ( size ) ] - NONINDEXED - [RECORDSIZE ( average maximum ) ] ) - [ DATA - ([NAME(esds-file-name.DATA)]) ]
- Meaning of each of above parameters and other few more parameters(which are not included in above Simplified Syntax) can be referred in ‘IDCAMS- DEFINE CLUSTER command’ Section <LINK>
- NONINDEXED parameter must be coded in DEFINE CLUSTER command to instruct VSAM that the cluster is ESDS.
- Since ESDS does not have key field, Parameters related to key fields are not coded when defining ESDS cluster
- ESDS has only DATA component and thus INDEX component is not coded for ESDS cluster
- FREESPACE parameter is not required either, since an ESDS has no embedded free space between records
- Below JCL example depicts the creation of ESDS cluster:-
//DEPTJOB JOB A123,’STEVE’ //ESDSDFN EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER(NAME(PAYT.PAYROLL.PRCSESDS.MSTR) - CYLINDERS ( 5 1 ) - VOLUME(VSMP91) - CONTROLINTERVALSIZE(4096) - NONINDEXED - RECORDSIZE(250 300) ) - DATA( - NAME(PAYT.PAYROLL.PRCSESDS.MSTR.DATA)) /*
- Description:- :- Above job will create VSAM ESDS cluster since NONINDEXED is specified as type of cluster. It will be created with name ‘PAYT.PAYROLL.PRCSESDS.MSTR’ along with DATA component having name ‘PAYT.PAYROLL.PRCSESDS.MSTR.DATA’. This cluster will be created on volume ‘ VSMP91’. 5 cylinders of primary and 1 cylinders of secondary space will be allocated. The size of control interval specified is 4096 bytes. Average and maximum records length specified as 250 and 300 bytes respectively which indicates, ESDS contains variable length records