JCL - Instruction DD

Les ensembles de données sont des fichiers mainframe avec des enregistrements organisés dans un format spécifique. Les ensembles de données sont stockés sur le périphérique de stockage à accès direct (DASD) ou sur les bandes du mainframe et sont des zones de stockage de données de base. Si ces données doivent être utilisées / créées dans un programme de traitement par lots, le nom physique du fichier (c'est-à-dire l'ensemble de données) ainsi que le format et l'organisation du fichier sont codés dans un JCL.

La définition de chaque ensemble de données utilisé dans le JCL est donnée à l'aide du DD statement. Les ressources d'entrée et de sortie requises par une étape de travail doivent être décrites dans une déclaration DD avec des informations telles que l'organisation de l'ensemble de données, les exigences de stockage et la longueur de l'enregistrement.

Syntaxe

Voici la syntaxe de base d'une instruction JCL DD:

//DD-name DD Parameters

La description

Voyons la description des termes utilisés dans la syntaxe des instructions DD ci-dessus.

DD-NAME

Un DD-NAME identifie l'ensemble de données ou la ressource d'entrée / sortie. S'il s'agit d'un fichier d'entrée / sortie utilisé par un programme COBOL / Assembler, le fichier est référencé par ce nom dans le programme.

DD

Il s'agit du mot-clé pour l'identifier en tant qu'instruction DD.

PARAMÈTRES

Voici les différents paramètres de l'instruction DD. Vous pouvez utiliser un ou plusieurs paramètres en fonction des exigences et ils sont séparés par une virgule:

Paramètre La description
DSN

Le paramètre DSN fait référence au nom de l'ensemble de données physique d'un ensemble de données nouvellement créé ou existant. La valeur DSN peut être constituée de sous-noms de 1 à 8 caractères chacun, séparés par des points et d'une longueur totale de 44 caractères (alphanumériques). Voici la syntaxe:

DSN=Physical Dataset Name

Temporary datasetsont besoin de stockage uniquement pour la durée du travail et sont supprimés à la fin du travail. Ces ensembles de données sont représentés commeDSN=&name ou simplement sans DSN spécifié.

Si un ensemble de données temporaire créé par une étape de tâche doit être utilisé dans l'étape de tâche suivante, il est référencé comme DSN=*.stepname.ddname. C'est appelé Backward Referencing.

DISP

Le paramètre DISP est utilisé pour décrire l'état de l'ensemble de données, la disposition à la fin de l'étape de travail en cas d'achèvement normal et anormal. DISP n'est pas requis dans une instruction DD uniquement lorsque l'ensemble de données est créé et supprimé dans la même étape de travail (comme les ensembles de données temporaires). Voici la syntaxe:

DISP=(status, normal-disposition, abnormal-disposition)

Voici les valeurs valides pour status:

  • NEW: Le jeu de données est nouvellement créé par l'étape de travail. OUTPUT1 dans l'exemple ci-dessus.

  • OLD: Le jeu de données est déjà créé et sera écrasé à l'étape de la tâche. L'étape de tâche obtient un accès exclusif sur l'ensemble de données et aucune autre tâche ne peut accéder à cet ensemble de données jusqu'à la fin de l'étape de tâche.

  • SHR: L'ensemble de données est déjà créé et sera lu dans l'étape de travail. L'ensemble de données peut être lu par plusieurs travaux en même temps. Exemple: INPUT1 et INPUT2.

  • MOD: L'ensemble de données est déjà créé. Cette disposition sera utilisée lorsqu'il est nécessaire d'ajouter de nouveaux enregistrements à l'ensemble de données existant (les enregistrements existants ne seront pas écrasés).

UNE normal-disposition le paramètre peut prendre l'une des valeurs suivantes

  • CATLG, UNCATLG, DELETE, PASS et KEEP

UNE abnormal-disposition le paramètre peut prendre l'une des valeurs suivantes

  • CATLG, UNCATLG, DELETE et KEEP

Voici la description des paramètres CATLG, UNCATLG, DELETE, PASS et KEEP:

  • CATLG : Le jeu de données est conservé avec une entrée dans le catalogue système.

  • UNCATLG : L'ensemble de données est conservé mais l'entrée du catalogue système est supprimée.

  • KEEP: L'ensemble de données est conservé sans modifier aucune des entrées du catalogue. KEEP est la seule disposition valide pour les fichiers VSAM. Ceci doit être utilisé uniquement pour les ensembles de données permanents.

  • DELETE : Le jeu de données est supprimé du catalogue utilisateur et système.

  • PASS: Ceci n'est valable que pour une disposition normale. Ceci est utilisé lorsque l'ensemble de données doit être transmis et traité par l'étape de travail suivante dans un JCL

Lorsque l'un des sous-paramètres de DISP n'est pas spécifié, les valeurs par défaut sont les suivantes:

  • status : NEW est la valeur par défaut.

  • normal-disposition : Si le statut est NOUVEAU, la disposition normale par défaut est DELETE, sinon c'est KEEP.

  • abnormal-disposition : Identique à la disposition normale.

