Beruflich Dokumente
Kultur Dokumente
JCL
Page 1 de 33
Anoir SEGHIOUER
SOMMAIRE
Page 2 de 33
Anoir SEGHIOUER
Introduction.
Le systme d'exploitation pilote la machine en optimisant l'utilisation des ressources. Pour
cela il doit connatre et avoir pour chaque travail excuter tous les paramtres qui les
dfinissent. Ici en vas prsenter un des langage qui permet cela pour le grands systme, c'est
les membres JCL (Job Control Langage) qui lui dfini ces paramtres.
Il permet la communication entre l'utilisateur et le systme MVS par un ensemble de
commande prsenter dans l'anciens temps par des cartes perforer. Cela tant actuellement
Obsolte, il sufi d'crire un membre PDS dans une bibliothque et le soumettre. Dans la suite
je dcrirais les ordres de communication du JCL.
1. GENERALITES.
1.1. Description.
Un JCL ce compose d'un certain nombre d'ordres qui on un but de :
1. Soumettre au systme un travail, c'est--dire un ensemble de programmes excuter.
L'ordre utilis pour cela est : JOB
2. Donne le nom du programme excuter, ou la procdure appeler, EXEC
3. Dfinir l'ensemble des donnes associes aux programmes du traitement demander a
tre excuter, DD.
L'ensemble des ordres de contrle sont soumis une syntaxe qu'il faut respecter sous peine de
voir un refus d'excution et envoie d'un message JOB NOT RUN JCL ERROR.
L'excution d'un JCL est squentielle, les ordres de contrle doivent tre prcises dans un
ordre dtermin l'intrieur du JOB, et cela tape par tape. Ces tapes seront respectueux
des condition coder par l'utilisateur.
Les JOB sont indpendant dans leurs soumissions.
1.2. Codage.
Un JCL ce compose principalement d'ordre dcrit prcdemment:
En premire ligne un ordre JOB une seul par JCL(membre PDS).
Une succession d'ordre EXEC. Il doit tre suivie par des ordres DD pour spcifier l'ensemble
des composants (fichier entrer, fichier de sortie, Sysin, compte rendu d'exec, fichier de display
)
La prsence d'une carte fin n'est pas obligatoire.
Dans le tableau qui suit un rcapitulatif des ordres est prsent.
Nom de la carte
COMMAND
CNTL/ENDCNTL
Paramtres dfinis
Indique la commande MVS ou JES2 effectuer lors de
l'excution du JCL (depuis MVS/ESA SP4)
Marque dbut/la fin du ou des paramtres de contrle pour un
sous-systme d'impression.
Page 3 de 33
Anoir SEGHIOUER
2. SYNTAXE GENERALE.
Le fichier JCL a un format sur 80 caractres. Seul les colonnes de 1 71 sont utilis.
Chaque carte (ligne du JCL) commence par // en colonne 1 et 2.
----+----1----+----2----+----3----+----4----+----5----+----6----+----7-//USSERA1
JOB (),'AGK9AINT ALIM-COMPTA',CLASS=9,MSGCLASS=T,REGION=0M,
//
MSGLEVEL=(1,1),NOTIFY=&SYSUID
.. .
//STEP1
EXEC PGM1
//FICHIER
1
Zone 1 :
Zone 2 :
DD DSN=DR0.FCT.BEM.PARMS(PGK9AP0),DISP=SHR,
2
.. . Comment
4
C'est la zone qui identifie le nom de la carte attribu par le programme pour a
reconnaissance. Ce compose de 8 caractres alphanumrique commencent
obligatoirement par une lettre
Type d'ordre : JOB, EXEC, DD, PROC, PEND.
Page 4 de 33
Anoir SEGHIOUER
Zone 3 :
Zone 4 :
La liste des paramtres, spars par des virgules sans blanc sauf aprs le
dernier.
Cette zone est considre comme tant du commentaire.
Dans la carte de l'ordre JOB plusieurs paramtres sont prcis celons les environnements de
travail. Elle fini en position 70 par une virgule, et peut tre poursuivie dans une deuxime et
troisime ligne partir de la Cologne 9.
Page 5 de 33
Anoir SEGHIOUER
3. ORDRE JOB.
3.1. Format gnral :
//nom JOB
infos account
,nom programmeur
,CLASS=classe dxecution
,MSGCLASS=classe de sortie
,MSGLEVEL=(a,b)
,NOTIFY=userid_TST
,TYPRUN=SCAN/HOLD
,RESTART=nomdtape
,TIME=(minutes,secondes)/1440
,ADDRSPC=VIRT/REAL
,REGION=nK
,PRTY=P
,USER=userid-RACF
,GROUP=groupe fichiers RACF
,PASSWORD=mot de pass RACF
,PERFORM=groupe performances SRM
,COND=((code, opration,
Page 6 de 33
Anoir SEGHIOUER
MESSAGES :
0
: Les messages de lallocator et du terminator ne sont pas dits.
Toutes fois si une tape se termine anormalement, les massages sont
dits.
1
: Tous les messages sont dits.
En gnral,il est conseill de demander le maximum de renseignement, mme si cela conduit
diter plusieurs feuilles de comptes-rendus. Cela est obtenu par les valeurs par dfaut(1,1) .
TIME= : Dtermine la dure maximum (en temps CPU, processeur) du JOB pour lensemble
des tapes. Comporte deux sous paramtres positionnels. TIME=(min,s).
min :dur en minute de 0 1440.
s : dure en seconde de 0 60.
Exemple :
TIME=(5,30) ou TIME=(,10) 10second ou TIME=2 min
Si le temps est dpasse, ltape en cours sera abandonne et produit un code retour
system :S322
PRTY= : dtermine la priorit affecte au JOB dans les classes dentres et de sortie. Les
valeurs possibles vont de 0 15, 15 tant la plus haut priorit. La valeur standard par dfaut
est 5. A noter quil nest pas souhaitable dutiliser systmatiquement des priorits leves, car
cela conduit inluctablement un engorgement du systme. De plus, il existe des routines
dveloppes par lquipe systme qui contrlent la validit de la priorit en fonction par
exemple du nom du Job ou du code affaire.
NOTYFY= : permet au systme davertir lutilisateur que le job est termin. Le paramtre est
le USERID (identifiant utilisateur) utilis pour se connecter TSO.
RESTART= : permet de dmarrer lexcution dun JOB une autre tape que la premire.
Cela est parfois utile lorsque lon excute plusieurs fois le job et que lon ne dsire pas
rexecuter les premires tapes. La valeur se code de la faon suivante :
*
: Dmarrage a la premire tape (quivalent labsence du paramtre).
STEPn : Nom de ltap o lon veut dmarrer lexcution (stepname).
STEPn.PROCSTEPm : En cas de dmarrage dans une procdure, STEPn indique ltape
dappel et PROCSTEPm le nom de ltape de la procdure.
Exemple :
RESTART=*
sexcute depuis le dbut
RESTART=EDIT
sexcute depuis ltape EDIT
RESTART=COMPIL.COB appel de sous JCL.
TYPRUN =SCAN : Permet de soumettre le JOB uniquement au contrle de l'interprteur,
sans allocation ni excution. Elle permet un contrle de syntaxe du JCL.
PASSWORD : Permet de donner un mot de passe donnant accs des fichiers protgs par
RACF. IL est coder avec le paramtre USER est ce constitue de 1 8 caractre
alphanumrique.
COND= : Permet de donner une ou plusieurs conditions d'arrt d'un JOB. Le code est un
nombre de 0 4095 que le systme compare avec les codes retours issus des diffrents STEP.
On pourra donner jusqu' 8 conditions relies entre elles par une liaison OU. Voir syntaxe de
la carte EXEC.
Exemple : COND=(8,LE)
2-
Page 7 de 33
Anoir SEGHIOUER
Tous les paramtres ne sont pas obligatoire, chaque socit a ces condition de contrle et
outil technique qui permet la gestion du travail de qualit. Il est recommander pour dfinir
cette carte de demande un exemple sur le site.
4. L'ordre EXEC.
Elle permet d'identifier le programme ou la procdure excuter.
Limite : un JOB ne peut tre constitu de plus de 255 tapes (soit 255 ordre exec).
C'est obligatoirement le premier ordre d'un STEP. Elle ce compose de paramtres positionnels
et des paramtres mots-cls. La zone nom de la carte est ncessaire pour faire un rfrence
arrire qu STEP, modifier les paramtres des cartes EXEC et DD dans les procdures
catalogues, effectuer des reprises en dbut d'tapes ou un check-point.
Pour l'ensemble de ces besoins, il est recommand de donnes au diffrent STEP d'un JOB
des noms diffrents.
Si le programme a excut n'est pas trouv le JOB envois un code retour systme
ABEND S806
Si la procdure n'est pas trouve elle envoie un message PROCEDURE NOT
FOUND.
4.1. Format.
//NOM
EXEC
PGM=nom.pgm
PROC=nom.pr
ou nom procedure
,PARM=valeur
,ADDRSPC=VIRT/REAL
,COND= ((cde,opr)
,(cde,opr,stp)
,(cde,opr,prc.stp),EVEN/ONLY)
,PERFORM=n
,REGION=nk
,TIME=1440/(min,s)
Page 8 de 33
Anoir SEGHIOUER
Ce n'est pas un paramtre obligatoire. Il suffit, pour appeler une procdure, de fournir
simplement son nom.
ADDRSPC = : Il est demander le chargement du programme excuter soit en mmoire
relle, soit en mmoire virtuelle.
Ordre de priorit du paramtre : Le paramtre ADDRSPC, s'il est cod dans la carte JOB,
prime sur les paramtres cods dans une carte EXEC. Sil est cod dans une carte EXEC
d'appel de procdure prime sur celui cod dans les cartes EXEC de la procdure.
COND = Ce paramtre permet de donner une ou plusieurs conditions de non excution d'un
STEP.
Prend la forme suivante COND=(Valeur numrique, oprateur,Nom du step)
L'oprateur prend les valeurs suivantes :
GT
: plus grand que.
GE
: plus grand ou gal.
EQ
: gal.
NE
: non gal.
LT
: plus petit que.
LE
: Plus petit ou gal.
Fonctionnement :
Le test peut tre fait par rapport au rsultat de n'importe quelle tape prcdente(on ne
donne pas de nom d'tape) ou par rapport au rsultat d'une tape prcise (on donne le
nom de l'tape).
Si une des conditions est ralise, l'tape pour laquelle elle est codifie n'est pas
excute et on passe l'tape suivante.
EVEN et ONLY : sont particuliers dans le sens ou ils font intervenir la notion
d'ABEND. L'interprtation doit se faire de la faon suivante:
COND=EVEN : Excuter l'tape mme si n'importe quelle tape prcdente
s'est termine par un ABEND.
COND=ONLY : Excuter l'tape si et seulement si n'importe quelle tape
prcdente s'est termine par un ABEND.
Remarque : Si le paramtre COND est fourni dans la carte JOB et dans les cartes EXEC, le
systme ragit de la faon suivante :
Si la condition dfinie dans la carte JOB est ralise, il y a arrt du JOB.
Si non, le systme teste la condition dfinie dans la carte EXEC. En fonction du
rsultat, il initialise ou n'initialise pas l'tape.
Exemple 1 :
//I000001AS
//STEP1
//FICENT1
//FICSOR1
JOB
EXEC PGM=PGM1
DD
DISP=SHR
DD
DSN=FIC1
Returne Code = 0
EXEC PGM=PGM2,COND(0,NE)
DD
DISP=SHR,DSN=FIC1
DD
DSN=FIC2
Returne Code = 8
Page 9 de 33
Anoir SEGHIOUER
//STEP3
//FICENT3
//FICSOR3
EXEC PGM=PGM3,COND(0,NE,STEP1)
DD
DISP=SHR,DSN=FIC1
DD
DSN=FIC3
Returne Code = 0
EXEC PGM=PGM4,COND(0,NE,STEP2)
DD
DISP=SHR,DSN=FIC2
DD
DSN=FIC4
Est-ce que 0 est diffrent du code retour mis par l'une des tapes
prcdentes?
Est-ce que 0 est diffrent du code retour mis par l'tape STP1?
Est-ce que 0 est diffrent du code retour mis par l'tape STEP2.
JOB
EXEC PGM=PGM1
DD
DISP=SHR
DD
DSN=FIC1
EXEC PGM=PGM2,COND=ONLY
DD
DISP=SHR,DSN=FIC1
DD
DSN=FIC2
ABEND
Returne Code = 8
EXEC PGM=PGM3,COND=(0,NE,STEP1)
DD
DISP=SHR,DSN=FIC1
DD
DSN=FIC3
Returne Code = 0
Page 10 de 33
Anoir SEGHIOUER
//STEP4
//FICENT4
//FICSOR4
EXEC PGM=PGM4,COND=((0,NE,STEP2),EVEN)
DD
DISP=SHR,DSN=FIC2
DD
DSN=FIC4
tant donn qu'il y a eu ABEND dans une tape prcdente et que EVEN ou
ONLY ce sont pas spcifis, l'tape STEP3 ne peut pas s'excuter.
Avant d'initialiser l'tape STEP4, l'initiator teste la condition dfinie dans la carte
EXEC de la faon suivante :
Dans ces conditions l'tape STEP4 ne peut pas s'excuter (voir tableaux
suivant).
Initialiseur tape
RC>=code
RC >code
RC code
RC =<code
RC <code
RC =code
ABEND tapes
prcdentes?
NON
NON
OUI
OUI
NON
NON
OUI
OUI
NON
NON
TESTS RC
satisfaits
NON
OUI
NON
OUI
NON
OUI
NON
OUI
NON
OUI
INIT tape
OUI
NON
OUI
NON
NON
NON
OUI
NON
OUI
NON
Page 11 de 33
Anoir SEGHIOUER
NON
NON
OUI
OUI
NON
OUI
NON
NON
Page 12 de 33
Anoir SEGHIOUER
DUMMY
*
DATA
,DLM=nn
DUMMY
,DSNAME= ou DSN=
,DISP=
,UNIT=
,VOL=
,SPACE=
,DCB=
,LABEL=
5.3.2. Paramtre
5.3.2.1. DUMMY : Ce paramtre est positionnel de la carte DD. Quand il est cod il doit tre
le premier. Il demande au systme d'ignorer tous les ordres d'entr/sortie faites sur ce fichier.
Il n'a pas de sous paramtres.
Page 13 de 33
Anoir SEGHIOUER
5.3.2.2. DSNAME =
c'est le nom physique du fichier. Pour un fichier en cration le systme 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(numrode gnration)}
{&&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 parenthses, du nom du membre trait.
Nom-fichier (num de gnration) : nom d'un fichier GDG suivi, entre parenthse par
le numro de gnration dans le GDG.
&&nom-fichier : nom temporaire, squentiel ou partitionn. Le systme gnre dans
ce cas un nom sous la forme :
SYSaajjj.Thhmmss.RA000.nom-job.nom-fichier
Aajjj : date de cration en anne nombre de jour.
Hhmmss : heure de cration
Nom-job : Nom du job figurant dans la zone "nom" de la carte JOB
Nom-fichier : nom donn au fichier derrire les caractres "&&"
Si on ommet le paramtre DSNAME, le systme gnre alors un nom
sous la forme :
SYSaajjj.Thhmmss.RA000.nom-job.Rnnnnnnn
Dans le quel 'nnnnnnn' reprsente le numro d'ordre de cration du
fichier dans le JOB.
&&nom-pds(membre) : nom d'un membre de fichier partitionn temporaire.
*,DDNAME : rfrence arrire un nom de fichier contenu dans une carte DD faisant
partie du mme STEP.
*.nom-step.DDNAME : rfrence arrire a un nom de fichier contenu dans une carte
DD faisant partie d'un STEP antrieur dans le mme JOB.
*.nom-step.nom-step-proc.DDNAME : rfrence arrire un nom de fichier contenu
dans une carte DD faisant partie d'une tape de procdure catalogue
appele par une tape antrieur du JOB.
Exemple :
1 dfinition d'une gnration GDG.
//DDX
DD
DSN=RESERV.GDG(0).
2- Dfinition de membre de PDS.
//DDX
DD
DSN=BIBLIO1.UTIL.FIC(PARAM)
3- Dfinition de fichier temporaire.
//DDX
DD
DSN=&&TEMP1
4- dfinition d'un fichier non temporaire.
Page 14 de 33
Anoir SEGHIOUER
//DDX
DD
DSN=BIBLIO.PGM1.FICSTOK,
5.3.2.3. DISP :
(disposition), il permet d'indiqu au systme 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 systme)
Les sous paramtre du DISP sont positionnels.
DISP= (NEW,DELETE,DELETE)
(OLD,KEEP,KEEP)
(SHR,PASS,CATLG)
(MOD,CATLG,UNCATLG)
,UNCATLG
-1- -2-3Sous parameter-1- : indiquera l'tat du fichier.
Sous paramtre -2- : indiquera ce qu'il faut faire du fichier en cas de fin normale de l'tape.
Sous paramtre -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
dure du JOB.
OLD : il existait avant l'tape en cours. Il est usage exclusif du JOB pendant toute la dure
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'excution. 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 systme ne trouve nulle part d'informations concernant le
volume qui contient le fichier, il considre celui-ci comme NEW.
DISPOSITION EN CAS DE FIN NORMALE.
DELETE : le fichier devra tre supprim. La suppression d'un fichier catalogu entrane celle
de son entre au catalogue condition que le systme 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 dcharg.
CATLG : il est conserv et catalogu. Pour toute utilisation ultrieure, 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 ultrieure du mme 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 dcide autrement au
CLOSE du fichier. Pour le conserver il suffit de coder une disposition KEEP ou CATLG a sa
dernire utilisation.
Exemple :
//PASS
JOB
//ET1
EXEC PGM=PGM1
//DDNAME1 DD
DSN=FIC001,DISP=(NEW,PASS),UNIT=SYSDA
//ET2
EXEC PGM=PGM2
Page 15 de 33
Anoir SEGHIOUER
//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 prcdentes peuvent tre donnes pour une fin
anormale d'tape.
OPTIONS PRISES PAR DEFAUT.
1 er position :
NEW.
2eme position:
DELETE si le fichier est NEW.
KEEP, si le fichier existe dj (OLD ou SHR).
3eme position :
par dfaut en cas de fin anormale, le systme applique la disposition
Demande pour la fin normale.
Exemple :
1- DDNAME1
DD
DSN=FIC1,DISP=(NEW,CATLG,DELETE)
Fichier en cration, 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 cration, suppression en cas de fin normale ou anormale.
2- DDNAME1
DD
DSN=FIC1,DISP=(OLD,,DELETE)
Fichier existent, conservation en cas de fin normale, suppression en cas de fin anormale.
UNIT : Ce paramtre dfini l'unit physique contenant ou devant contenir le fichier.
Obligatoir lors de la cration d'un fichier
UNIT =
adresse-unit, nbre-units, DEFER,
AFF=DDNAME
Type-unit, P
Nom-groupe
Les trois sous paramtre sont positionnels.
Adresse-unit : elle permet de donn une adresse prcise pour l'allocation physique du
fichier, elle est a proscrire d'une manire gnrale
ndre-unit : indique au systme le nombre d'units rserver pour un fichier
multi volumes. Par dfaut le systme rserve une unit.
DEFFER
: permet un montage diffr du volume. Elle sera faite qu'au moment de
l'OPEN du fichier si OPEN il y a.
UNIT=AFF= : indique au systme le fichier dfini doit tre implant sur la mme
unit qu'un fichier dj dfini dans l'tape.
Type-unit : on donne ici un type d'unit du systme(3480,3350,3380,3420, etc..)
P(parallle) : prcise au systme au tous les volumes d'un fichier multi volume
doivent tre en ligne au moment du traitement. La routine d'allocation
de l'INITIATOR rservera autant d'units que ncessaire, le nombre de
volume souhait lui tant alors fourni dans le paramtre volume.
Nom-groupe : identifie le groupe d'unit pour l'implantation du fichier. Ils sont dfini
a la gnration du systme.
Exemple :
Page 16 de 33
Anoir SEGHIOUER
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 monts en parallle
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 dfinir le volume qui contient ou qui contiendra le fichier. Il est
obligatoire pour crer un fichier sur un volume spcifique, reprendre un fichier non cataloger
ou non pass.
VOLume= PRIVATE, RETAIN, sqvol, nbvol,
SER=numvol
REF=*.ddname
REF=*.stp.ddname
REF=*.stp.stprc.ddname
REF=dsname
Les quatre sous paramtre sont positionnels.
Un volume peut faire l'objet d'une demande :
SPECIFIQUE : l'utilisateur impose un volume prcis qui contient le fichier.
Non SPECIFIQUE : L'emplacement du fichier est laiss au choix du systme qui
cherchera la place dans un volume public.
RETAIN : permet la conservation de l'unit supportant le volume utiliser.
Sqvol(squence 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 dfaut, le systme assume le traitement de 5 volumes au
maximum. Au del, il faut coder le nombre (pour un max de 255) de volumes
ncessaires.
SER= (serial) : ce sous paramtre fait une demande spcifique de volume, un ou
plusieurs peuvent tre cod.
REF=dsname : le fichier sera sur le mme volume qu'un fichier existant ou catalogue.
REF=*.ddname : le fichier sera dans le mme volume qu'un fichier de l'tape.
REF=*.step1.ddname : le fichier sera dans le mme volume qu'un fichier du step1
REF=*.step.procstep.ddname : le fichier sera dans le mme volume que le fichier
dcrit dans le step de la procdure 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
Page 17 de 33
Anoir SEGHIOUER
23-
//DDENTR
//
//DDOUT
//
//
DD
DD
DSN=I000001.FIC1,DISP=SHR,UNIT=3380,
VOL=SER=VOL001
DSN=I0000001.fic2,DISP=(NEW,CTALG),
UNIT=TAPE,
VOL=(,,,6,SER=(BDE001,BDE002,BDE003,BDE004))
SPACE : indique au systme quelle espace disque sera rserver pour ce fichier en cration.
Deux type de dclaration : spcifier et non spcifier. Ces deux type correspond a des format
diffrente, l'ensemble de ces sous paramtre sont positionnels.
Demande non spcifique :
SPACE=(type-alloc,(allocp,allocs,dir),(RLSE,CONTIG,ROUND))
Type-alloc : indique l'unit d'allocation de l'spaces.
TRK : pistes
CYL : cylindres
nnn : longreur moyenne, en octets, du bloc unitaire. Le nombre
maximum tant donne dans le programme.
Allocp : donne l'allocation primaire. Le systme essais toujours de satisfaire
l'allocation primaires. Il doit y avoir suffisamment de place pour l'allocation
primaire sinon il y a arrt du traitement.
Allocs : donne la taille des allocations secondaires.
dir : pour les fichier partitionns. Donne le nombre de blocs de directory rserver en
dbut d'allocation primaire.
RLSE : libration 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 faon contigu.
ROUND : force l'alignement des allocations demandes en blocs d'une certaine taille
frontire du cylindre.
Demande spcifique :
Elle impose un emplacement spcifique pour le fichier. Elle en nombre de pistes et fournit
l'adresse relative de la premire piste du domaine dfini.
SPACE=(ABSTR,(taille,piste-dpart,(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, libration de la place non utilise 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 caractristique physique d'un fichier non VSAM.
Page 18 de 33
Anoir SEGHIOUER
DSN=A0001.Fic1,DISP=(NEW,CATLG),UNIT=SYSDA,
SPACE=(TRK,10),DCB=(BLKSIZE=8000,DEN=3)
Page 19 de 33
Anoir SEGHIOUER
RETPD=nnn
Rang : indique la position du fichier sur bande (dfaut=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 dfaut)
SUL : Standard IBM et Utilisateur.
NSL : non standard
NL : pas de labels
BLP : pas de traitement de labels
Protection (plus utilis) : ce sous paramtre permet d'indiquer une protection par mot
de passe.
EXPDT= : donne une date de rtention un fichier sous format
Anne/Quantime(AAQQQ ou AAAA/QQQ)
RETPD= : donne uns priode de rtention 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
//DDNAME DD
DUMMY
,DSNAME=
,DISP=
,AMP=
Les paramtres DUMMY et DSNAME sont les mme que ceux vus pour les fichiers non
VSAM.
Le paramtre DISP ne peut prendre que les valeurs OLD et SHR. Les autres sont ignores.
AMP : Ce paramtre permet de complta les information sur les paramtres du fichier
VSAM
AMP=('AMORG,BUFND=n,BUFINI=n,BUFSP=n')
Si l'ont code plusieurs paramtres dans AMP, ceux-ci doivent tre entre cote.
AMORG : indique au systme que la carte DD dfinit 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
Page 20 de 33
Anoir SEGHIOUER
DD
DUMMY
,SYSOUT=
,COPIES=
,FCB=
,UCS=
,HOLD=
,FREE=
,OUTLIM=
,DEST=
,OUTPUT=
,BURST=
,CHARS=
,FLASH=
SYSOUT=V
Page 21 de 33
Anoir SEGHIOUER
Groupe1,groupe2 : ces paramtres ne sont pris en compte que pour limpression sur
sous-systme 3800.Ils indique le groupage des copies imprimer. Chaque
valeur donnera le nombre de copies de chaque page devant tre groupes
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 dpasser 255.
Exemple :
//IMPR1
DD
SYSOUT=F,COPIES=32
//IMPR2
DD
SYSOUT=B,COPIES=(1,(1,2))
FCB : spcifi la bande pilote utiliser pour limpression de SYSOUT. Limage de la bande
pilote doit se trouver dans la bibliothque systme SYS1.IMAGELIB.
FCB=(image-id,(ALIGN/VERIFY))
Image-id : nom dun membre de SYS1.IMAGELIB dfinissant la bande pilote
utiliser (1 4 caractre).
ALIGN : demande loprateur de vrifier le cadrage du papier avant ldition.
VERIFY : demande loprateur si limage dtat est bien la bande.
Exemple :
//IMPR1
DD
SYSOUT=F,COPIES=3,FCB=FACT
UCS : chane de caractres utiliser pour limpression de SYSOUT sur imprimante
impacts. Police de caractres 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 ltat HOLD dans les filles dattente 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 paramtre permet de dterminer quel moment le systme doit dsallouer le
fichier dfini dans la carte DD.
FREE=END/CLOSE
END : Le fichier sera dsallou la fin du JOB(DEFAUT)
CLOSE :le fichier sera dsallouer a a fermeture. Utiliser dans les fichiers SYSOUT
pour limpression du fichier par JES2 mme si le JOB nest pas termin.
Exemple :
//IMPR1
DD
SYSOUT=F,FREE=CLOSE
OUTLIM : limite le nombre de ligne de la sysaout. La limite atteinte, le traitement sarrte
par ABEND.
OUTLIM=nnnnnnnn
nnnnnnnn : nombre maximum de ligne produit (1 16777215).
Exemple :
//IMPR1
DD
SYSOUT=F,OUTLIM=1000
DEST : spcifie la destination dune SYSOUT.
DEST=
LOCAL
Page 22 de 33
Anoir SEGHIOUER
Nnnn
RMTnn
NnRn
LOCAL :la SYSOUT sera dit sur nimporte quelle imprimante locale.
Nnnn : Le SYSOUT sera dit au nud de rseau spcifi.
RMTnn : la SYSOUT sera dit la station remonte spcifie.
NnRn : La SYSOUT sera dit a la station remote spcifie et rattache au nud de
rseau spcifi
Exemple :
//OMPR1
DD
SYSOUT=F,DEST=RMT1
OUTPUT : permet dassocier au fichier SYSOUT des caractristiques dfinies
antrieurement par une ou plusieurs cartes OUTPUT.
OUTPUT= *.ddname,
*.ddname,
*stepname.ddname,*stepname.ddname,
*.stepname.procstepname.ddname,
*ddname : rfrence une carte OUTPUT dfinie soit dans la mme tape soit juste
avant la premire carte EXEC
*stepname.ddname : rfrence une carte OUPUT dfinie dans un STEP antrieur.
*.stepname.procstepname.ddname : rfrence une carte OUTPUT dfinie dans
une tape de procdure appele dans un STEP antrieur.
Exemple :
Les exemples seront vus lors de ltude de la carte OUTPUT.
Remarque :
Tout paramtre associ au paramtre SYSOUT et qui ne figure pas dans la carte OUT PUT
est ajout aux options de traitement prises dans la carte OUTPUT.
Tout paramtre associ au paramtre SYSOUT prime sur les paramtres quivalents de la
carte OUTPUT.
BURST : permet de demander lutilisation ou la non utilisation du dispositif de rupture de
limprimante 3800 LASER.
BRUST =YES/NO
CHARS : permet de dfinir les polices de caractres utiliser pour impression sur
limprimante 3800 LASER.
CHARS=(nom1,nom2, )
FLASH : permet de dfinir 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.
6. DDNAMES SYSTEME.
6.1. Recherche de programmes pour excution.
LINKLIB LOGIQUE.
La Linklib logique est un ensemble de bibliothques constitu de la SYS1.LINKLIB et
de bibliothques systme et prives qui lui sont rattaches. Cet ensemble est dfini dans des
membres LNKLSTnn de SYS1.PARMLIB.
A partie du moment o un programme que lon veut excuter se trouve dans une
bibliothque de la Linklib logique, il nest pas ncessaire de dfinir cette bibliothque. Dans
le JCL.
DEFINITION DE BIBLIOTHEQUE PRIVEES.
Page 23 de 33
Anoir SEGHIOUER
La recherche dun programme dans une ou plusieurs bibliothques prives peut tre
demande par lune des cartes suivantes :
//JOBLIB
DD
DSN=BIB.LOAD,DISP=SHR
//STEPLIB DD
DSN=BIB.LOAD2,DISP=SHR
Carte JOBLIB : permet de dfinir une bibliothque prive qui sera valable pour
toute la dure du JOB. Elle doit suivre obligatoirement la carte JOB. Et
la carte JES2 sil yen a et prcder la premire carte EXC.
Exemple :
//JOB1
JOB
//JOBLIB
DD
DSN=BIB.LOAD1,DISP=SHR
//STEP1
EXEC PGM=PROG1
Remarque : a chaque fois que le JOB demande lexcution dun programme, le
systme le recherche dans les bibliothques de la JOBLIB. Si il nest pas
trouver dans ,la recherche ce poursuit dans la LINKLIB LOGIQUE.
Carte STEPLIB : permet de dfinir une bibliothque prive qui ne sera valable que
pour la dure du STEP dans le quel elle est dfinie. Elle fait partie des
carte DD.
Exemple :
//JOB2 JOB
//STEP1
EXEC PGM=PROG2
//STEPLIB DD
DSN=BIB.LOAD2,DISP=SHR
Remarque :
Avec une carte STEPLIB,quand ltape demande lexcution du programme, le
Systme le recherche dans la bibliothque dfinie par STEPLIB. Sinon il continue sa
recherche dans la LINKLIB LOGIQUE. Il ny aura en aucun cas de recherche dans les
bibliothques ventuellement dfinie par JOBLIB.
DD
//STEPCAT DD
DSN=USER.CAT1,DIS=SHR
DSN=USER.CAT2,DISP=SHR
JOBCAT : un catalogue dfini avec une carte JOBCAT sera valable pour toute la dure du
JOB. La recherche dun fichier de fera dans lordre suivant :
1) Catalogue dfini par JOBCAT
2) Master Catalog
3) Catalogue associ au premier Qualifieur du nom du fichier.
Une carte JOBCAT doit obligatoirement tre place entre la carte JOB et la premire carte
EXEC.
Si il existe une carte JOBCAT doit obligatoirement tre place entre la carte JOB et la
premire carte EXEC.
SI il existe une carte JOBLIB pour le mme JOB elle doit tre placer entre la carte JOB et la
carte JOBCAT.
Exemple :
//JOB1
JOB
//JOBLIB
DD
DSN=BIB.LOAD1,DISP=SHR
//JOBCAT
DD
DSN=USER.CAT1,DISP=SHR
Page 24 de 33
Anoir SEGHIOUER
//STEP1
EXEC PGM=PROG1
STEPCAT : un catalogue dfini par une carte STEPCAT est valable seulement pour la dure
du STEP dans la quelle il est dfini. La recherche dun fichier se fait dans lordre suivant :
1) Catalogue dfini par STEPCAT
2) Master Catalog
3) Catalogue associer au premier qualifieur du nom de fichier.
Une carte STEPCAT se place parmi les cartes DD de ltape.
Exemple :
//JOB1
JOB
//JOBLIB
DD
DSN=BIB.LOAD1,DISP=SHR
//STEP1
EXEC PGM=PROG1
//STEPCAT DD
DSN=USER.CAT2,DISP=SHR
DD
SYSOUT=classe
// SYSABOUT
DD
SYSOUT=classe.
7. CONCATENATION DE FICHIERS.
La concatnation permet de dfinir plusieurs fichiers dune tape sous un mme DDNAME.
Elle nest utilisable que pour des fichiers en lecture contenant le mme type dinformations.
La lecture ce fait en squence dans lordre de prsentation des fichiers. On peut concatner
jusqu 255 fichiers.
Exemle :
Dfinition de plusieurs bibliothques de LOAD modules sous les mmes JOBLIB.
//JOB1
JOB
//JOBLIB
DD
DSN=BIB.LOAD1,DISP=SHR
//
DD
DSN=BIB.LOAD2,DISP=SHR
//
DD
DSN=BIB.LOAD2,DISP=SHR
//
DD
DSN=BIB.LOAD2,DISP=SHR
//STEP1
EXEC PGM=PROG1
Dfinition des fichiers dentre du tri
//JOB1
JOB
//STEP1
EXEC PGM=SORT
//SORTIN
DD
DSN=FIC.TRI1,DISP=SHR
//
DD
DSN=FIC.TRI2,DISP=SHR
Page 25 de 33
Anoir SEGHIOUER
//
//
DD
DD
DSN=FIC.TRI3,DISP=SHR
DSN=FIC.TRI4,DISP=SHR
8. Carte OUTPUT
Cette carte permet de dfinir des caractristiques communes plusieurs fichiers sysout dun
JOB. Elle sutilise en association avec le paramtre OUTPUT de la carte DD.
Format.
//nom OUTPUT
CLASS=classe/*
,COPIES=nnn
,DEFAULT=YES/NO
,FORMS=code papier
,FCB=
,UCS=
,DEST=
,BURST=
,CHARS=
,FLASH=
CLass : Donne une classe de sortie pour le ou les fichiers SYSOUT associs la carte
OUTPUT.
COPIES : mme signification que dans la carte DD.
DEFAULT : YES : Toutes les carte DD dfinissant des ficher SYSOUT et ne possdant pas
le paramtre OUTPUT seront associes cette carte OUT PUT.
NO : pas dassociation implicite.
DEST : identique que la description de la carte DD.
FCB : identique que la description de la carte DD.
UCS : identique que la description de la carte DD.
BURST : identique que la description de la carte DD.
CHARS : identique que la description de la carte DD.
FLASH : identique que la description de la carte DD.
FORMS : Code papier utiliser pour limpression.
Exemple :
//JOB1
JOB
//OUT1
//OUT2
//OUT3
OUTPUT
OUTPUT
OUTPUT
//STEP1
//IMP1
EXEC PGM=PGM1
DD
SYSOUT=(,),OUTPUT=(*.OUT1,*.OUT2)
//STEP2
//IMP2
EXEC PGM=PGM2
DD
SYSOUT=(,),OUTPUT=*.OUT1
//STEP3
//IMP3
EXEC PGM=PGM3
DD
SYSOUT=(,),HOLD=YES
CLASS=Z,COPIES=2,DEST=RMT1
CLASS=Y,COPIES=3,DEST=RMT3
CLASS=P,COPIES=1,DEFAULT=YES
Page 26 de 33
Anoir SEGHIOUER
9. LES PROCEDURES.
Une procdure est quivalent a un sous-programme de JCL que lont peut appeler par une
carte EXEC. Elle sutilise lors ce que noue avons dans le systme un ensemble de carte de
JCL, de Bibliothque suffisamment standard pour pouvoir tre utilis assez frquemment
dans des travaux diffrents. Cest le cas par exemple des compilations, des lancements de
Logiciels transactionnels des SGBD (systme de gestion de donne).
JOB
EXEC PROCD
DD
DSB= .
EXEC PGM=PROGRAM1
//MYJOB
//STEPA
//FICHENT1
//FICHENT2
//SYSOUT
//FICH
//STEP2
procedure
//PROCD
PROC
//STEPA
EXEC PGM=PGM1
//FICHENT1 DD
DSN=
//FICHENT2 DD
DSN=
//SYSOUT DD
SYSOUT=*
//
PEND
JOB
EXEC PGM=PGM1
DD
DSN=
DD
DSN=
DD
SYSOUT=*
DD
DSB= .
EXEC PGM=PROGRAM1
Page 27 de 33
Anoir SEGHIOUER
Page 28 de 33
Anoir SEGHIOUER
//
Page 29 de 33
Anoir SEGHIOUER
//S2
EXEC
PGM=PROG2,TIME=1
.. et lappel de la procdure :
//STEP1
EXEC
MYPROC,COND.S1=(0,NE),
//
PARM.S1=,TIME.S2=(,5)
Qui apporte les modifications suivantes :
Ajout de COND dans ltape S1
Suppression de PARM dans ltape S1.
Modification de TIME dans S2.
X/S1 EXEC PGM=MYPROG,COND=(0,NE)
EXEC PGM=PROG1
DD
SYSOUT=*
Page 30 de 33
Anoir SEGHIOUER
//FICENT
//S2
//SYSOUT
//IMPRIM
DD
EXEC
DD
DD
DSN=I00020.FICENT,DISP=SHR
PGM=PROGRAM2
SYSOUT=*
SYSOUT=*,copies=2
et appel de la procedure
//STEP1
//S1.FICENT
//S1.FICSOR
//
//S2.IMPRIM
EXEC MYPROC
DD
DISP=OLD
DD
DSN= I00020.FICENT,DISP=SHR
UNIT=SYSDA,SPACE=(TRK,10),DCB=BLKSIZE=120
DD
SYSOUT=A,OUTLIM=1000,COPIES=
modif
Ajout
suppression
MYPROC
PGM=PROG1
SYSOUT=*
DSN= I00020.FICENT,DISP=OLD
DSN= I00020.FICENT,DISP=SHR
UNIT=SYSDA,SPACE=(TRK,10),DCB=BLKSIZE=120
PGM=PROGRAM2
SYSOUT=*
SYSOUT=A,OUTLIM=1000
Modif
Ajout
Cas particulier des fichiers concatns :
Il doit y avoir autant de cartes DD dans le JCL dappel que dans ltape de la procdure. Les
cartes doivent apparatre dans le mme ordre.
Pour modifier un paramtre, on le code dans la carte DD correspondante.
Si aucun paramtre ne doit tre chang dans une carte,on code cette carte sans paramtre.
Exemples :
Dans la procdure PROCA :
//SX
EXEC
//DD1
DD
DNS=LOAD.LOAD1,DISP=SHR
//
DD
DNS=LOAD.LOAD3,DISP=SHR
//
DD
DNS=LOAD.LOAD2,DISP=SHR
1- Dans le JCL dappel de la procdure :
//STEPA
EXEC
PROCA
//SX.DD1
DD
DSN=I0004.PROJ1,DISP=SHR
On trouvera dans le JCL image :
X/SX.DD1 DD
DSN=I0004.PROJ1,DISP=SHR
X/
DD
DNS=LOAD.LOAD3,DISP=SHR
X/
DD
DNS=LOAD.LOAD2,DISP=SHR
2- Dans le JCL dappel de la procdure
//STEPA
EXEC
PROCA
//SX.DD1
DD
DSN=I0004.PROJ1,DISP=SHR
DD
DSN=I0004.PROJ2,DISP=SHR
Page 31 de 33
Anoir SEGHIOUER
EXEC
PGM=PROGRAM1,TIME=&DUREE,PARM=&AA&QQQ
//FIC1
DD
DSN=&FIC,DISP=&DISPO
//FIC2
DD
DSN=&APPLI..&VERS,DISP=(NEW,ATALG,DELETE),
Attention : Le double point prcdant &VERS est indispensable pour sparer deux variables
dans un nom de fichier.
Page 32 de 33
Anoir SEGHIOUER
JOB
SET
EXEC
DD
DD
..
NOMFIC=GOR.RESU456.ED56,IMPR=RMT231
PGM=EDITION
DSN=GOR.RESU456.ED56,DISP=SHR
SYSOUT=A,DEST=RMT231
Page 33 de 33