VSAM - Comandi

I comandi VSAM vengono utilizzati per eseguire determinate operazioni sui set di dati VSAM. Di seguito sono riportati i comandi VSAM più utili:

  • Alter
  • Repro
  • Listcat
  • Examine
  • Verify

Alter

Il comando ALTER viene utilizzato per modificare gli attributi del file VSAM. Possiamo modificare gli attributi del file VSAM che abbiamo menzionato nella definizione del cluster VSAM. Di seguito è riportata la sintassi per modificare gli attributi:

ALTER  file-cluster-name [password] 
   [ADDVOLUMES(volume-serial)] 
   [BUFFERSPACE(size)] 
   [EMPTY / NOEMPTY] 
   [ERASE / NOERASE] 
   [FREESPACE(CI-percentage CA-percentage)] 
   [KEYS(length offset)] 
   [NEWNAME(new-name)] 
   [RECORDSIZE(average maximum)] 
   [REMOVEVOLUMES(volume-serial)] 
   [SCRATCH / NOSCRATCH] 
   [TO(date) / FOR(days)] 
   [UPGRADE / NOUPGRADE] 
   [CATALOG(catalog-name [password]]

La sintassi sopra mostra quali parametri possiamo modificare in un cluster VSAM esistente. La descrizione del parametro rimane la stessa menzionata in VSAM - Modulo Cluster.

Esempio

L'esempio seguente mostra come utilizzare il comando ALTER per aumentare lo spazio libero, per aggiungere più volumi e per modificare le chiavi -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   ALTER  MY.VSAM.KSDSFILE 
   [ADDVOLUMES(2)] 
   [FREESPACE(6 6)] 
   [KEYS(10 2)] 
/*

Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e altererà Freespace, Volumes e Keys.

Repro

Il comando REPRO viene utilizzato per caricare i dati nel set di dati VSAM. Viene anche utilizzato per copiare i dati da un data set VSAM a un altro. Possiamo usare questo comando per copiare i dati dal file sequenziale al file VSAM. L'utilità IDCAMS utilizza il comando REPRO per caricare i set di dati.

REPRO INFILE(in-ddname) 
   OUTFILE(out-ddname)

Nella sintassi precedente, in-ddname è il nome DD per il set di dati di input che contiene record. Out-ddname è il nome DD per il set di dati di output, in cui verranno copiati i record dei set di dati di input.

Esempio

L'esempio seguente mostra come copiare i record da un set di dati a un altro set di dati VSAM -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//IN  DD DSN = MY.VSAM.KSDSFILE,DISP = SHR
//OUT DD DSN = MY.VSAM1.KSDSFILE,DISP = SHR
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   REPRO INFILE(IN) 
      OUTFILE(OUT)
/*

Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e copierà tutti i record da MY.VSAM.KSDSFILE al file MY.VSAM1.KSDSFILE VSAM.

Listcat

Il comando LISTCAT viene utilizzato per ottenere i dettagli del catalogo di un set di dati VSAM. Il comando Listcat fornisce le seguenti informazioni sui set di dati VSAM:

  • Informazioni SMS
  • Informazioni RLS
  • Informazioni sul volume
  • Informazioni sulla sfera
  • Informazioni sull'assegnazione
  • Attributi del set di dati
LISTCAT ENTRY(vsam-file-name) ALL

Nella sintassi precedente, vsam-file-name è il nome del set di dati VSAM per il quale abbiamo bisogno di tutte le informazioni. La parola chiave ALL è specificata per ottenere tutti i dettagli del catalogo.

Esempio

L'esempio seguente mostra come recuperare tutti i dettagli utilizzando il comando Listcat per un set di dati VSAM -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   LISTCAT ENTRY(MY.VSAM.KSDSFILE) 
   ALL 
/*

Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e mostrerà tutti i dettagli del catalogo sul set di dati MY.VSAM.KSDSFILE.

Esaminare

Il comando Examine viene utilizzato per verificare l'integrità strutturale di un cluster di set di dati con sequenza di chiavi. Controlla i componenti dell'indice e dei dati e se viene rilevato un problema, i messaggi di errore vengono inviati allo spool. Puoi controllare uno qualsiasi dei messaggi IDCxxxxx.

EXAMINE NAME(vsam-ksds-name) -                                    
   INDEXTEST DATATEST -                  
   ERRORLIMIT(50)

Nella sintassi precedente, vsam-ksds-name è il nome del set di dati VSAM per il quale è necessario esaminare l'indice e la parte dei dati del cluster VSAM.

Esempio

L'esempio seguente mostra come verificare se l'indice e la parte dei dati del set di dati KSDS sono sincronizzati o meno -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   EXAMINE NAME(MY.VSAM.KSDSFILE) -                                    
   INDEXTEST DATATEST -                  
   ERRORLIMIT(50)
/*

Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e mostrerà tutti i problemi con il data set VSAM in uno dei messaggi IDCxxxxx nello spool.

Verificare

Il comando Verifica viene utilizzato per controllare e correggere i file VSAM che non sono stati chiusi correttamente dopo un errore. Il comando aggiunge i record di fine dati corretti al file.

VERIFY DS(vsam-file-name)

Nella sintassi precedente, vsam-file-name è il nome del set di dati VSAM per il quale dobbiamo controllare gli errori.

Esempio

L'esempio seguente mostra come controllare e correggere gli errori nel set di dati VSAM -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   VERIFY DS(MY.VSAM.KSDSFILE)                                  
/*

Se eseguirai il JCL sopra sul server Mainframes. Dovrebbe essere eseguito con MAXCC = 0 e correggerà gli errori nel set di dati VSAM.