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:
UNE normal-disposition le paramètre peut prendre l'une des valeurs suivantes
UNE abnormal-disposition le paramètre peut prendre l'une des valeurs suivantes
Voici la description des paramètres CATLG, UNCATLG, DELETE, PASS et KEEP:
Lorsque l'un des sous-paramètres de DISP n'est pas spécifié, les valeurs par défaut sont les suivantes:
|
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:
|
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=*