VSAM - ESDS

ESDS è noto come Entry Sequenced Data Set. Un set di dati in sequenza di voci si comporta come un'organizzazione di file sequenziale con alcune funzionalità aggiuntive incluse. Possiamo accedere direttamente ai record e per motivi di sicurezza possiamo usare anche password. Dobbiamo codificareNONINDEXEDall'interno del comando DEFINE CLUSTER per i dataset ESDS. Di seguito sono riportate le caratteristiche principali di ESDS:

  • I record nel cluster ESDS vengono archiviati nell'ordine in cui sono stati inseriti nel set di dati.

  • I record sono referenziati da un indirizzo fisico noto come Relative Byte Address (RBA). Supponiamo che se in un set di dati ESDS abbiamo record da 80 byte, l'RBA del primo record sarà 0, l'RBA per il secondo record sarà 80, per il terzo record sarà 160 e così via.

  • È possibile accedere ai record in sequenza da RBA, noto come addressed access.

  • I record vengono conservati nell'ordine in cui sono stati inseriti. Alla fine vengono inseriti nuovi record.

  • Non è possibile eliminare i record nel set di dati ESDS. Ma possono essere contrassegnati come inattivi.

  • I record nel set di dati ESDS possono essere di lunghezza fissa o variabile.

  • ESDS non è indicizzato. Le chiavi non sono presenti nel set di dati ESDS, quindi potrebbero contenere record duplicati.

  • ESDS può essere utilizzato nei programmi COBOL come qualsiasi altro file. Specificheremo il nome del file in JCL e possiamo utilizzare il file ESDS per l'elaborazione all'interno del programma. Nel programma COBOL specificare l'organizzazione dei file comeSequential e modalità di accesso come Sequential con set di dati ESDS.

Definizione del cluster ESDS

La sintassi seguente mostra quali parametri possiamo utilizzare durante la creazione del cluster ESDS. La descrizione del parametro rimane la stessa menzionata in VSAM - Modulo Cluster.

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))

Esempio

L'esempio seguente mostra come creare un cluster ESDS in JCL utilizzando l'utility 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))      
/*

Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e creerà il file MY.VSAM.ESDSFILE VSAM.

Eliminazione del cluster ESDS

Il cluster ESDS viene eliminato utilizzando l'utilità IDCAMS. Il comando DELETE rimuove la voce del cluster VSAM dal catalogo e opzionalmente rimuove il file, liberando così lo spazio occupato dall'oggetto.

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

La sintassi sopra mostra quali parametri possiamo utilizzare durante l'eliminazione del cluster ESDS. La descrizione del parametro rimane la stessa menzionata in VSAM - Modulo Cluster.

Esempio

L'esempio seguente mostra come eliminare un cluster ESDS in JCL utilizzando l'utilità IDCAMS -

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

Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e cancellerà MY.VSAM.ESDSFILE VSAM Cluster.