VSAM - RRDS
RRDS è noto come Relative Record Data Set. Il cluster RRDS è simile a un cluster ESDS. L'unica differenza è che i record RRDS sono accessibili daRelative Record Number (RRN), dobbiamo codificare NUMBEREDall'interno del comando DEFINE CLUSTER. Di seguito sono riportate le caratteristiche principali di RRDS:
Un set di dati di record relativo contiene record identificati da Relative Record Number (RRN), che è il numero di sequenza relativo al primo record.
RRDS consente l'accesso ai record in base al numero come record 1, record 2 e così via. Ciò fornisce l'accesso casuale e presuppone che il programma applicativo disponga di un modo per ottenere i numeri di record desiderati.
È possibile accedere ai record in un dataset RRDS in sequenza, nell'ordine del numero di record relativo, o direttamente, fornendo il numero di record relativo del record desiderato.
I record in un set di dati RRDS vengono memorizzati in slot di lunghezza fissa. Ogni record è referenziato dal numero del suo slot, il numero può variare da 1 al numero massimo di record nel dataset.
I record in un RRDS possono essere scritti inserendo un nuovo record in uno slot vuoto.
I record possono essere eliminati da un cluster RRDS, lasciando così uno slot vuoto.
Applicazioni che utilizzano record di lunghezza fissa o un numero di record con significato contestuale che possono utilizzare set di dati RRDS.
RRDS può essere utilizzato in COBOLprogrammi come qualsiasi altro file. Specificheremo il nome del file in JCL e possiamo utilizzare il file KSDS per l'elaborazione all'interno del programma. Nel programma COBOL specificare l'organizzazione dei file comeRELATIVE e puoi utilizzare qualsiasi modalità di accesso (Sequential, Random or Dynamic) con set di dati RRDS.
Struttura del file RRDS
Lo spazio è suddiviso in slot di lunghezza fissa nella struttura dei file RRDS. Uno slot può essere completamente vuoto o completamente pieno. Pertanto, è possibile aggiungere nuovi record agli slot vuoti e record esistenti possono essere eliminati dagli slot riempiti. Possiamo accedere a qualsiasi record direttamente fornendo il numero di record relativo. L'esempio seguente mostra la struttura di base del file di dati:
Componente dati
Numero di registrazione relativo | Campo di registrazione 1 | Campo di registrazione 2 |
---|---|---|
1 | Tutorial | Punto |
2 | Mohtashim | M. |
3 | Nishant | Malik |
Definizione del cluster RRDS
La sintassi seguente mostra quali parametri possiamo utilizzare durante la creazione del cluster RRDS.
La descrizione del parametro rimane la stessa menzionata in VSAM - Modulo Cluster.
DEFINE CLUSTER (NAME(rrds-file-name) -
BLOCKS(number) -
VOLUMES(volume-serial) -
NUMBERED -
RECSZ(average maximum) -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number) -
[READPW(password)] -
[FOR(days)|TO(date)] -
[UPDATEPW(password)] -
[REUSE / NOREUSE]) -
DATA -
(NAME(rrds-file-name.data))
Esempio
L'esempio seguente mostra come creare un cluster RRDS 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.RRDSFILE) -
NUMBERED -
RECSZ(80 80) -
TRACKS(1,1) -
REUSE -
FREESPACE(3 3) ) -
DATA (NAME(MY.VSAM.RRDSFILE.DATA))
/*
Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e creerà il file MY.VSAM.RRDSFILE VSAM.
Eliminazione del cluster RRDS
Il cluster RRDS 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 RRDS. La descrizione del parametro rimane la stessa menzionata in VSAM - Modulo Cluster.
Esempio
L'esempio seguente mostra come eliminare un cluster RRDS 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.RRDSFILE CLUSTER
/*
Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e cancellerà MY.VSAM.RRDSFILE VSAM Cluster.