Archives par mot-clé : DD

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 de l’ordinateur central et sont des zones de stockage de données de base.
Si ces données doivent être utilisées/créées dans un programme batch, 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 jeu de données utilisé dans le JCL est donnée à l’aide de l’instruction DD.
Les ressources d’entrée et de sortie requises par une étape de job doivent être décrites dans une instruction 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 :

//DDNAME DD Parametres

Description

Voyons la description des termes utilisés dans la syntaxe de l’instruction DD ci-dessus.

DDNAME

Un DDNAME 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 besoins et ils sont séparés par une virgule :

ParamètreDescription
DSNLe paramètre DSN fait référence au nom du jeu de données physique d’un jeu de données nouvellement créé ou existant.
La valeur DSN peut être composé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=Nom de l’ensemble de données physiques

Les ensembles de données temporaires n’ont besoin d’être stockés que pendant la durée de la tâche et sont supprimés à la fin de la tâche.
Ces ensembles de données sont représentés sous la forme DSN=&name ou simplement sans DSN spécifié.

Si un jeu de données temporaire créé par une étape de job doit être utilisé dans l’étape de job suivante, il est alors référencé sous la forme DSN=*.nomstep.ddname.
C’est ce qu’on appelle le référencement arrière.
DISPLe 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 job (comme les ensembles de données temporaires).

Voici la syntaxe :
DISP=(statut, disposition normale, disposition anormale)

Voici les valeurs valides pour le statut :
NEW : l’ensemble de données est nouvellement créé par l’étape de travail. 
OLD : l’ensemble de données est déjà créé et sera écrasé dans l’étape de travail.
L’étape de job obtient un accès exclusif à l’ensemble de données et aucune autre tâche ne peut accéder à cet ensemble de données tant que l’étape de job n’est pas terminée.
SHR : Le jeu de données est déjà créé et sera lu dans l’étape du travail.
Le jeu de données peut être lu par plusieurs jobs en même temps. 
Exemple: INPUT1 et INPUT2.
MOD : Le jeu de données est déjà créé.
Cette disposition sera utilisée lorsqu’il sera nécessaire d’ajouter de nouveaux enregistrements à l’ensemble de données existant (les enregistrements existants ne seront pas écrasés).

Un paramètre de disposition normale peut prendre l’une des valeurs suivantes :
CATLG, UNCATLG, DELETE, PASS et KEEP

Un paramètre de disposition anormale 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 : Le jeu de données est conservé sans modifier aucune des entrées du catalogue.
KEEP est la seule disposition valide pour les fichiers VSAM. Ceci ne doit être utilisé que pour les ensembles de données permanents.
DELETE : l’ensemble 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 job 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 NEW, la disposition-normale par défaut est DELETE, sinon c’est KEEP.
abnormal-disposition : Identique à la disposition normale.
DCBLe paramètre Data Control Block (DCB) détaille les caractéristiques physiques d’un jeu de données. Ce paramètre est requis pour les ensembles de données nouvellement créés dans l’étape de job.

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 les 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 de 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 des ensembles de données. DSORG peut contenir les valeurs PS (Physical Sequential), PO (Partitioned Organisation) et DA (Direct Organisation).

Lorsqu’il est nécessaire de répliquer les valeurs DCB d’un jeu de données vers un autre dans la même étape de travail ou JCL, il est spécifié comme
DCB=*.nomstep.ddname où nomstep est le nom du step de job et ddname est le jeu de données à partir duquel le DCB est copié.

Vérifiez l’exemple ci-dessous où RECFM = FB, LRECL = 80 forme le DCB du jeu de données OUTPUT1.
SPACELe paramètre SPACE spécifie l’espace requis pour le jeu 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 : Cela peut être l’un des CYL(Cylinder), TRK(Tracks) ou BLKSIZE(Block Size).
– pri : Il s’agit de l’espace principal requis pour le jeu de données.
– sec : C’est l’espace supplémentaire requis, lorsque l’espace primaire n’est pas suffisant.
– ir : Il s’agit des blocs de répertoire requis, si le jeu de données est un PDS (Partitioned Dataset) avec des membres à l’intérieur.
– RLSE : Ceci est utilisé pour libérer l’espace inutilisé à la fin du travail.
UNITLes 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 de nouveaux ensembles de données à créer, les paramètres UNIT/VOL peuvent être spécifiés ou le Z/OS alloue l’appareil et le volume appropriés.

