VSAM - ESDS

ESDS se conoce como conjunto de datos secuenciados de entrada. Un conjunto de datos con secuencia de entrada se comporta como una organización secuencial de archivos con algunas características más incluidas. Podemos acceder a los registros directamente y por motivos de seguridad también podemos utilizar contraseñas. Debemos codificarNONINDEXEDdentro del comando DEFINE CLUSTER para conjuntos de datos ESDS. Las siguientes son las características clave de ESDS:

  • Los registros del clúster ESDS se almacenan en el orden en que se insertaron en el conjunto de datos.

  • Los registros se referencian por la dirección física que se conoce como Relative Byte Address (RBA). Suponga que si en un conjunto de datos ESDS, tenemos registros de 80 bytes, el RBA del primer registro será 0, el RBA para el segundo registro será 80, para el tercer registro será 160 y así sucesivamente.

  • Se puede acceder a los registros secuencialmente por RBA, que se conoce como addressed access.

  • Los registros se mantienen en el orden en que se insertaron. Los nuevos registros se insertan al final.

  • La eliminación de registros no es posible en el conjunto de datos ESDS. Pero se pueden marcar como inactivos.

  • Los registros del conjunto de datos ESDS pueden tener una longitud fija o variable.

  • ESDS no está indexado. Las claves no están presentes en el conjunto de datos ESDS, por lo que pueden contener registros duplicados.

  • ESDS se puede utilizar en programas COBOL como cualquier otro archivo. Especificaremos el nombre del archivo en JCL y podemos usar el archivo ESDS para procesarlo dentro del programa. En el programa COBOL, especifique la organización de archivos comoSequential y modo de acceso como Sequential con el conjunto de datos ESDS.

Definición de clúster ESDS

La siguiente sintaxis muestra qué parámetros podemos usar al crear un clúster ESDS. La descripción del parámetro sigue siendo la misma que se menciona en VSAM - Módulo de clúster.

DEFINE CLUSTER (NAME(esds-file-name)     -
BLOCKS(number)                           -
VOLUMES(volume-serial)                   -
NONINDEXED                               -
RECSZ(average maximum)                   -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number)                             -
[READPW(password)]                       -
[FOR(days)|TO(date)]                     -
[UPDATEPW(password)]                     -
[REUSE / NOREUSE])                       -
DATA                                     -
   (NAME(esds-file-name.data))

Ejemplo

El siguiente ejemplo muestra cómo crear un clúster ESDS en JCL utilizando la utilidad IDCAMS:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.ESDSFILE)  -
   NONINDEXED                              -
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   CISZ(4096)                              -                            
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.ESDSFILE.DATA))      
/*

Si va a ejecutar el JCL anterior en el servidor Mainframes. Debería ejecutarse con MAXCC = 0 y creará el archivo MY.VSAM.ESDSFILE VSAM.

Eliminación del clúster ESDS

El clúster ESDS se elimina mediante la utilidad IDCAMS. El comando DELETE elimina la entrada del clúster VSAM del catálogo y, opcionalmente, elimina el archivo, liberando así el espacio ocupado por el objeto.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

La sintaxis anterior muestra qué parámetros podemos usar al eliminar el clúster ESDS. La descripción del parámetro sigue siendo la misma que se menciona en VSAM - Módulo de clúster.

Ejemplo

El siguiente ejemplo muestra cómo eliminar un clúster ESDS en JCL mediante la utilidad IDCAMS:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.ESDSFILE CLUSTER
/*

Si va a ejecutar el JCL anterior en el servidor Mainframes. Debería ejecutarse con MAXCC = 0 y eliminará MY.VSAM.ESDSFILE VSAM Cluster.