VSAM - Cluster
Il cluster VSAM è definito in JCL. JCL utilizzaIDCAMSutilità per creare un cluster. IDCAMS è un'utilità, sviluppata da IBM, per i servizi del metodo di accesso. Viene utilizzato principalmente per definire i set di dati VSAM.
Definizione di un cluster
La sintassi seguente mostra i parametri principali raggruppati in Define Cluster, Data e Index.
.DEFINE CLUSTER (NAME(vsam-file-name) -
BLOCKS(number) -
VOLUMES(volume-serial) -
[INDEXED / NONINDEXED / NUMBERED / LINEAR] -
RECSZ(average maximum) -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number) -
[KEYS(length offset)] -
[READPW(password)] -
[FOR(days)|TO(date)] -
[UPDATEPW(password)] -
[REUSE / NOREUSE] ) -
DATA -
(NAME(vsam-file-name.data)) -
INDEX -
(NAME(vsam-file-name.index)) -
CATALOG(catalog-name[/password]))
I parametri a livello di CLUSTER si applicano all'intero cluster. I parametri a livello DATI o INDICE si applicano solo al componente dati o indice.
Discuteremo ogni parametro in dettaglio nella seguente tabella:
Suor n | Parametri con descrizione |
---|---|
1 | DEFINE CLUSTER Il comando Define Cluster viene utilizzato per definire un cluster e specificare gli attributi dei parametri per il cluster e i suoi componenti. |
2 | NAME NAME specifica il nome del file VSAM per il quale stiamo definendo il cluster. |
3 | BLOCKS Blocchi specifica il numero di blocchi assegnati per il cluster. |
4 | VOLUMES Volumes specifica uno o più volumi che conterranno il cluster o il componente. |
5 | INDEXED / NONINDEXED / NUMBERED / LINEAR Questo parametro può assumere tre valori INDEXED, NONINDEXED o NUMBERED a seconda del tipo di dataset che stiamo creando. Per i file con sequenza di tasti (KSDS) viene utilizzata l'opzione INDEXED. Per i file in sequenza di immissione (ESDS) viene utilizzata l'opzione NONINDEXED. Per i file relativi ai record (RRDS) è richiesta l'opzione NUMERATA. Per i file Lineari (LDS) è richiesta l'opzione LINEARE. Il valore predefinito di questo parametro è INDICE. Discuteremo di più su KSDS, ESDS, RRDS e LDS nei prossimi moduli. |
6 | RECSZ Il parametro Dimensione record ha due valori che sono Dimensione record media e Massima. La media specifica la lunghezza media dei record logici nel file e il massimo indica la lunghezza dei record. |
7 | FREESPACE Freespace specifica la percentuale di spazio libero da riservare per gli intervalli di controllo (CI) e le aree di controllo (CA) del componente dati. Il valore predefinito di questo parametro è zero percentuale. |
8 | CISZ CISZ è noto come dimensione dell'intervallo di controllo. Specifica la dimensione degli intervalli di controllo. |
9 | KEYS Il parametro Keys è definito solo nei file KSDS (key-sequencing). Specifica la lunghezza e l'offset della chiave primaria dalla prima colonna. L'intervallo di valori di questo parametro va da 1 a 255 byte. |
10 | READPW Il valore nel parametro READPW specifica la password del livello di lettura. |
11 | FOR/TO Il valore di questo parametro specifica la quantità di tempo in termini di data e giorni per la conservazione del file. Il valore predefinito per questo parametro è zero giorni. |
12 | UPDATEPW Il valore nel parametro UPDATEPW specifica la password del livello di aggiornamento. |
13 | REUSE / NOREUSE Il parametro REUSE consente di definire cluster che possono essere reimpostati allo stato vuoto senza eliminarli e ridefinirli. |
14 | DATA - NAME La parte DATA del cluster contiene il nome del set di dati che contiene i dati effettivi del file. |
15 | INDEX-NAME La parte INDICE del cluster contiene la chiave primaria e il puntatore di memoria per il record corrispondente nella parte dati. Viene definito quando viene utilizzato un cluster con sequenze di chiavi. |
16 | CATALOG Il parametro del catalogo indica il catalogo in cui verrà definito il file. Discuteremo del catalogo separatamente nei prossimi moduli. |
Esempio
Di seguito è riportato un esempio di base per mostrare come definire un cluster in JCL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE CLUSTER (NAME(MY.VSAM.KSDSFILE) -
INDEXED -
RECSZ(80 80) -
TRACKS(1,1) -
KEYS(5 0) -
CISZ(4096) -
FREESPACE(3 3) ) -
DATA (NAME(MY.VSAM.KSDSFILE.DATA)) -
INDEX (NAME(MY.VSAM.KSDSFILE.INDEX))
/*
Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e creerà il file MY.VSAM.KSDSFILE VSAM.
Eliminazione di un cluster
Per eliminare un file VSAM, il cluster VSAM deve essere 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. Se il set di dati VSAM non è scaduto, non verrà eliminato. Per eliminare questi tipi di set di dati utilizzare l'opzione PURGE.
DELETE data-set-name CLUSTER
[ERASE / NOERASE]
[FORCE / NOFORCE]
[PURGE / NOPURGE]
[SCRATCH / NOSCRATCH]
La sintassi sopra mostra i parametri che possiamo usare con l'istruzione Delete. Discuteremo ciascuno di essi in dettaglio nella tabella seguente:
Suor n | Parametri con descrizione |
---|---|
1 | ERASE / NOERASE L'opzione ERASE è specificata per sovrascrivere l'attributo ERASE specificato per l'oggetto nel catalogo. L'opzione NOERASE è utilizzata per impostazione predefinita. |
2 | FORCE / NOFORCE L'opzione FORCE è specificata per eliminare SPACE e USERCATALOG anche se non sono vuoti. L'opzione NOFORCE è utilizzata per impostazione predefinita. |
3 | PURGE / NOPURGE L'opzione PURGE viene utilizzata per eliminare il set di dati VSAM se il set di dati non è scaduto. L'opzione NOPURGE è utilizzata per impostazione predefinita. |
4 | SCRATCH / NOSCRATCH L'opzione SCRATCH è specificata per rimuovere la voce associata per l'oggetto dal sommario del volume. Viene utilizzato principalmente per set di dati non vsam come i GDG. L'opzione NOSCRATCH è quella predefinita. |
Esempio
Di seguito è riportato un esempio di base per mostrare come eliminare un cluster in JCL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.KSDSFILE CLUSTER
PURGE
/*
Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e cancellerà il file MY.VSAM.KSDSFILE VSAM.