Le paramètre UNIT spécifie le type d’appareil sur lequel l’ensemble de données est stocké.
Le type d’appareil peut être identifié à l’aide de l’adresse matérielle ou du groupe de types d’appareils. 

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.
VOLLe 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 amont au numéro de série de volume d’un ensemble de données dans l’une des étapes de job précédentes dans le JCL.
SYSOUTLes paramètres d’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 * alors 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 avec divers paramètres expliqués ci-dessus :


//LCDCOBOL JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
//         NOTIFY=&SYSUID
//*
//STEP001  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=*

5. ORDRE DD OU CARTE DD

Une carte DD ou un ordre DD est une instruction utilisée pour définir les entrées et sorties de données dans un job ou une tâche.

DD signifie “Data Definition” et chaque carte DD définit un nom symbolique (ou DDNAME) pour représenter un fichier ou un périphérique d’entrée/sortie associé à des attributs tels que le nom de fichier physique, le type de périphérique, le mode d’accès et la disposition du fichier.

Les cartes DD sont utilisées pour spécifier les entrées et sorties de données pour les programmes COBOL, les utilitaires système et les commandes de traitement de données dans un job JCL. Les cartes DD peuvent être définies dans les instructions JOB, EXEC ou DD du JCL en fonction de leur portée d’utilisation.

5.1. Généralité

Elle permet de définir pour une étape les fichiers suivants :
• Fichiers carte de données.
• Fichiers magnétiques non VSAM.
• Fichiers VSAM si il est CR22s par IDCAMS.
• Fichiers SYSOUTS
Elle assure la liaison entre le programme et le fichier physique.
Il faut une carte DD par fichier physique.
Un programme connaît les fichiers au travers de leur caractéristique logiques :
• Organisation du fichier
• Structure des enregistrements.
Par contre, il ignore leur caractéristique physique :
• Nature du support (disque, bande,etc…)
• Emplacement sur support
• Nom physique du fichier sur le support.
Ces détails son spécifiés dans le JCL au niveau de la DD.
La liaison entre le fichier logique défini dans le programme et le fichier physique défini dans la carte DD est faite par une Etiquette logique conservée dans le bloc de contrôle et qui doit obligatoirement figurer dans la zone nom de la carte DD.
L’étiquette est appelée Nom externe ou DDNAME du fichier. Il ce compose de 8 caractères maximum avec un caractère alphabétique dans le premier caractère.

5.2. Fichier Carte

//DDNAME DD DUMMY
            *
            DATA
            ,DLM=nn

Description des paramètres

* : permet d’introduire des données cartes sans les caractères // en colonnes 1 et 2
DATA : permet d’introduire des données cartes comportant // en colonnes 1 et 2(mais pas /). La fin de fichier doit alors être annoncée par le délimiteur standard /.
DUMMY : Permet d’ignorer les ordres d’entrées / sorties faits sur le fichier. Doit être donné le premier.

Exemple :

