VSAM - Guide rapide
La méthode d'accès au stockage virtuel (VSAM) est une méthode d'accès haute performance et une organisation des ensembles de données, qui organise et gère les données via une structure de catalogue. Il utilise le concept de stockage virtuel et peut protéger les ensembles de données à différents niveaux en donnant des mots de passe. VSAM peut être utilisé dans les programmes COBOL tels que les fichiers séquentiels physiques. VSAM sont les ensembles de données logiques pour stocker les enregistrements. Les fichiers peuvent être lus de manière séquentielle et aléatoire dans VSAM. C'est une manière améliorée de stocker des données qui surmonte certaines des limitations des systèmes de fichiers conventionnels comme les fichiers séquentiels.
Caractéristiques de VSAM
Voici les caractéristiques de VSAM -
VSAM protège les données contre les accès non autorisés en utilisant des mots de passe.
VSAM fournit un accès rapide aux ensembles de données.
VSAM propose des options pour optimiser les performances.
VSAM permet le partage de jeux de données dans un environnement par lots et en ligne.
Les VSAM sont plus structurés et organisés dans le stockage des données.
L'espace libre est réutilisé automatiquement dans les fichiers VSAM.
Limitations de VSAM
La seule limitation de VSAM est qu'il ne peut pas être stocké sur le volume TAPE. Il est toujours stocké sur l'espace DASD. Il nécessite un certain nombre de cylindres pour stocker les données, ce qui n'est pas rentable.
VSAM se compose des composants suivants -
- Cluster VSAM
- Zone de contrôle
- Intervalle de contrôle
Cluster VSAM
VSAM sont les ensembles de données logiques pour le stockage des enregistrements et sont connus sous le nom de clusters. Un cluster est une association de l'index, de l'ensemble de séquences et des parties de données de l'ensemble de données. L'espace occupé par un cluster VSAM est divisé en zones contiguës appelées intervalles de contrôle. Nous discuterons des intervalles de contrôle plus loin dans ce module.
Il existe deux composants principaux dans un cluster VSAM:
Index Componentcontient la partie index. Les enregistrements d'index sont présents dans le composant Index. À l'aide du composant d'index, VSAM est capable de récupérer des enregistrements à partir du composant de données.
Data Componentcontient la partie données. Les enregistrements de données réels sont présents dans le composant Données.
Intervalle de contrôle
Les intervalles de contrôle (CI) dans VSAM sont équivalents aux blocs pour les ensembles de données non VSAM. Dans les méthodes non VSAM, l'unité de données est définie par le bloc. VSAM fonctionne avec une zone de données logique connue sous le nom d'intervalles de contrôle.
Les intervalles de contrôle sont la plus petite unité de transfert entre un disque et le système d'exploitation. Chaque fois qu'un enregistrement est extrait directement de la mémoire, l'ensemble du CI contenant l'enregistrement est lu dans la mémoire tampon d'entrée-sortie VSAM. L'enregistrement souhaité est ensuite transféré dans la zone de travail à partir du tampon VSAM.
L'intervalle de contrôle se compose de -
- Enregistrements logiques
- Contrôle des champs d'information
- Espace libre
Lorsqu'un jeu de données VSAM est chargé, des intervalles de contrôle sont créés. La taille de l'intervalle de contrôle par défaut est de 4 Ko et peut s'étendre jusqu'à 32 Ko.
Analyse de l'intervalle de contrôle
Voici la description des termes utilisés dans le programme ci-dessus -
R1..R5 - Enregistrements stockés dans l'intervalle de contrôle.
FS - FS est un espace libre, qui peut être utilisé pour une extension ultérieure du jeu de données.
RDF- RDF est connu sous le nom de champs de définition d'enregistrement. RDF a une longueur de 3 octets. Il décrit la longueur des enregistrements et indique le nombre d'enregistrements adjacents de la même longueur.
CIDF- CIDF est connu sous le nom de champs de définition d'intervalle de contrôle. Les CIDF ont une longueur de 4 octets et contiennent des informations sur l'intervalle de contrôle.
Zone de contrôle
Une zone de contrôle (CA) est formée en réunissant deux ou plusieurs intervalles de contrôle. Un jeu de données VSAM est composé d'une ou de plusieurs zones de contrôle. La taille de VSAM est toujours un multiple de sa zone de contrôle. Les fichiers VSAM sont étendus en unités de zones de contrôle.
Voici l'exemple de Control Area -
Le cluster VSAM est défini dans JCL. JCL utiliseIDCAMSutilitaire pour créer un cluster. IDCAMS est un utilitaire, développé par IBM, pour les services de méthode d'accès. Il est principalement utilisé pour définir les ensembles de données VSAM.
Définition d'un cluster
La syntaxe suivante montre les principaux paramètres qui sont regroupés sous Define Cluster, Data et 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]))
Les paramètres au niveau du CLUSTER s'appliquent à l'ensemble du cluster. Les paramètres au niveau DATA ou INDEX s'appliquent uniquement aux données ou au composant d'index.
Nous discuterons de chaque paramètre en détail dans le tableau suivant -
Sr.Non | Paramètres avec description |
---|---|
1 | DEFINE CLUSTER La commande Define Cluster permet de définir un cluster et de spécifier des attributs de paramètre pour le cluster et ses composants. |
2 | NAME NAME spécifie le nom du fichier VSAM pour lequel nous définissons le cluster. |
3 | BLOCKS Blocks spécifie le nombre de blocs attribués au cluster. |
4 | VOLUMES Volumes spécifie un ou plusieurs volumes qui contiendront le cluster ou le composant. |
5 | INDEXED / NONINDEXED / NUMBERED / LINEAR Ce paramètre peut prendre trois valeurs INDEXED, NONINDEXED ou NUMBERED selon le type de jeu de données que nous créons. Pour les fichiers à séquence de clés (KSDS), l'option INDEXED est utilisée. Pour les fichiers à séquence d'entrée (ESDS), l'option NON INDEXED est utilisée. Pour les fichiers d'enregistrement relatif (RRDS), l'option NUMBERED est requise. Pour les fichiers linéaires (LDS), l'option LINEAR est requise. La valeur par défaut de ce paramètre est INDEXED. Nous discuterons plus en détail de KSDS, ESDS, RRDS et LDS dans les prochains modules. |
6 | RECSZ Le paramètre Taille de l'enregistrement a deux valeurs qui sont la taille d'enregistrement moyenne et maximale. La moyenne spécifie la longueur moyenne des enregistrements logiques dans le fichier et la valeur maximale indique la longueur des enregistrements. |
sept | FREESPACE Freespace spécifie le pourcentage d'espace libre à réserver pour les intervalles de contrôle (CI) et les zones de contrôle (CA) du composant de données. La valeur par défaut de ce paramètre est zéro pourcentage. |
8 | CISZ CISZ est connue sous le nom de taille de l'intervalle de contrôle. Il spécifie la taille des intervalles de contrôle. |
9 | KEYS Le paramètre Keys est défini uniquement dans les fichiers séquencés par clé (KSDS). Il spécifie la longueur et le décalage de la clé primaire à partir de la première colonne. La plage de valeurs de ce paramètre va de 1 à 255 octets. |
dix | READPW La valeur du paramètre READPW spécifie le mot de passe du niveau de lecture. |
11 | FOR/TO La valeur de ce paramètre spécifie la durée en termes de date et de jours pour conserver le fichier. La valeur par défaut de ce paramètre est zéro jour. |
12 | UPDATEPW La valeur du paramètre UPDATEPW spécifie le mot de passe du niveau de mise à jour. |
13 | REUSE / NOREUSE Le paramètre REUSE permet de définir des clusters qui peuvent être remis à l'état vide sans les supprimer et les redéfinir. |
14 | DATA - NAME La partie DATA du cluster contient le nom de l'ensemble de données qui contient les données réelles du fichier. |
15 | INDEX-NAME La partie INDEX du cluster contient la clé primaire et le pointeur de mémoire pour l'enregistrement correspondant dans la partie données. Il est défini lorsqu'un cluster séquencé par clé est utilisé. |
16 | CATALOG Le paramètre de catalogue désigne le catalogue sous lequel le fichier sera défini. Nous discuterons du catalogue séparément dans les prochains modules. |
Exemple
Voici un exemple de base pour montrer comment définir un cluster dans 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))
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il créera le fichier MY.VSAM.KSDSFILE VSAM.
Suppression d'un cluster
Pour supprimer un fichier VSAM, le cluster VSAM doit être supprimé à l'aide de l'utilitaire IDCAMS. La commande DELETE supprime l'entrée du cluster VSAM du catalogue et supprime éventuellement le fichier, libérant ainsi l'espace occupé par l'objet. Si l'ensemble de données VSAM n'est pas expiré, il ne sera pas supprimé. Pour supprimer ces types d'ensembles de données, utilisez l'option PURGE.
DELETE data-set-name CLUSTER
[ERASE / NOERASE]
[FORCE / NOFORCE]
[PURGE / NOPURGE]
[SCRATCH / NOSCRATCH]
La syntaxe ci-dessus montre les paramètres que nous pouvons utiliser avec l'instruction Delete. Nous discuterons chacun d'eux en détail dans le tableau suivant -
Sr.Non | Paramètres avec description |
---|---|
1 | ERASE / NOERASE L'option ERASE est spécifiée pour remplacer l'attribut ERASE spécifié pour l'objet dans le catalogue. L'option NOERASE est prise par défaut. |
2 | FORCE / NOFORCE L'option FORCE est spécifiée pour supprimer SPACE et USERCATALOG même s'ils ne sont pas vides. L'option NOFORCE est prise par défaut. |
3 | PURGE / NOPURGE L'option PURGE est utilisée pour supprimer l'ensemble de données VSAM si l'ensemble de données n'a pas expiré. L'option NOPURGE est prise par défaut. |
4 | SCRATCH / NOSCRATCH L'option SCRATCH est spécifiée pour supprimer l'entrée associée à l'objet de la table des matières du volume. Il est principalement utilisé pour les ensembles de données non vsam comme les GDG. L'option NOSCRATCH est prise par défaut. |
Exemple
Voici un exemple de base pour montrer comment supprimer un cluster dans JCL -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.KSDSFILE CLUSTER
PURGE
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il supprimera le fichier VSAM MY.VSAM.KSDSFILE.
ESDS est connu sous le nom de jeu de données séquencées d'entrée. Un ensemble de données séquencées par entrée se comporte comme une organisation de fichiers séquentielle avec quelques fonctionnalités supplémentaires incluses. Nous pouvons accéder directement aux enregistrements et pour des raisons de sécurité, nous pouvons également utiliser des mots de passe. Il faut coderNONINDEXEDdans la commande DEFINE CLUSTER pour les ensembles de données ESDS. Voici les principales caractéristiques d'ESDS -
Les enregistrements du cluster ESDS sont stockés dans l'ordre dans lequel ils ont été insérés dans l'ensemble de données.
Les enregistrements sont référencés par une adresse physique connue sous le nom de Relative Byte Address (RBA). Supposons que si dans un ensemble de données ESDS, nous avons des enregistrements de 80 octets, le RBA du premier enregistrement sera 0, RBA pour le deuxième enregistrement sera de 80, pour le troisième enregistrement, il sera de 160 et ainsi de suite.
Les enregistrements sont accessibles séquentiellement par RBA, connu sous le nom de addressed access.
Les enregistrements sont conservés dans l'ordre dans lequel ils ont été insérés. De nouveaux enregistrements sont insérés à la fin.
La suppression d'enregistrements n'est pas possible dans l'ensemble de données ESDS. Mais ils peuvent être marqués comme inactifs.
Les enregistrements du jeu de données ESDS peuvent être de longueur fixe ou variable.
ESDS n'est pas indexé. Les clés ne sont pas présentes dans l'ensemble de données ESDS, il peut donc contenir des enregistrements en double.
ESDS peut être utilisé dans les programmes COBOL comme n'importe quel autre fichier. Nous allons spécifier le nom du fichier dans JCL et nous pouvons utiliser le fichier ESDS pour le traitement à l'intérieur du programme. Dans le programme COBOL, spécifiez l'organisation des fichiers commeSequential et accéder au mode comme Sequential avec le jeu de données ESDS.
Définition du cluster ESDS
La syntaxe suivante montre les paramètres que nous pouvons utiliser lors de la création d'un cluster ESDS. La description des paramètres reste la même que celle mentionnée dans VSAM - module 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))
Exemple
L'exemple suivant montre comment créer un cluster ESDS dans JCL à l'aide de l'utilitaire 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))
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il créera le fichier MY.VSAM.ESDSFILE VSAM.
Suppression du cluster ESDS
Le cluster ESDS est supprimé à l'aide de l'utilitaire IDCAMS. La commande DELETE supprime l'entrée du cluster VSAM du catalogue et supprime éventuellement le fichier, libérant ainsi l'espace occupé par l'objet.
DELETE data-set-name CLUSTER
[ERASE / NOERASE]
[FORCE / NOFORCE]
[PURGE / NOPURGE]
[SCRATCH / NOSCRATCH]
La syntaxe ci-dessus montre les paramètres que nous pouvons utiliser lors de la suppression du cluster ESDS. La description des paramètres reste la même que celle mentionnée dans VSAM - module Cluster.
Exemple
L'exemple suivant montre comment supprimer un cluster ESDS dans JCL à l'aide de l'utilitaire IDCAMS -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.ESDSFILE CLUSTER
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il supprimera MY.VSAM.ESDSFILE VSAM Cluster.
KSDS est connu sous le nom de jeu de données séquencées par clé. Un ensemble de données séquencées par clé (KSDS) est plus complexe que ESDS et RRDS, mais il est plus utile et polyvalent. Il faut coderINDEXEDdans la commande DEFINE CLUSTER pour les ensembles de données KSDS. Le cluster KSDS se compose des deux composants suivants:
Index- Le composant d'index du cluster KSDS contient la liste des valeurs de clé pour les enregistrements dans le cluster avec des pointeurs vers les enregistrements correspondants dans le composant de données. Le composant d'index fait référence à l'adresse physique d'un enregistrement KSDS. Cela relie la clé de chaque enregistrement à l'emplacement relatif de l'enregistrement dans l'ensemble de données. Lorsqu'un enregistrement est ajouté ou supprimé, cet index est mis à jour en conséquence.
Data- Le composant de données du cluster KSDS contient les données réelles. Chaque enregistrement du composant de données d'un cluster KSDS contient un champ clé avec le même nombre de caractères et apparaît à la même position relative dans chaque enregistrement.
Voici les principales caractéristiques de KSDS -
Les enregistrements de l'ensemble de données KSDS sont toujours triés par champ clé. Les enregistrements sont stockés par ordre croissant de classement par clé.
Les enregistrements sont accessibles séquentiellement et un accès direct est également possible.
Les enregistrements sont identifiés à l'aide d'une clé. La clé de chaque enregistrement est un champ dans une position prédéfinie dans l'enregistrement. Chaque clé doit être unique dans l'ensemble de données KSDS. La duplication des enregistrements n'est donc pas possible.
Lorsque de nouveaux enregistrements sont insérés, l'ordre logique des enregistrements dépend de la séquence de classement du champ clé.
Les enregistrements de l'ensemble de données KSDS peuvent être de longueur fixe ou variable.
KSDS peut être utilisé dans COBOLprogrammes comme n'importe quel autre fichier. Nous allons spécifier le nom du fichier dans JCL et nous pouvons utiliser le fichier KSDS pour le traitement à l'intérieur du programme. Dans le programme COBOL, spécifiez l'organisation des fichiers commeIndexed et vous pouvez utiliser n'importe quel mode d'accès (Sequential, Random or Dynamic) avec l'ensemble de données KSDS.
Structure des fichiers KSDS
Afin de rechercher un enregistrement particulier, nous attribuons une valeur de clé unique. La valeur de clé est recherchée dans le composant d'index. Une fois la clé trouvée, l'adresse mémoire correspondante qui fait référence au composant de données est récupérée. À partir de l'adresse mémoire, nous pouvons récupérer les données réelles qui sont stockées dans le composant de données. L'exemple suivant montre la structure de base de l'index et du fichier de données -
Définition du cluster KSDS
La syntaxe suivante montre les paramètres que nous pouvons utiliser lors de la création d'un cluster KSDS.
La description des paramètres reste la même que celle mentionnée dans VSAM - module Cluster.
DEFINE CLUSTER (NAME(ksds-file-name) -
BLOCKS(number) -
VOLUMES(volume-serial) -
INDEXED -
KEYS(length offset) -
RECSZ(average maximum) -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number) -
[READPW(password)] -
[FOR(days)|TO(date)] -
[UPDATEPW(password)] -
[REUSE / NOREUSE]) -
DATA -
(NAME(ksds-file-name.data)) -
INDEX -
(NAME(ksds-file-name.index))
Exemple
L'exemple suivant montre comment créer un cluster KSDS dans JCL à l'aide de l'utilitaire IDCAMS -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE CLUSTER (NAME(MY.VSAM.KSDSFILE) -
INDEXED -
KEYS(6 1) -
RECSZ(80 80) -
TRACKS(1,1) -
CISZ(4096) -
FREESPACE(3 3) ) -
DATA (NAME(MY.VSAM.KSDSFILE.DATA)) -
INDEX (NAME(MY.VSAM.KSDSFILE.INDEX)) -
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il créera le fichier MY.VSAM.KSDSFILE VSAM.
Suppression du cluster KSDS
Le cluster KSDS est supprimé à l'aide de l'utilitaire IDCAMS. La commande DELETE supprime l'entrée du cluster VSAM du catalogue et supprime éventuellement le fichier, libérant ainsi l'espace occupé par l'objet.
DELETE data-set-name CLUSTER
[ERASE / NOERASE]
[FORCE / NOFORCE]
[PURGE / NOPURGE]
[SCRATCH / NOSCRATCH]
La syntaxe ci-dessus montre les paramètres que nous pouvons utiliser lors de la suppression du cluster KSDS. La description des paramètres reste la même que celle mentionnée dans VSAM - module Cluster.
Exemple
L'exemple suivant montre comment supprimer un cluster KSDS dans JCL à l'aide de l'utilitaire IDCAMS -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.KSDSFILE CLUSTER
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il supprimera MY.VSAM.KSDSFILE VSAM Cluster.
RRDS est connu sous le nom de jeu de données d'enregistrement relatif. Le cluster RRDS est similaire à un cluster ESDS. La seule différence est que les enregistrements RRDS sont accessibles parRelative Record Number (RRN), il faut coder NUMBEREDdans la commande DEFINE CLUSTER. Voici les principales caractéristiques de RRDS -
Un jeu de données d'enregistrement relatif contient des enregistrements identifiés par le Relative Record Number (RRN), qui est le numéro de séquence par rapport au premier enregistrement.
RRDS permet l'accès aux enregistrements par numéro comme l'enregistrement 1, l'enregistrement 2, etc. Cela fournit un accès aléatoire et suppose que le programme d'application dispose d'un moyen d'obtenir les numéros d'enregistrement souhaités.
Les enregistrements d'un ensemble de données RRDS peuvent être accédés séquentiellement, dans l'ordre relatif des numéros d'enregistrement, ou directement, en fournissant le numéro d'enregistrement relatif de l'enregistrement souhaité.
Les enregistrements d'un ensemble de données RRDS sont stockés dans des intervalles de longueur fixe. Chaque enregistrement est référencé par le numéro de son emplacement, le nombre peut varier de 1 au nombre maximum d'enregistrements dans l'ensemble de données.
Les enregistrements dans un RRDS peuvent être écrits en insérant un nouvel enregistrement dans un emplacement vide.
Les enregistrements peuvent être supprimés d'un cluster RRDS, laissant ainsi un emplacement vide.
Applications qui utilisent des enregistrements de longueur fixe ou un numéro d'enregistrement avec une signification contextuelle pouvant utiliser des ensembles de données RRDS.
RRDS peut être utilisé dans COBOLprogrammes comme n'importe quel autre fichier. Nous allons spécifier le nom du fichier dans JCL et nous pouvons utiliser le fichier KSDS pour le traitement à l'intérieur du programme. Dans le programme COBOL, spécifiez l'organisation des fichiers commeRELATIVE et vous pouvez utiliser n'importe quel mode d'accès (Sequential, Random or Dynamic) avec le jeu de données RRDS.
Structure du fichier RRDS
L'espace est divisé en intervalles de longueur fixe dans la structure de fichier RRDS. Un emplacement peut être soit complètement vide, soit complètement plein. Ainsi, de nouveaux enregistrements peuvent être ajoutés à des emplacements vides et des enregistrements existants peuvent être supprimés des emplacements qui sont remplis. Nous pouvons accéder directement à n'importe quel enregistrement en donnant le numéro d'enregistrement relatif. L'exemple suivant montre la structure de base du fichier de données -
Composant de données
Numéro d'enregistrement relatif | Enregistrer le champ 1 | Enregistrer le champ 2 |
---|---|---|
1 | Didacticiel | Point |
2 | Mohtashim | M. |
3 | Nishant | Malik |
Définition du cluster RRDS
La syntaxe suivante montre les paramètres que nous pouvons utiliser lors de la création d'un cluster RRDS.
La description des paramètres reste la même que celle mentionnée dans VSAM - module 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))
Exemple
L'exemple suivant montre comment créer un cluster RRDS dans JCL à l'aide de l'utilitaire 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))
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il créera le fichier MY.VSAM.RRDSFILE VSAM.
Suppression du cluster RRDS
Le cluster RRDS est supprimé à l'aide de l'utilitaire IDCAMS. La commande DELETE supprime l'entrée du cluster VSAM du catalogue et supprime éventuellement le fichier, libérant ainsi l'espace occupé par l'objet.
DELETE data-set-name CLUSTER
[ERASE / NOERASE]
[FORCE / NOFORCE]
[PURGE / NOPURGE]
[SCRATCH / NOSCRATCH]
La syntaxe ci-dessus montre les paramètres que nous pouvons utiliser lors de la suppression du cluster RRDS. La description des paramètres reste la même que celle mentionnée dans VSAM - module Cluster.
Exemple
L'exemple suivant montre comment supprimer un cluster RRDS dans JCL à l'aide de l'utilitaire IDCAMS -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.RRDSFILE CLUSTER
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il supprimera MY.VSAM.RRDSFILE VSAM Cluster.
LDS est connu sous le nom de jeu de données linéaire. L'ensemble de données linéaire est la seule forme d'ensemble de données à flux d'octets qui est utilisé dans les fichiers de système d'exploitation traditionnels. Les ensembles de données linéaires sont rarement utilisés. Voici les principales caractéristiques de LDS -
Les ensembles de données linéaires ne contiennent pas de RDF et de CIDF car il ne contient aucune information de contrôle intégrée dans son CI.
Données accessibles sous forme de chaînes adressables par octets dans le stockage virtuel dans les ensembles de données linéaires.
Les ensembles de données linéaires ont une taille d'intervalle de contrôle de 4 Ko.
LDS est une sorte de fichier non vsam avec certaines fonctionnalités VSAM comme l'utilisation d'informations spécifiques à IDCAMS et VSAM dans le catalogue.
DB2 est actuellement le plus gros utilisateur d'ensembles de données linéaires.
IDCAMS est utilisé pour définir un LDS mais il est accessible à l'aide d'une macro Data-In-Virtual (DIV).
L'ensemble de données linéaire n'a pas de concepts d'enregistrements. Tous les octets LDS sont des octets de données.
Définition du cluster LDS
La syntaxe suivante montre les paramètres que nous pouvons utiliser lors de la création d'un cluster LDS. La description des paramètres reste la même que celle mentionnée dans VSAM - module Cluster.
DEFINE CLUSTER (NAME(lds-file-name) -
BLOCKS(number) -
VOLUMES(volume-serial) -
LINEAR -
CISZ(number) -
[READPW(password)] -
[FOR(days)|TO(date)] -
[UPDATEPW(password)] -
[REUSE / NOREUSE]) -
DATA -
(NAME(lds-file-name.data))
Exemple
L'exemple suivant montre comment créer un cluster LDS dans JCL à l'aide de l'utilitaire IDCAMS -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE CLUSTER (NAME(MY.VSAM.LDSFILE) -
LINEAR -
TRACKS(1,1) -
CISZ(4096) ) -
DATA (NAME(MY.VSAM.LDSFILE.DATA))
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il créera le fichier MY.VSAM.LDSFILE VSAM.
Suppression du cluster LDS
Le cluster LDS est supprimé à l'aide de l'utilitaire IDCAMS. La commande DELETE supprime l'entrée du cluster VSAM du catalogue et supprime éventuellement le fichier, libérant ainsi l'espace occupé par l'objet.
DELETE data-set-name CLUSTER
[ERASE / NOERASE]
[FORCE / NOFORCE]
[PURGE / NOPURGE]
[SCRATCH / NOSCRATCH]
La syntaxe ci-dessus montre les paramètres que nous pouvons utiliser lors de la suppression du cluster LDS. La description des paramètres reste la même que celle mentionnée dans VSAM - module Cluster.
Exemple
L'exemple suivant montre comment supprimer un cluster LDS dans JCL à l'aide de l'utilitaire IDCAMS -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.LDSFILE CLUSTER
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il supprimera MY.VSAM.LDSFILE VSAM Cluster.
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, 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 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 devrait s'exécuter avec MAXCC = 0 et corrigera les erreurs dans l'ensemble de données VSAM.
L'index alternatif est l'index supplémentaire créé pour les ensembles de données KSDS / ESDS en plus de leur index principal. Un autre index permet d'accéder aux enregistrements à l'aide de plusieurs clés. La clé de l'index alternatif peut être une clé non unique, elle peut avoir des doublons.
Création d'un index alternatif
Les étapes suivantes sont utilisées pour créer un index alternatif -
- Définir un autre index
- Définir le chemin
- Indice de construction
Définir un autre index
L'index alternatif est défini en utilisant DEFINE AIX commander.
DEFINE AIX -
(NAME(alternate-index-name) -
RELATE(vsam-file-name) -
CISZ(number) -
FREESPACE(CI-Percentage,CA-Percentage) -
KEYS(length offset) -
NONUNIQUEKEY / UNIQUEKEY -
UPGRADE / NOUPGRADE -
RECORDSIZE(average maximum)) -
DATA -
(NAME(vsam-file-name.data)) -
INDEX -
(NAME(vsam-file-name.index))
La syntaxe ci-dessus montre les paramètres utilisés lors de la définition de l'index alternatif. Nous avons déjà discuté de certains paramètres dans Define Cluster Module et certains des nouveaux paramètres sont utilisés pour définir un autre index dont nous discuterons ici -
Sr.Non | Paramètres avec description |
---|---|
1 | DEFINE AIX La commande Define AIX est utilisée pour définir un autre index et spécifier les attributs de paramètre pour ses composants. |
2 | NAME NAME spécifie le nom de l'index alternatif. |
3 | RELATE RELATE spécifie le nom du cluster VSAM pour lequel l'index alternatif est créé. |
4 | NONUNIQUEKEY / UNIQUEKEY UNIQUEKEY spécifie que l'index alternatif est unique et NONUNIQUEKEY spécifie que des doublons peuvent exister. |
5 | UPGRADE / NOUPGRADE UPGRADE spécifie que l'index alternatif doit être modifié si le cluster de base est modifié et NOUPGRADE spécifie que les index alternatifs doivent être laissés seuls si le cluster de base est modifié. |
Exemple
Voici un exemple de base pour montrer comment définir un autre index dans JCL -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE AIX (NAME(MY.VSAM.KSDSAIX) -
RELATE(MY.VSAM.KSDSFILE) -
CISZ(4096) -
FREESPACE(20,20) -
KEYS(20,7) -
NONUNIQUEKEY -
UPGRADE -
RECORDSIZE(80,80)) -
DATA(NAME(MY.VSAM.KSDSAIX.DATA)) -
INDEX(NAME(MY.VSAM.KSDSAIX.INDEX))
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et créer un index secondaire MY.VSAM.KSDSAIX.
Définir le chemin
Define Path est utilisé pour relier l'index alternatif au cluster de base. Lors de la définition du chemin, nous spécifions le nom du chemin et l'index alternatif auquel ce chemin est lié.
DEFINE PATH -
NAME(alternate-index-path-name) -
PATHENTRY(alternate-index-name))
La syntaxe ci-dessus a deux paramètres. NAME est utilisé pour spécifier le nom de chemin d'index alternatif et PATHENTRY est utilisé pour spécifier le nom d'index alternatif.
Exemple
Voici un exemple de base pour définir Path dans JCL -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE PATH -
NAME(MY.VSAM.KSDSAIX.PATH) -
PATHENTRY(MY.VSAM.KSDSAIX))
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il créera un chemin entre l'index alternatif et le cluster de base.
Indice de construction
La commande BLDINDEX est utilisée pour créer l'index alternatif. BLDINDEX lit tous les enregistrements de l'ensemble de données indexées VSAM (ou du cluster de base) et extrait les données nécessaires pour créer l'index alternatif.
BLDINDEX -
INDATASET(vsam-cluster-name) -
OUTDATASET(alternate-index-name))
La syntaxe ci-dessus a deux paramètres. INDATASET est utilisé pour spécifier le nom du cluster VSAM et OUTDATASET est utilisé pour spécifier un autre nom d'index.
Exemple
Voici un exemple de base pour créer un index dans JCL -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
BLDINDEX -
INDATASET(MY.VSAM.KSDSFILE) -
OUTDATASET(MY.VSAM.KSDSAIX))
/*
Si vous exécutez le JCL ci-dessus sur le serveur Mainframes. Il doit s'exécuter avec MAXCC = 0 et il construira l'index.
Le catalogue gère l'unité et le volume où réside l'ensemble de données. Le catalogue est utilisé pour la récupération des ensembles de données. Les ensembles de données non VSAM créent une entrée de catalogue au moyen du paramètre de disposition dans JCL. Les ensembles de données VSAM maintiennent leur propre catalogue sous la forme d'un cluster KSDS. Dans l'image suivante, vous pouvez voir le type de catalogues VSAM -
Catalogue principal
Le catalogue maître est lui-même un fichier qui surveille et gère les opérations de VSAM. Il n'y a qu'un seul catalogue maître dans tout système qui contient des entrées sur les ensembles de données système et les ensembles de données VSAM. Les ensembles de données VSAM et non VSAM peuvent avoir une entrée dans le catalogue principal, mais ce n'est pas une bonne pratique. Le catalogue principal est créé pendant le processus de génération du système et réside sur le volume du système. Le catalogue principal possède toutes les ressources VSAM du système d'exploitation. Tous les fichiers utilisés dans VSAM sont contrôlés par le catalogue principal. Le catalogue maître est responsable des opérations suivantes -
- Autorisation de mot de passe pour les fichiers
- Améliorer la sécurité
- Accès VSAM pour les fichiers
- Gestion de l'espace du dossier
- Emplacement du fichier
- Espace libre disponible dans le fichier
Lorsque l'un des attributs de fichier ci-dessus change, il est automatiquement mis à jour dans le catalogue principal. Le catalogue maître est défini à l'aide des programmes IDCAMS.
Catalogue des utilisateurs
Le catalogue utilisateur a la même structure et les mêmes concepts que le catalogue maître. Il est présent au niveau hiérarchique suivant après le catalogue principal. Le catalogue utilisateur n'est pas obligatoire dans le système mais il est utilisé pour améliorer la sécurité du système VSAM. Le catalogue principal pointe vers des fichiers VSAM, mais si le catalogue utilisateur est présent, le catalogue principal pointe vers le catalogue utilisateur. Les catalogues d'utilisateurs peuvent être nombreux selon les exigences du système. Dans la structure VSAM, si le catalogue principal est supprimé, cela n'affectera pas le catalogue utilisateur. Le catalogue utilisateur contient des entrées sur les ensembles de données spécifiques à l'application. Les informations du catalogue utilisateur sont stockées dans le catalogue maître.
Espace de données
L'espace de données est une zone du périphérique de stockage à accès direct qui est exclusivement allouée à l'utilisation de VSAM. L'espace de données doit être créé avant de créer des clusters VSAM. La zone occupée par l'espace de données est enregistrée dans la table des matières du volume (VTOC), de sorte que l'espace ne sera pas disponible pour une attribution à une autre utilisation, VSAM ou non VSAM. VTOC a une entrée de zone occupée par l'espace. VSAM crée un espace de données pour contenir les entrées du catalogue utilisateur. VSAM prend le contrôle de cet espace et surveille et maintient cet espace selon les besoins des fichiers VSAM.
Clusters uniques
Les clusters uniques se composent d'un espace de données séparé qui est entièrement utilisé par le cluster créé en son sein. Des clusters uniques sont créés à partir de l'espace non alloué sur le stockage à accès direct.
Clusters sous-alloués
Un fichier VSAM sous-alloué partage l'espace VSAM avec d'autres fichiers sous-alloués. Il spécifie que le fichier doit être sous-alloué dans l'espace VSAM existant. La sous-allocation est utilisée pour faciliter la gestion et le contrôle des espaces VSAM.
Ensembles de données non VSAM
Les ensembles de données non VSAM résident à la fois sur bande et sur stockage à accès direct. Les ensembles de données non VSAM peuvent avoir des entrées à la fois dans le catalogue principal et dans les catalogues d'utilisateurs. La fonction principale du catalogage des ensembles de données non VSAM est de conserver les informations de série sur les unités et les volumes.
Lorsque vous travaillez avec des ensembles de données VSAM, vous pouvez rencontrer des fins anormales. Voici les codes d'état de fichier courants avec leur description qui vous aideront à résoudre les problèmes -
Code | La description |
---|---|
00 | Opération terminée avec succès |
02 | Clé en double d'index alternatif non unique trouvée |
04 | Enregistrement de longueur fixe non valide |
05 | Lors de l'exécution d'OPEN Le fichier et le fichier ne sont pas présents |
dix | Fin de fichier rencontrée |
14 | Tentative de LIRE un enregistrement relatif en dehors des limites du fichier |
20 | Clé non valide pour VSAM KSDS ou RRDS |
21 | Erreur de séquence lors de l'exécution de WRITE ou du changement de clé sur REWRITE |
22 | Clé principale en double trouvée |
23 | Enregistrement introuvable ou fichier non trouvé |
24 | Clé en dehors de la limite du fichier |
30 | Erreur d'E / S permanente |
34 | Enregistrer en dehors des limites du fichier |
35 | Lors de l'exécution d'OPEN Le fichier et le fichier ne sont pas présents |
37 | OPEN fichier avec un mode incorrect |
38 | J'ai essayé d'ouvrir un fichier verrouillé |
39 | OPEN a échoué en raison d'attributs de fichier en conflit |
41 | J'ai essayé d'OUVRIR un fichier déjà ouvert |
42 | J'ai essayé de FERMER un fichier qui n'est pas OUVERT |
43 | J'ai essayé de RÉÉCRIRE sans lire d'abord un enregistrement |
44 | J'ai essayé de RÉÉCRIRE un enregistrement d'une longueur différente |
46 | J'ai essayé de LIRE au-delà de la fin du fichier |
47 | J'ai essayé de LIRE à partir d'un fichier qui n'a pas été ouvert IO ou INPUT |
48 | J'ai essayé d'écrire dans un fichier qui n'a pas été ouvert IO ou OUTPUT |
49 | Tentative de suppression ou de réécriture dans un fichier qui n'a pas été ouvert IO |
91 | Le mot de passe ou l'autorisation a échoué |
92 | Erreur logique |
93 | Les ressources ne sont pas disponibles |
94 | Enregistrement séquentiel indisponible ou erreur OPEN simultanée |
95 | Informations sur le fichier invalides ou incomplètes |
96 | Aucune instruction DD pour le fichier |
97 | OPEN réussi et l'intégrité du fichier vérifiée |
98 | Le fichier est verrouillé - OPEN a échoué |
99 | Enregistrement verrouillé - L'accès à l'enregistrement a échoué |