DCB

Le paramètre DCB (Data Control Block) détaille les caractéristiques physiques d'un jeu de données. Ce paramètre est obligatoire pour les ensembles de données nouvellement créés à l'étape de travail.

LRECL est la longueur de chaque enregistrement contenu dans l'ensemble de données.

RECFM est le format d'enregistrement de l'ensemble de données. RECFM peut contenir des valeurs FB, V ou VB. FB est une organisation de bloc fixe où un ou plusieurs enregistrements logiques sont regroupés dans un seul bloc. V est une organisation variable dans laquelle un enregistrement logique de longueur variable est placé dans un bloc physique. VB est une organisation à blocs variables dans laquelle un ou plusieurs enregistrements logiques de longueur variable sont placés dans un bloc physique.

BLKSIZE est la taille du bloc physique. Plus le bloc est grand, plus le nombre d'enregistrements pour un fichier FB ou VB est grand.

DSORG est le type d'organisation de l'ensemble de données. DSORG peut contenir les valeurs PS (Physical Sequential), PO (Partitioned Organization) et DA (Direct Organization).

Lorsqu'il est nécessaire de répliquer les valeurs DCB d'un ensemble de données vers un autre dans le même pas de travail ou JCL, il est spécifié comme DCB = *. Stepname.ddname où stepname est le nom de l'étape de travail et ddname est l'ensemble de données à partir duquel le DCB est copié.

Vérifiez l'exemple ci-dessous où RECFM = FB, LRECL = 80 forme le DCB de l'ensemble de données OUTPUT1.

SPACE

Le paramètre SPACE spécifie l'espace requis pour l'ensemble de données dans le DASD (Direct Access Storage Disk). Voici la syntaxe:

SPACE=(spcunits, (pri, sec, dir), RLSE)

Voici la description de tous les paramètres utilisés:

  • spcunits : Il peut s'agir de l'un des CYL (cylindre), TRK (pistes) ou BLKSIZE (taille de bloc).

  • pri : Il s'agit de l'espace principal requis pour l'ensemble de données.

  • sec : Il s'agit de l'espace supplémentaire requis, lorsque l'espace principal n'est pas suffisant.

  • ir : Il s'agit des blocs de répertoire requis, si l'ensemble de données est un PDS (ensemble de données partitionné) avec des membres à l'intérieur.

  • RLSE : Ceci est utilisé pour libérer l'espace inutilisé à la fin du travail.

UNIT

Les paramètres UNIT et VOL sont répertoriés dans le catalogue système pour les ensembles de données catalogués et sont donc accessibles uniquement avec le nom DSN physique. Mais pour les ensembles de données non catalogués, l'instruction DD doit inclure ces paramètres. Pour créer de nouveaux ensembles de données, les paramètres UNIT / VOL peuvent être spécifiés ou le Z / OS alloue le périphérique et le volume appropriés.

Le paramètre UNIT spécifie le type de périphérique sur lequel l'ensemble de données est stocké. Le type de périphérique peut être identifié à l'aide du groupe Adresse matérielle ou Type de périphérique. Voici la syntaxe:

UNIT=DASD | SYSDA

Où DASD signifie Direct Access Storage Device et SYSDA signifie System Direct Access et fait référence au prochain périphérique de stockage sur disque disponible.

VOL

Le paramètre VOL spécifie le numéro de volume sur l'appareil identifié par le paramètre UNIT. Voici la syntaxe:

VOL=SER=(v1,v2)

Où v1, v2 sont des numéros de série de volume. Vous pouvez également utiliser la syntaxe suivante:

VOL=REF=*.DDNAME

Où REF est la référence en arrière au numéro de série du volume d'un ensemble de données dans l'une des étapes de travail précédentes dans le JCL.

SYSOUT

Les paramètres de l'instruction DD discutés jusqu'à présent correspondent aux données stockées dans un ensemble de données. Le paramètre SYSOUT dirige les données vers le périphérique de sortie en fonction de la classe spécifiée. Voici la syntaxe

SYSOUT=class

Où si la classe est A alors il dirige la sortie vers l'imprimante, et si la classe est * puis il dirige la sortie vers la même destination que celle du paramètre MSGCLASS dans l'instruction JOB.

Exemple

Voici un exemple qui utilise des instructions DD ainsi que divers paramètres expliqués ci-dessus:

//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
//         NOTIFY=&SYSUID
//*
//STEP010  EXEC PGM=ICETOOL,ADDRSPC=REAL
//*
//INPUT1   DD DSN=TUTO.SORT.INPUT1,DISP=SHR
//INPUT2   DD DSN=TUTO.SORT.INPUT2,DISP=SHR,UNIT=SYSDA,
//         VOL=SER=(1243,1244)
//OUTPUT1  DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
//         RECFM=FB,LRECL=80,SPACE=(CYL,(10,20))
//OUTPUT2  DD SYSOUT=*