//FICMVT DD *
A1230
/*
Carte de mouvements


//SYSIN DD DATA
Procédure à cataloguer
/*


//FICBLAS DD DATA,DLM=ZZ
Données contenant /*
/*
ZZ

5.3. Définition des fichiers magnétique non VSAM

5.3.1 Format

//DDNAME DD DUMMY
                        ,DSNAME= ou DSN=
                        ,DISP=
                        ,UNIT=
                        ,VOL=
                        ,SPACE=
                        ,DCB=
                        ,LABEL=

5.3.2. Paramètre

5.3.2.1. DUMMY

Ce paramètre est positionnel de la carte DD. Quand il est codé il doit être le premier. Il demande au système d’ignorer tous les ordres d’entré/sortie faites sur ce fichier.
Il n’a pas de sous paramètres.

5.3.2.2. DSNAME=

C’est le nom physique du fichier. Pour un fichier en création le système stock ce nom dans les labels du fichier. Pour un fichier en lecture utilise ce nom pour localiser le fichier dans le volume.

DSNAME= {nom-fichier}
                {nom-pds(membre)}
                {nom-fichier(numérode génération)}
                {&&nom-fichier}
                {&&nom-pds(membre)}
                {.DDNAME} 
                {.nom-STEP.DDNAME}
                {*.nom-step.nom-step-proc.DDNAME}
  • Nom-fichier : ici le nom est fourni qu’il soit sequentiel ou partitionné.
  • Nom-pds(membre) : membre de fichier partitionné. On fournit le nom du PDS suivi, Entre parenthèses, du nom du membre à traité.
  • Nom-fichier (num de génération) : nom d’un fichier GDG suivi, entre parenthèse par le numéro de génération dans le GDG.
  • &&nom-fichier : nom temporaire, séquentiel ou partitionné. Le système génère dans ce cas un nom sous la forme :
    SYSaajjj.Thhmmss.RA000.nom-job.nom-fichier
    Aajjj : date de création en année nombre de jour.
    Hhmmss : heure de création
    Nom-job : Nom du job figurant dans la zone “nom” de la carte JOB
    Nom-fichier : nom donné au fichier derrière les caractères “&&”
    Si on ommet le paramètre DSNAME, le système génére alors un nom sous la forme :
    SYSaajjj.Thhmmss.RA000.nom-job.Rnnnnnnn
    Dans le quel ‘nnnnnnn’ représente le numéro d’ordre de création du fichier dans le JOB.
  • &&nom-pds(membre) : nom d’un membre de fichier partitionné temporaire.
  • *,DDNAME : référence arrière à un nom de fichier contenu dans une carte DD faisant partie du même STEP.
  • *.nom-step.DDNAME : référence arrière a un nom de fichier contenu dans une carte DD faisant partie d’un STEP antérieur dans le même JOB.
  • *.nom-step.nom-step-proc.DDNAME : référence arrière à un nom de fichier contenu dans une carte DD faisant partie d’une étape de procédure cataloguée appelée par une étape antérieur du JOB.

Exemple :
1 – définition d’une génération GDG.

//DDX DD DSN=RESERV.GDG(0).
2- Définition de membre de PDS.
//DDX DD DSN=BIBLIO1.UTIL.FIC(PARAM)
3- Définition de fichier temporaire.
//DDX DD DSN=&&TEMP1
4- définition d’un fichier non temporaire.
//DDX DD DSN=BIBLIO.PGM1.FICSTOK, …

5.3.2.3. DISP :

Disposition“, il permet d’indiqué au système l’état du fichier à traiter, ce qu’il faut faire du fichier à la fin de l’étape, si elle ce passe bien ou lors d’une fin anormale(c.à.d. fin provoqué par le système).

Les sous paramètre du DISP sont positionnels.

DISP= (NEW,DELETE,DELETE)
      (OLD,KEEP,KEEP)
      (SHR,PASS,CATLG)
      (MOD,CATLG,UNCATLG)
                        ,UNCATLG

Sous paramètre-1- : indiquera l’état du fichier.
Sous paramètre -2- : indiquera ce qu’il faut faire du fichier en cas de fin normale de l’étape.
Sous paramètre -3- : ce qu’il faut faire du fichier en cas de fin anormale de l’étape.(ABEND).

ETAT DU FICHIER
NEW : Le fichier est créé par l’étape en cours. Il est à usage exclusif du JOB pendant toute la durée du JOB.
OLD : il existait avant l’étape en cours. Il est à usage exclusif du JOB pendant toute la durée du JOB.
SHR : il existe avant l’étape en cours. Il est partageable entre tous les JOBs actifs.
MOD : il existe avant l’étape et est en cours de l’exécution. Il est a l’usage exclusif a l’usage du JOB. Il permet de ce positionné au dernier enregistrement du fichier pour écrire des nouveaux enregistrements. Si le système ne trouve nulle part d’informations concernant le volume qui contient le fichier, il considère celui-ci comme NEW.

DISPOSITION EN CAS DE FIN NORMALE
DELETE
: le fichier devra être supprimé. La suppression d’un fichier catalogué entraîne celle de son entrée au catalogue à condition que le système ne trouve les informations d’unité et de volume que dans le catalogue. DELETE et PASS sont les seules dispositions valides pour un
fichier temporaire (DSN omis ou DSN=&&TEMP).
KEEP : il est conservé sans le cataloguer. Pour un fichier bande le volume est déchargé.
CATLG : il est conservé et catalogué. Pour toute utilisation ultérieure, il suffit de fournir son nom et sa disposition dans la carte DD.
UNCATLG : il doit être catalogué mais non conservé.
PASS : Il passe à une étape ultérieure du même JOB. Il passe d’une étape à une autre s’il y a besoin.
Un volume à bande n’est pas rembobiné sauf si le programmeur en décide autrement au CLOSE du fichier. Pour le conserver il suffit de coder une disposition KEEP ou CATLG a sa dernière utilisation.

Exemple :

//PASS        JOB
//ET1          EXEC PGM=PGM1
//DDNAME1  DD   DSN=FIC001,DISP=(NEW,PASS),UNIT=SYSDA 

//ET2          EXEC PGM=PGM2  

//ET3          EXEC PGM=PGM3
//DDNAME3  DD DSN=FIC001,DISP=(OLD,PASS),UNIT=SYSDA 

//ET4          EXEC PGM=PGM4
//DDNAME3  DD DSN=FIC001,DISP=(OLD,CATLG),UNIT=SYSDA  

DISPOSITION A PRENDRE EN CAS DE FIN ANORMALE
A l’exception de PASS, toutes les dispositions précédentes peuvent être données pour une fin anormale d’étape.

OPTIONS PRISES PAR DEFAUT
1ère position :       NEW.
2ème position :     DELETE si le fichier est NEW.
                                     KEEP, si le fichier existe déjà (OLD ou SHR).
3ème position :     Par défaut en cas de fin anormale, le système applique la disposition demandée pour la fin normale.

Exemple :
1- DDNAME1 DD DSN=FIC1,DISP=(NEW,CATLG,DELETE)
Fichier en création, catalogage en fin normale, suppression en cas de fin anormal
2- DDNAME1 DD DSN=FIC1,DISP=(OLD,DELETE,KEEP)
Fichier existent, suppression lors d’une fin normale, conservation lors d’une fin anormale
3- DDNAME1 DD DSN=FIC1, pas de disposition
Fichier en création, suppression en cas de fin normale ou anormale.
4- DDNAME1 DD DSN=FIC1,DISP=(OLD,,DELETE)
Fichier existent, conservation en cas de fin normale, suppression en cas de fin anormale.

UNIT : Ce paramètre défini l’unité physique contenant ou devant contenir le fichier obligatoire lors de la création d’un fichier
UNIT = adresse-unité, nbre-unités, DEFER, AFF=DDNAME
       Type-unité,    P
       Nom-groupe

Les trois sous-paramètres sont positionnels.

  • Adresse-unité : elle permet de donné une adresse précise pour l’allocation physique du fichier, elle est a proscrire d’une manière générale
  • nbre-unité : indique au système le nombre d’unités à réserver pour un fichier multi volumes. Par défaut le système réserve une unité.
  • DEFFER : permet un montage différé du volume. Elle sera faite qu’au moment de l’OPEN du fichier si OPEN il y a.
  • UNIT=AFF= : indique au système le fichier défini doit être implanté sur la même unité qu’un fichier déjà défini dans l’étape.
  • Type-unité : on donne ici un type d’unité du système (3480,3350,3380,3420, etc..)
  • P(parallèle) : précise au système au tous les volumes d’un fichier multi-volume doivent être en ligne au moment du traitement. La routine d’allocation de l’INITIATOR réservera autant d’unités que nécessaire, le nombre de volume souhaité lui étant alors fourni dans le paramètre volume.
  • Nom-groupe : identifie le groupe d’unité pour l’implantation du fichier. Ils sont défini a la génération du système.

Exemple :

1- //DDNAME1 DD DSN=I000001.FICHIER1,DISP=(NEW,CATLG),
               UNIT=SYSDA, …

Le fichier sera dans le groupe SYSDA, a n’importe quelle unité.
2- //DDNAME1 DD DSN=I000001.FICHIER1,DISP=(NEW,KEEP),
               UNIT=3380, …

Le fichier sera dans n’importe quelle unité 3380.
3- //DDNAME1 DD DSN=I000001.FICHIER1,DISP=(NEW,CATLG),
               UNIT=(TAPE,P), …
               VOL=SER=(VOL001,VOL002)

Le fichier multi volume. Le volume VOL001 et VOL002 doivent être montés en parallèle pour le traitement.
4- //DDNAME1 DD DSN=I000001.FICHIER1,DISP=(NEW,CATLG),
               UNIT=(TAPE,,DEFER), …

Le fichier ne sera monté qu’à l’OPEN du fichier.

VOLUME : permet de définir le volume qui contient ou qui contiendra le fichier. Il est obligatoire pour créer un fichier sur un volume spécifique, reprendre un fichier non cataloguer ou non passé.
VOLume= PRIVATE, RETAIN, sqvol, nbvol, SER=numvol
                                   REF=*.ddname
                                   REF=*.stp.ddname
                                   REF=*.stp.stprc.ddname
                                   REF=dsname

Les quatre sous-paramètres sont positionnels.
Un volume peut faire l’objet d’une demande :

  • SPECIFIQUE : l’utilisateur impose un volume précis qui contient le fichier.
  • Non SPECIFIQUE : L’emplacement du fichier est laissé au choix du système qui cherchera la place dans un volume public.
  • RETAIN : permet la conservation de l’unité supportant le volume à utiliser.
  • Sqvol(séquence volume) : pour un fichier multi volumes permet l’indication du volume à utiliser.
  • Nbvol(nombre de volume) : indique le nombre de volume à traiter(fichier multi volumes). Par défaut, le système assume le traitement de 5 volumes au maximum. Au delà, il faut coder le nombre (pour un max de 255) de volumes nécessaires.
  • SER= (serial) : ce sous paramètre fait une demande spécifique de volume, un ou plusieurs peuvent être codé.
  • REF=dsname : le fichier sera sur le même volume qu’un fichier existant ou catalogue.
  • REF=.ddname : le fichier sera dans le même volume qu’un fichier de l’étape.
  • EF=.step1.ddname : le fichier sera dans le même volume qu’un fichier du step1
  • REF=*.step.procstep.ddname : le fichier sera dans le même volume que le fichier décrit dans le step de la procédure du JOB.

Exemple :
1- //STEP1   EXEC PGM=PGM1
   //FICSOR  DD   DSN=I000001.FICSOR,DISP=(NEW,KEEP),
   //             UNIT=TAPE,VOL=(,RETAIN)
   //STEP2   EXEC PGM=PGM2
   //FICENTR DD   DSN=I000001.FICSOR,DISP=(OLD,CATLG),
   //             UNIT=TAPE,VOL=REF=*.S1.FICSOR
2- //DDENTR  DD   DSN=I000001.FIC1,DISP=SHR,UNIT=3380,
   //             VOL=SER=VOL001
3- //DDOUT   DD   DSN=I0000001.fic2,DISP=(NEW,CTALG),
   //             UNIT=TAPE,
   //        VOL=(,,,6,SER=(BDE001,BDE002,BDE003,BDE004))

SPACE : indique au système quelle espace disque sera réserver pour ce fichier en création.
Deux type de déclaration : spécifier et non spécifier. Ces deux type correspond a des format différente, l’ensemble de ces sous paramètre sont positionnels.

Demande non spécifique :
SPACE=(type-alloc,(allocp,allocs,dir),(RLSE,CONTIG,ROUND))

  • Type-alloc : indique l’unité d’allocation de l’éspaces.
    TRK : pistes
    CYL : cylindres
    nnn : longueur moyenne, en octets, du bloc unitaire. Le nombre maximum étant donnée dans le programme.
  • Allocp : donne l’allocation primaire. Le système essais toujours de satisfaire l’allocation primaires. Il doit y avoir suffisamment de place pour l’allocation primaire sinon il y a arrêt du traitement.
  • Allocs : donne la taille des allocations secondaires.
  • dir : pour les fichier partitionnés. Donne le nombre de blocs de directory à réserver en début d’allocation primaire.
  • RLSE : libération de l’espace disque non utilisé par le fichier au moment de sa fermeture.
  • CONTIG : demande que l’allocation de l’espace soit faites de façon contiguë.
  • ROUND : force l’alignement des allocations demandées en blocs d’une certaine taille frontière du cylindre.
    Demande spécifique :
    Elle impose un emplacement spécifique pour le fichier. Elle en nombre de pistes et fournit l’adresse relative de la première piste du domaine défini.
    SPACE=(ABSTR,(taille,piste-départ,(directory)))

Exemple :
//FICSOR DD DSN=A0001.FIC1,DISP=(NEW,CATLG),
//          UNIT=SYSDA,SPACE=(CYL,30,RLSE)

Allocation primaire de 30 cylindres, pas d’allocations secondaires, libération de la place non utilisée au close.

//FICSOR DD DSN=A0001.FIC1,DISP=(NEW,CATLG),
//          UNIT=3380,VOL=SER=VOL001,SPACE=(TRK,(10,5))

Allocation de 10 piste primaires et 5 secondaires.

//FICSOR DD DSN=A0001.FIC1.PDS,DISP=(NEW,CATLG),
//          UNIT=3380,VOL=SER=VOL002,SPACE=(CYL,(5,,20))

Allocation d’un PDS, 5cylindre en primaire, pas d’allocation secondaire,et 20 blocs directory.

//FICSOR DD DSN=A0001.FIC1.PDS,DISP=(NEW,CATLG),
//          UNIT=3380,VOL=SER=VOL002,
//          SPACE=(3120,(100,50))

Allocation primaire de 100 blocs de 3120 octets
Allocations secondaires de 50 blocs de 3120 octets

DCB : il permet de fournir les caractéristique physique d’un fichier non VSAM.

La forme la plus souvent représenté est la suivante :
DCB = (dsname,LRECL=,BLKSIZE=,RECFM=,DSORG=,DEN=)
       *.ddname
       *.step.ddname

  • RECFM= : indique le format des enregistrements :
             F => Fixe
             FB => Fixe bloqué
             V => Variable
             VB => Variable bloqué.
             U => indefini
    Pour les fichiers d’impression, la lettre A peut suivre les différents codes pour indiquer que le premier caractère est un caractère de contrôle de saut.
  • LRECL= : donne la taille des enregistrements logiques :
             Format F ou FB : longueur commune a tous les enregistrements.
             Format V ou VB : longueur maximum des enregistrements incluant les 4 octets de contrôle.
             Format U : ce sous paramètre est inutile.
  • BLKSIZE= : permet de donné la taille des enregistrement physique (blocs). Il est obligatoire pour un fichier en création.
             Taille max autorisée :32760 octets.
             Format F ou FB : doit etre un multiple de LRECL.
             Format V ou VB : doit être au minimum égal à LRECL + 4
             Format U : est libre dans les limite 16-32760.
  • DSORG = : donne l’organisation du fichier :
             PS => séquentielle
             DA => à accès direct
             IS => séquentielle indéxée (ISAM).
             PO => partitionnée.
  • DEN= : donne la densité d’enregistrement dans les bandes magnétiques.
             2 => 800 BPI
             3 => 1600 BPI
             4 => 6250 BPI
  • Dsname : permet de référence les caractéristique physique du fichier catalogué.
  • *.ddname : fait référence aux caractéristiques physique d’un fichier défini antérieurement dans le STEP.
  • *.STEPNAME.ddname : fait référence aux caractéristiques physique d’un fichier défini antérieurement dans le STEP antérieur.

Exemple:
//DDNAME DD DSN=A0001.Fic1,DISP=(NEW,CATLG),UNIT=SYSDA,
//          SPACE=(TRK,10),DCB=BLKSIZE=3120
//DDNAME DD DSN=A0001.Fic1,DISP=(NEW,CATLG),UNIT=SYSDA,
//          SPACE=(TRK,10),DCB=(BLKSIZE=8000,DEN=3)

LABEL : définie essentiellement :
      La position d’un fichier dans une bande.
      Le type de labels utilisés pour un fichier bande.
      L’existence d’une protection par mot de passe.
      La date d’expiration du fichier.

LABEL=(rang,type,protection,protection, EXPDT=date)
                                        RETPD=nnn


Rang : indique la position du fichier sur bande (défaut=1).peut être omis pour reprendre un fichier catalogué ou passé ainsi qu’un GDG.
Type : indique le type de label à traiter.
        SL : Standard IBM (par défaut)
        SUL : Standard IBM et Utilisateur.
        NSL : non standard
        NL : pas de labels
        BLP : pas de traitement de labels )
Protection (plus utilisé) : ce sous paramètre permet d’indiquer une protection par mot de passe.
EXPDT= : donne une date de rétention à un fichier sous format
        Année/Quantième(AAQQQ ou AAAA/QQQ)
RETPD= : donne uns période de rétention du fichier sous forme de nombre de jours pendant les quels il sera conservé.

Exemple :
//DDNAME1 DD DSN=A00001.FICSOR,DISP=(NEW,CATLG),
//           UNIT=TAPE,
//           DCB=BLKSIZE=800,LABEL=(3,SL)

//DDNAME1 DD DSN=A00001.FICSOR,DISP=(NEW,CATLG),
//           UNIT=SYSDA,DCB=BLKSIZE=3120,
//           SPACE=(CYL,10),LABEL=EXPDT=90260

//DDNAME1 DD DSN=A00001.FICSOR,DISP=(NEW,CATLG),
//           UNIT=SYSDA,DCB=BLKSIZE=3120,
//           SPACE=(CYL,10),LABEL=EXPDT=1990/260

//DDNAME1 DD DSN=A00001.FICSOR,DISP=(NEW,CATLG),
//           UNIT=SYSDA,DCB=BLKSIZE=3120,
//           SPACE=(CYL,10),LABEL=RETPD=60

5.4. Définition des fichiers VSAM.

//DDNAME DD DUMMY
            ,DSNAME=
            ,DISP=
            ,AMP=

Les paramètres DUMMY et DSNAME sont les même que ceux vus pour les fichiers non VSAM.
Le paramètre DISP ne peut prendre que les valeurs OLD et SHR. Les autres sont ignorées.
AMP : Ce paramètre permet de compléter les informations sur les paramètres du fichier VSAM

AMP=('AMORG,BUFND=n,BUFINI=n,BUFSP=n')

Si l’on code plusieurs paramètres dans AMP, ceux-ci doivent être entre cote:

  • AMORG : indique au système que la carte DD définit un fichier VSAM.
  • BUFND= : permet de donner le nombre de si DATA à stocker dans les
    buffers.
  • BUFNI= : donne le nombre de CI INDEX à stocker dans les buffers.
  • BUFSP= : il permet de modifier la taille des buffers ‘E/S pour le transfert des DATA et des INDEX.
    La valeur indiquée doit être supérieure à celle donnée dans le paramètre
    BUFSP à la définition du CLUSTER.

5.5. Définir des fichiers SYSOUT

//DDNAME1 DD DUMMY
            ,SYSOUT=
            ,COPIES=
            ,FCB=
            ,UCS=
            ,HOLD=
            ,FREE=
            ,OUTLIM=
            ,DEST=
            ,OUTPUT=
            ,BURST=
            ,CHARS=
            ,FLASH=

SYSOUT : permet d’affecter à un fichier SYSOUT les caractéristiques suivantes :
– Classe de sortie.
– Writer devant prendre l’édition en charge.
– Format de papier ou code carte JES2 ou OUTPUT.

SYSOUT=(classe/*/(,),Writer/INTRDR,Format/code)

  • Classe : classe de sortie à utiliser pour le stockage de sysout.
  • * : La classe de sortie doit être la même que celle donnée dans le paramètre MSGCLASS de la carte JOB.
  • (,) : Classe nulle. Utilise une classe définie dans une carte OUTPUT à la quelle on fera référence au moyen du paramètre OUTPUT.
  • Writer : identification du writer externe devant prendre l’édition en charge.
  • INTRDR : la sysout doit être renvoyé dans une file d’attente d’entrée au travers d’un lecteur interne.
  • Format : format de papier a utiliser pour l’impression (1 à 4 caractère)
  • Code : identifiant d’une carte /* OUTPUT de JES2 dans la quelle on aura défini les caractéristiques du fichier SYSOUT.

Exemple :
//DDNAME1 DD SYSOUT=(F,FACT)
//DDNAME2 DD SYSOUT=V

COPIES : spécifier le nombre de copies désirées pour une édition. Optionnellement si l’impression doit ce faire sur une imprimante 3800, On peut spécifier la façon dont doivent être groupées les copies.

COPIES=(nnn,(groupe1,groupe2, …))

  • nnn :nombre de copy désirées dans les limites de 1 à 255. Pour les sous système 3800, cette valeur est ignorée si on a codé les valeur de groupes. Sans valeur de groupe, le nombre de copies indiqué sera imprimé dans la séquence des pages pour chaque copie.
  • Groupe1,groupe2 : ces paramètres ne sont pris en compte que pour l’impression sur sous-système 3800.Ils indique le groupage des copies à imprimer. Chaque valeur donnera le nombre de copies de chaque page devant être groupées ensembles. Chaque groupe peut prendre une valeur de 1 à 255. On pourra avoir au maximum 8 groupe dont la somme des valeurs ne doit pas dépasser 255.

Exemple :
//IMPR1 DD SYSOUT=F,COPIES=32
//IMPR2 DD SYSOUT=B,COPIES=(1,(1,2))

FCB : spécifié la bande pilote à utiliser pour l’impression de SYSOUT. L’image de la bande pilote doit se trouver dans la bibliothèque système SYS1.IMAGELIB.

FCB=(image-id,(ALIGN/VERIFY))

  • Image-id : nom d’un membre de SYS1.IMAGELIB définissant la bande pilote à utiliser (1 à 4 caractère).
  • ALIGN : demande à l’opérateur de vérifier le cadrage du papier avant l’édition.
  • VERIFY : demande à l’opérateur si l’image d’état est bien la bande.

Exemple :
//IMPR1 DD SYSOUT=F,COPIES=3,FCB=FACT

UCS : chaîne de caractères à utiliser pour l’impression de SYSOUT sur imprimante à impacts. Police de caractères à utiliser pour impression sur 3800 LASER.

UCS=identification.

Exemple :
//IMPR1 DD SYSOUT=F,COPIES=3,UCS=CHN5

HOLD :

HOLD=YES(Y)/NO(N)

  • YES : le sysout doit être mis à l’état HOLD dans les filles d’attente de sortie. Sa fera par commande pupitre.
  • NO :Le sysout sera édité à son tour.

Exemple :
//IMPR1 DD SYSOUT=F,COPIES=3,HOLD=YES.

FREE : ce paramètre permet de déterminer à quel moment le système doit désallouer le fichier défini dans la carte DD.

FREE=END/CLOSE

  • END : Le fichier sera désalloué à la fin du JOB(DEFAUT)
    CLOSE :le fichier sera désallouer a ça fermeture. Utiliser dans les fichiers
  • SYSOUT pour l’impression du fichier par JES2 même si le JOB n’est pas terminé.

Exemple :
//IMPR1 DD SYSOUT=F,FREE=CLOSE

OUTLIM : limite le nombre de ligne de la sysaout. La limite atteinte, le traitement s’arrête par ABEND.

OUTLIM=nnnnnnnn

nnnnnnnn : nombre maximum de ligne produit (1 à 16777215).

Exemple :
//IMPR1 DD SYSOUT=F,OUTLIM=1000

DEST : spécifie la destination d’une SYSOUT.

DEST= LOCAL
      Nnnn
      RMTnn
      NnRn

  • LOCAL :la SYSOUT sera édité sur n’importe quelle imprimante locale.
  • Nnnn : Le SYSOUT sera édité au nœud de réseau spécifié.
  • RMTnn : la SYSOUT sera édité à la station remonte spécifiée.
  • NnRn : La SYSOUT sera édité a la station remote spécifiée et rattachée au nœud de réseau spécifié

Exemple :
//OMPR1 DD SYSOUT=F,DEST=RMT1

OUTPUT : permet d’associer au fichier SYSOUT des caractéristiques définies antérieurement par une ou plusieurs cartes OUTPUT.

OUTPUT= *.ddname, *.ddname,…
        *stepname.ddname,*stepname.ddname, …
        *.stepname.procstepname.ddname, …

*ddname : référence à une carte OUTPUT définie soit dans la même étape soit juste avant la première carte EXEC
*stepname.ddname : référence à une carte OUPUT définie dans un STEP antérieur.
*.stepname.procstepname.ddname : référence à une carte OUTPUT définie dans une étape de procédure appelée dans un STEP antérieur.

Exemple :
Les exemples seront vus lors de l’étude de la carte OUTPUT.

Remarque :
Tout paramètre associé au paramètre SYSOUT et qui ne figure pas dans la carte OUT PUT est ajouté aux options de traitement prises dans la carte OUTPUT.
Tout paramètre associé au paramètre SYSOUT prime sur les paramètres équivalents de la carte OUTPUT.

BURST : permet de demander l’utilisation ou la non utilisation du dispositif de rupture de l’imprimante 3800 à LASER.

BRUST =YES/NO

CHARS : permet de définir les polices de caractères à utiliser pour impression sur l’imprimante 3800 à LASER.

CHARS=(nom1,nom2, …)

FLASH : permet de définir le fond de page à utiliser pour impression sur imprimante 3800 à LASER.

FLASH=nom,nb copies

  • nom : nom du fond de page à utiliser.
  • Nb copies : nombre de copies de SYOUT à traiter avec le fond de page.