VSAM - Commandes

Les commandes VSAM sont utilisées pour effectuer certaines opérations sur les ensembles de données VSAM. Voici les commandes VSAM les plus utiles -

  • Alter
  • Repro
  • Listcat
  • Examine
  • Verify

Modifier

La commande ALTER est utilisée pour modifier les attributs de fichier VSAM. Nous pouvons modifier les attributs du fichier VSAM que nous avons mentionnés dans la définition du cluster VSAM. Voici la syntaxe pour modifier les attributs -

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 syntaxe ci-dessus montre les paramètres que nous pouvons modifier dans un cluster VSAM existant. La description des paramètres reste la même que celle mentionnée dans VSAM - module Cluster.

Exemple

L'exemple suivant montre comment utiliser la commande ALTER pour augmenter l'espace libre, pour ajouter plus de volumes et pour modifier les clés -

//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)] 
/*

Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il devrait s'exécuter avec MAXCC = 0 et modifiera l'espace libre, les volumes et les clés.

Repro

La commande REPRO est utilisée pour charger des données dans l'ensemble de données VSAM. Il est également utilisé pour copier des données d'un ensemble de données VSAM vers un autre. Nous pouvons utiliser cette commande pour copier les données du fichier séquentiel vers le fichier VSAM. L'utilitaire IDCAMS utilise la commande REPRO pour charger les ensembles de données.

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

Dans la syntaxe ci-dessus, le in-ddname est le nom DD de l'ensemble de données d'entrée qui contient des enregistrements. Le nom-jj est le nom DD de l'ensemble de données de sortie, où les enregistrements des ensembles de données d'entrée seront copiés.

Exemple

L'exemple suivant montre comment copier des enregistrements d'un ensemble de données vers un autre ensemble de données 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)
/*

Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et copier tous les enregistrements de MY.VSAM.KSDSFILE dans le fichier MY.VSAM1.KSDSFILE VSAM.

Listcat

La commande LISTCAT est utilisée pour obtenir les détails du catalogue d'un jeu de données VSAM. La commande Listcat fournit les informations suivantes sur les ensembles de données VSAM -

  • Informations SMS
  • Informations RLS
  • Informations sur le volume
  • Informations sur la sphère
  • Informations d'allocation
  • Attributs du jeu de données
LISTCAT ENTRY(vsam-file-name) ALL

Dans la syntaxe ci-dessus, vsam-file-name est le nom de l'ensemble de données VSAM pour lequel nous avons besoin de toutes les informations. Le mot clé ALL est spécifié pour obtenir tous les détails du catalogue.

Exemple

L'exemple suivant montre comment récupérer tous les détails à l'aide de la commande Listcat pour un ensemble de données VSAM -

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

Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et afficher tous les détails du catalogue sur l'ensemble de données MY.VSAM.KSDSFILE.

Examiner

La commande Examiner est utilisée pour vérifier l'intégrité structurelle d'un cluster de jeux de données séquencés par clé. Il vérifie les composants d'index et de données et si un problème est détecté, les messages d'erreur sont envoyés dans le spool. Vous pouvez vérifier n'importe lequel des messages IDCxxxxx.

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

Dans la syntaxe ci-dessus, vsam-ksds-name est le nom de l'ensemble de données VSAM pour lequel nous devons examiner la partie index et données du cluster VSAM.

Exemple

L'exemple suivant montre comment vérifier si les parties Index et Données de l'ensemble de données KSDS sont synchronisées ou non -

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

Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et afficher tous les problèmes avec l'ensemble de données VSAM dans l'un des messages IDCxxxxx du spool.

Vérifier

La commande Verify est utilisée pour vérifier et corriger les fichiers VSAM qui n'ont pas été fermés correctement après une erreur. La commande ajoute les enregistrements de fin de données corrects au fichier.

VERIFY DS(vsam-file-name)

Dans la syntaxe ci-dessus, vsam-file-name est le nom de l'ensemble de données VSAM pour lequel nous devons vérifier les erreurs.

Exemple

L'exemple suivant montre comment vérifier et corriger les erreurs dans l'ensemble de données VSAM -

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

Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et corrigera les erreurs dans l'ensemble de données VSAM.