VSAM - ESDS
ESDS jest znany jako zestaw danych sekwencyjnych wejść. Zestaw danych z sekwencją wejściową zachowuje się jak sekwencyjna organizacja plików z kilkoma dodatkowymi funkcjami. Mamy bezpośredni dostęp do akt, a ze względów bezpieczeństwa możemy również używać haseł. Musimy kodowaćNONINDEXEDwewnątrz polecenia DEFINE CLUSTER dla zestawów danych ESDS. Poniżej przedstawiono kluczowe cechy ESDS -
Rekordy w klastrze ESDS są przechowywane w kolejności, w jakiej zostały wstawione do zestawu danych.
Do rekordów odwołuje się adres fizyczny, który jest znany jako Relative Byte Address (RBA). Załóżmy, że jeśli w zbiorze danych ESDS mamy 80-bajtowe rekordy, RBA pierwszego rekordu będzie wynosić 0, RBA drugiego rekordu będzie wynosić 80, trzeciego rekordu - 160 i tak dalej.
Dostęp do rekordów można uzyskać sekwencyjnie za pomocą RBA, który jest znany jako addressed access.
Rekordy są przechowywane w kolejności, w jakiej zostały wprowadzone. Na końcu wstawiane są nowe rekordy.
Usunięcie rekordów nie jest możliwe w zbiorze danych ESDS. Ale można je oznaczyć jako nieaktywne.
Rekordy w zbiorze danych ESDS mogą mieć stałą lub zmienną długość.
ESDS nie jest indeksowany. Klucze nie są obecne w zbiorze danych ESDS, więc może zawierać zduplikowane rekordy.
ESDS może być używany w programach w języku COBOL, jak z każdego innego pliku. Nazwę pliku określimy w JCL i możemy użyć pliku ESDS do przetwarzania w programie. W programie COBOL określ organizację plików jakoSequential i tryb dostępu jako Sequential ze zbiorem danych ESDS.
Definiowanie klastra ESDS
Poniższa składnia pokazuje, jakich parametrów możemy użyć podczas tworzenia klastra ESDS. Opis parametrów pozostaje taki sam, jak wspomniany w module VSAM - 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))
Przykład
Poniższy przykład pokazuje, jak utworzyć klaster ESDS w JCL za pomocą narzędzia 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))
/*
Jeśli wykonasz powyższe JCL na serwerze mainframe. Powinien zostać wykonany z MAXCC = 0 i utworzy plik MY.VSAM.ESDSFILE VSAM.
Usuwanie klastra ESDS
Klaster ESDS jest usuwany za pomocą narzędzia IDCAMS. Polecenie DELETE usuwa wpis klastra VSAM z katalogu i opcjonalnie usuwa plik, zwalniając w ten sposób miejsce zajmowane przez obiekt.
DELETE data-set-name CLUSTER
[ERASE / NOERASE]
[FORCE / NOFORCE]
[PURGE / NOPURGE]
[SCRATCH / NOSCRATCH]
Powyższa składnia pokazuje, jakich parametrów możemy użyć podczas usuwania klastra ESDS. Opis parametrów pozostaje taki sam, jak wspomniany w module VSAM - Cluster.
Przykład
Poniższy przykład pokazuje, jak usunąć klaster ESDS w JCL za pomocą narzędzia IDCAMS -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.ESDSFILE CLUSTER
/*
Jeśli wykonasz powyższe JCL na serwerze mainframe. Powinien być wykonywany z MAXCC = 0 i usunie klaster MY.VSAM.ESDSFILE VSAM.