00D70014 Limite des extends VSAM atteinte. Voir système pour REORG
ou plus de place sur le volume.
00D70025 EXTEND FAILED
, plus de place sur le volume.
00D70014 Limite des extends VSAM atteinte. Voir système pour REORG
ou plus de place sur le volume.
00D70025 EXTEND FAILED
, plus de place sur le volume.
00C90090 Le tablespace ou indexspace ne peut pas être starté car un start est en cours.
00C90091 Start impossible car il y a des THEADS INDOUBT
. Prévenir le système.
00C90092 IRLM out-of-storage. Prévenir l’equipe système.
00C90093 Erreur IRLM.Prévenir le système.
00C90094 Le support VSAM est dans un etat autre que celui connu de DB2.Prévenir l’équipe système pour un RECOVER
.
00C90095 DB2 en cours de RESTART
et la page accédée n’est pas encore disponible.
00C90096 Nombre de verrous sur page ou subpage d’index dépasse le nb maxi pour un user.Patienter et recommencer.
00C90097 Tentative de mise à jour d’un tablespace marqué en FULL IMAGE COPY REQUIRED
00C90098 Limite du nombre d’utilisateurs atteint. Prévenir l’équipe système
00C90099 Load sur une partition pleine. Prévenir le système
00C9009A Anomalie de migration de release DB2. A soumettre au système
00C9009B Load sur un tablespace full. A soumettre au système
00C9009C Insert sur une partition pleine. A soumettre au système
00C9009D Insert sur un tablespace full. A soumettre au système
00C900EA Tablespace en cours d’utilisation par un job
00C90080 Tentative de maj sur tablespace en Read Only (RO)
00C90081 Tentative d’accès sur tablespace stoppé
00C90082 Tentative d’accès sur tablespace utilisé par un utilitaire(UTUT)
00C90083 Tentative d’accès sur tablespace utilisé par un utilitaire(UTRO) accès autorisé en lecture seulement
00C90084 Problème d’accès aux Tablespaces temporaires de tri DB2
00C90085 Limite des tablespaces temporaires de tri de DB2
00C90086 Tentative d’accès sur TableSpace utilisé par un utilitaire et qui n’est autorisé que pour un utilitaire.
00C90087 Page cassée. Utilisez l’utilitaire REPAIR pour réparer la page cassée.
00C90088 Deadlock : attendre et relancer
00C90089 EDM POOL FULL.Voir équipe système
00C9008B Limite du nombre de Bases définie atteinte.Voir Equipe système
00C9008C Tentative d’accès à un tablespace partitionné alors que l’index de partionnnement n’est pas trouvé
00C9008D même chose que 00C9008C
00C9008E Time Out, le verrou ne peut pas être pris dans le délai normal prévu pour IRLM.Patienter et recommencer .
00C9008F Taille limite de la base atteinte. Prévenir le système pour une REORG
des TableSpaces de la base.
Une procédure est équivalent a un sous-programme de JCL que l’ont peut appeler par une carte EXEC. Elle s’utilise lors ce que noue avons dans le système un ensemble de carte de JCL, de Bibliothèque … suffisamment standard pour pouvoir être utilisé assez fréquemment dans des travaux différents. C’est le cas par exemple des compilations, des lancements de Logiciels transactionnels des SGBD (système de gestion de donnée).
Une procédure peut contenir des cartes EXEC :
//MYJOB JOB
//STEP1 EXEC PROCD
//FICH DD DSB= ….
//STEP2 EXEC PGM=PROGRAM1
recherche de la procédure catalogué ==>
procédure//PROCD PROC
//STEPA EXEC PGM=PGM1
//FICHENT1 DD DSN= …
//FICHENT2 DD DSN= …
//SYSOUT DD SYSOUT=*
// PEND
//MYJOB JOB
//STEPA EXEC PGM=PGM1
//FICHENT1 DD DSN= …
//FICHENT2 DD DSN= …
//SYSOUT DD SYSOUT=*
//FICH DD DSB= ….
//STEP2 EXEC PGM=PROGRAM1
PROCD : marque le début de la procédure.
PEND : marque la fin de la procédure.
IN STEREAM : utiliser lors de la création de la procédure. Contenue dans la carte JOB qui l’appelle. Ceci n’ayant d’intérêt que pendant la phase de test de la procédure. La procédure est délimitée par les cartes PROC et PEND.
CATALOGUED : il s’agit de procédure d’enregistrement définitivement la nouvelle procédure dans une ou plusieurs bibliothèques disponible pour tout le monde. La bibliothèque standard est la SYS1.PROCLIB.
Syntaxe ://name JCLLIB ORDER=(nom_de_bibliotheque,
(nom_de_bibliotheque),….)
La création ce fait au moyen d’un éditeur (exemple SPF) et consiste soit à créer et à tester une procédure IN STEREAM, puis à l’ajouter dans un membre de la bibliothèque des procédures, soit à créer directement le membre dans la bibliothèque puis à écrire directement le membre dans la bibliothèque puis écrire le JCL d’appel.
Le nom de la carte PROC détermine le nom de la procédure. On peut ensuite appeler cette procédure aussi souvent que nécessaire dans le même JOB.
Exemple :
//MYJOB JOB … //*_______________________________ PROCEDURE DEBUT //MYPROC PROC //PROC1 EXEC PGM=PROGRA1 //STSOUT DD SYSOUT=* //FICENTR1 DD DSN=FIC1.ENTRE … //FICSORT2 DD DSN=FIC1.SORTI …
//PROC2 EXEC PGM=PROGRA2 //SYSOUT DD SYSOUT=*
// … // PEND //*________________________________PROCEDURE FIN //STEP1 EXEC PGM=PROGRAM3 // …
Contenu de la procédure cataloguée par exemple dans SYS1.PROCLIB :
//MYPROC PROC
//PROC1 EXEC PGM=PGM1
//SYSOUT DD SYSOUT=*
//FICENTR DD DSN=FIC.ENTRE1 …
//FICSOR DD DSN=FIC.SORTI1 …
//PROC2 EXEC PGM=PGM2
//SYSOUT DD SYSOUT=*
// …
Le nom de la procédure est donné par le nom du membre qui la contient, et non pas par le nom de la carte PROC. Si la carte PROC ne contient pas de paramètre, elle est facultative, ce qui est le cas de cet exemple.
Appel de la procédure :
//MYJOB JOB …
//STEP1 EXEC MYPROC
// …
Une procédure est un JCL standardisé, elle ne peut prendre en compte à priori les cas particuliers de tous les utilisateurs. Elle doit donc être donc paramétrable. On sera amené à apporter dynamiquement des modifications au moment de l’appel :
– Modification des cartes EXEC.
– Modification des cartes DD.
– Définition de variables avec valeurs par défaut ou imposées au moment de l’appel.
Lors de l’appel d’une procédure, l’interpréteur recherchera la procédure dans la bibliothèque système ou utilisateur (carte JCLLIB), la fusionnera avec le JCL d’appel et procédera aux modifications demandées par l’appel. Dans le compte rendu d’exécution, on pourra visualiser le résultat de cette fusion dans la mesure où l’on aura codé MSGLEVEL=(1, … )dans la carte JOB.
Distinction entre les différents types de cartes dans la partie JCL IMAGE du compte rendu d’exécution du JOB :
Pour l’ensemble des cartes EXEC de la procédure, les modifications se font dans la carte EXEC d’appel. On peut ajouter, modifier ou supprimer des paramètres (sauf le nom du PGM à exécuter).
La syntaxe générale est la suivante :
Paramètre.(PROCSTEP)=Valeur
PROCSTEP est le nom de l’étape de procédure dans la quelle on veut agir. S’il est omis, le paramètre sera valable pour toutes les étapes de la procédure.
Exemple :
//STEP1 EXEC MYPROC,COD.ET1=O,NE),
// TIME.ET2=(,5)
Règles :
Bien que l’on puisse imbriquer jusqu’à 15 niveau de procédure depuis MVS/ESA SP4, on ne peut pas paramétrer que le premier niveau.
Exemple :
Soit la procédure suivante ://S1 EXEC PGM=MYPROG,PARM=’TOTO’
…//S2 EXEC PGM=PROG2,TIME=1
.. et l’appel de la procédure ://STEP1 EXEC MYPROC,COND.S1=(0,NE),
… Qui apporte les modifications suivantes :
// PARM.S1=,TIME.S2=(,5)
• Ajout de COND dans l’étape S1
• Suppression de PARM dans l’étape S1.
• Modification de TIME dans S2.X/S1 EXEC PGM=MYPROG,COND=(0,NE)
…X/S2 EXEC PGM=PROG2,TIME=(,5)
Se font par l’intermédiaire de cartes DD code dans le JCL d’appel. On peut ajouter ou supprimer des cartes DD.
Syntaxe générale ://PROCSTEP.DDNAME DD
procstep est le nom d’étape de la procédure que l’on veut modifier.
Règles : bien que l’on imbrique 15 niveau de procédure depuis MVS/ESA SP4, on ne peut paramétrer que le premier niveau.
Bien que l’on puisse imbriquer jusqu’à 15 niveau de procédure depuis MVS/ESA SP4, on ne peut paramétrer que le premier niveau.
Exemple :
//S1 EXEC PGM=PROG1
//SYSOUT DD SYSOUT=*
//FICENT DD DSN=I00020.FICENT,DISP=SHR
//S2 EXEC PGM=PROGRAM2
//SYSOUT DD SYSOUT=*
//IMPRIM DD SYSOUT=,copies=2
… et appel de la procedure
//STEP1 EXEC MYPROC
modif Ajout suppression
//S1.FICENT DD DISP=OLD
//S1.FICSOR DD DSN= I00020.FICENT,DISP=SHR
// UNIT=SYSDA,SPACE=(TRK,10),
// DCB=BLKSIZE=120
//S2.IMPRIM DD SYSOUT=A,OUTLIM=1000,COPIES=
Entraîne les modifications suivantes (extrait du JCL image) :
//SEP1 EXEC MYPROC
XXS1 EXEC PGM=PROG1
XXSYSOUT DD SYSOUT=
X/S1.FICENT DD DSN= I00020.FICENT,DISP=OLD
//S1.FICSOR DD DSN= I00020.FICENT,DISP=SHR
// UNIT=SYSDA,SPACE=(TRK,10),
// DCB=BLKSIZE=120
XXS2 EXEC PGM=PROGRAM2
XXSYSOUT DD SYSOUT=*
X/S2.IMPRIM DD SYSOUT=A,OUTLIM=1000
Modif Ajout
Cas particulier des fichiers concaténés :
Il doit y avoir autant de cartes DD dans le JCL d’appel que dans l’étape de la procédure. Les cartes doivent apparaître dans le même ordre.
Pour modifier un paramètre, on le code dans la carte DD correspondante.
Si aucun paramètre ne doit être changé dans une carte, on code cette carte sans paramètre.
Exemples :
Dans la procédure 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 d’appel de la procédure :
//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 d’appel de la procédure :
//STEPA EXEC PROCA //SX.DD1 DD DSN=I0004.PROJ1,DISP=SHR // DD DSN=I0004.PROJ2,DISP=SHR
On trouve dans le JCL imageX/SXDD1 DD DSN=I0004.PROJ1,DISP=SHR
// DD DSN=I0004.PROJ2,DISP=SHR // DD DSN=LOAD.LOAD2,DISP=SHR
3- Dans le JCL d’appel de la procédure :
//STEPA EXEC PROCA //SXDD1 DD DSN=I0004.PROJ1,DISP=SHR // DD DSN=I0004.PROJ2,DISP=SHR
On trouve dans le JCL image//SXDD1 DD DSN=I0004.PROJ1,DISP=SHR // DD DNS=LOAD.LOAD3,DISP=SHR // DD DSN=I0004.PROJ2,DISP=SHR
Dans une procédure, il est possible de remplacer les valeurs fixes attribuées aux paramètres par des noms de variables symboliques.
Cela augmente la souplesse d’utilisation des procédures que l’on peut alors modifier simplement en changeant les valeurs attribuées aux variables symboliques.
Une variable s’écrit sous la forme :
Paramètre =&nom
Le & permet à l’interpréteur de différencier les variables des valeurs attribuées aux paramètres ordinaires. Pour attribuer une valeur à une variable, on code son nom sans le &.Ceci peut être fait soit au niveau de la carte EXEC d’appel de la procédure, soit au niveau de la carte PROC (facultative pour les procédures cataloguées, obligatoire pour les procédures instream).
La valeur est alors attribuée à toutes les occurrences de la variable symbolique.
La carte PROC permet d’attribuer des valeurs par défaut aux variables de la procédure.
//MYPROC PROC
DUREE=’(,2)’,FIC=TOTO,DISPO=SHR,VERS=M0000,
//
APPLI=COMM,AA=95,QQQ=312
//STEP1 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 précédant &VERS est indispensable pour séparer deux variables dans un nom de fichier.
On attribue les valeurs aux variables, dynamiquement lors de l’exécution de la procédure, en codant les paramètres au niveau de la carte EXEC d’appel. Les valeurs attribuées ainsi remplacent les valeurs codées sur la carte PROC.
Exemple :
Carte d’appel pour la procédure ci-dessus :
//STEP1 EXEC MYPROC,DUREE=1,FIC=’STOCK.DONNEE’,
// APPLI=COMM,VERS=DU280571
L’interpréteur attribuera une durée de une minute et utilisera les fichiers STOCK.DONNEE et COMM.DU280571. :
//STEP1 EXEC PROG=PROGRAM1,TIME=1,PARM=’95312’
//FIC1 DD DSN=STOCK.DONNEE,DISP=SHR
//FIC2 DD DSN=COMM.DU280571,DISP=(NEW,CATLG,DELETE), ..
Remarque : L’attribution dynamique de valeurs à des variables peut également se faire directement dans le JCL, sans avoir à faire appel a une procédure, à l’aide de la carte SET.
Exemple :
//I000AA JOB …..
// SET NOMFIC=’GOR.RESU456.ED56’,IMPR=’RMT231’ //EDIT EXEC PGM=EDITION //ETAT DD DSN=&NOMFIC,DISP=SHR //SORTIE DD SYSOUT=A,DEST=&IMPR
Le JCL soumis sera :
//I000AA JOB …..
// SET NOMFIC=’GOR.RESU456.ED56’,IMPR=’RMT231’ //EDIT EXEC PGM=EDITION //ETAT DD DSN=GOR.RESU456.ED56,DISP=SHR //SORTIE DD SYSOUT=A,DEST=RMT231
Cette carte permet de définir des caractéristiques communes à plusieurs fichiers sysout d’un JOB. Elle s’utilise en association avec le paramètre 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 associés à la carte OUTPUT.
COPIES : même signification que dans la carte DD.
DEFAULT :
YES : Toutes les carte DD définissant des ficher SYSOUT et ne possédant pas le paramètre OUTPUT seront associées à cette carte OUTPUT.
NO : pas d’association 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 l’impression.
Exemple ://JOB1 JOB
//OUT1 OUTPUT CLASS=Z,COPIES=2,DEST=RMT1
//OUT2 OUTPUT CLASS=Y,COPIES=3,DEST=RMT3
//OUT3 OUTPUT CLASS=P,COPIES=1,DEFAULT=YES
//STEP1 EXEC PGM=PGM1
//IMP1 DD SYSOUT=(,),OUTPUT=(.OUT1,.OUT2)
//STEP2 EXEC PGM=PGM2
//IMP2 DD SYSOUT=(,),OUTPUT=*.OUT1
//STEP3 EXEC PGM=PGM3
//IMP3 DD SYSOUT=(,),HOLD=YES
La concaténation permet de définir plusieurs fichiers d’une étape sous un même DDNAME.
Elle n’est utilisable que pour des fichiers en lecture contenant le même type d’informations.
La lecture ce fait en séquence dans l’ordre de présentation des fichiers. On peut concaténer jusqu’à 255 fichiers.
Exemple :
Définition de plusieurs bibliothèques de LOAD modules sous les mêmes 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
Définition des fichiers d’entrée du tri//JOB1 JOB
//STEP1 EXEC PGM=SORT
//SORTIN DD DSN=FIC.TRI1,DISP=SHR
// DD DSN=FIC.TRI2,DISP=SHR
// DD DSN=FIC.TRI3,DISP=SHR
// DD DSN=FIC.TRI4,DISP=SHR
Un DDNAME système est un nom symbolique utilisé pour identifier un fichier ou un périphérique système. Il est généralement utilisé pour accéder aux fichiers système standard tels que SYSIN, SYSOUT, SYSPRINT, SYSUT1, etc.
Le DDNAME est associé à un nom de fichier physique et à des attributs tels que le type de périphérique, le mode d’accès, la disposition du fichier et l’organisation des données. Les DDNAME système permettent de définir les entrées et sorties de données dans les programmes COBOL et sont généralement définis dans les instructions JOB et EXEC du JCL.
LINKLIB LOGIQUE
La Linklib logique est un ensemble de bibliothèques constitué de la SYS1.LINKLIB et de bibliothèques système et privées qui lui sont rattachées. Cet ensemble est défini dans des membres LNKLSTnn de SYS1.PARMLIB.
A partie du moment où un programme que l’on veut exécuter se trouve dans une bibliothèque de la Linklib logique, il n’est pas nécessaire de définir cette bibliothèque dans le JCL.
DEFINITION DE BIBLIOTHEQUE PRIVEES
La recherche d’un programme dans une ou plusieurs bibliothèques privées peut être demandée par l’une des cartes suivantes :
//JOBLIB DD DSN=BIB.LOAD,DISP=SHR
//STEPLIB DD DSN=BIB.LOAD2,DISP=SHR
Exemple ://JOB1 JOB
//JOBLIB DD DSN=BIB.LOAD1,DISP=SHR
//STEP1 EXEC PGM=PROG1
Remarque : a chaque fois que le JOB demande l’exécution d’un programme, le système le recherche dans les bibliothèques de la JOBLIB. Si il n’est pas trouver dans ,la recherche ce poursuit dans la LINKLIB LOGIQUE.
Exemple ://JOB2 JOB
//STEP1 EXEC PGM=PROG2
//STEPLIB DD DSN=BIB.LOAD2,DISP=SHR
Remarque :
Avec une carte STEPLIB, quand l’étape demande l’exécution du programme, le Système le recherche dans la bibliothèque définie par STEPLIB. Sinon il continue sa recherche dans la LINKLIB LOGIQUE. Il n’y aura en aucun cas de recherche dans les bibliothèques éventuellement définie par JOBLIB.
La définition d’un catalogue peut être demandée par l’une des cartes suivantes :
//JOBCAT DD DSN=USER.CAT1,DIS=SHR
//STEPCAT DD DSN=USER.CAT2,DISP=SHR
JOBCAT : un catalogue défini avec une carte JOBCAT sera valable pour toute la durée du JOB. La recherche d’un fichier de fera dans l’ordre suivant :
1) Catalogue défini par JOBCAT
2) Master Catalog
3) Catalogue associé au premier ‘Qualifieur’ du nom du fichier.
Une carte JOBCAT doit obligatoirement être placée entre la carte JOB et la première carte EXEC.
Si il existe une carte JOBCAT doit obligatoirement être placée entre la carte JOB et la première carte EXEC.
SI il existe une carte JOBLIB pour le même 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
//STEP1 EXEC PGM=PROG1
STEPCAT : un catalogue défini par une carte STEPCAT est valable seulement pour la durée du STEP dans la quelle il est défini. La recherche d’un fichier se fait dans l’ordre suivant :
1) Catalogue défini 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 l’étape.
Exemple ://JOB1 JOB
//JOBLIB DD DSN=BIB.LOAD1,DISP=SHR
//STEP1 EXEC PGM=PROG1
//STEPCAT DD DSN=USER.CAT2,DISP=SHR
L’édition des messages programmes est faites sur un fichier SYSOUT défini par une carte :
//SYSOUT DD SYSOUT=classe
Certaines options de debugging cobol nécessitent la présence des cartes suivantes.
//SYSDBOUT DD SYSOUT=classe
//SYSABOUT DD SYSOUT=classe
La sortie de DUMPS peut se faire sur fichier SYSOUT, disque ou bande. Elle est obtenue par l’intermédiaire d’une carte :
//SYSUDUMP DD SYSOUT=classe
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.
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.
//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
//DDNAME DD DUMMY
,DSNAME= ou DSN=
,DISP=
,UNIT=
,VOL=
,SPACE=
,DCB=
,LABEL=
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.
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}
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, …
“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.
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 :
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))
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
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
//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:
//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)
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, …))
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))
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)
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
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
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
Elle permet d’identifier le programme ou la procédure à exécuter.
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 paramètres positionnels et des paramètres à mots-clés. La zone nom de la carte est nécessaire pour faire un référence arrière qu STEP, modifier les paramètres des cartes EXEC et DD dans les procédures cataloguées, effectuer des reprises en début d’étapes ou à un check-point.
Pour l’ensemble de ces besoins, il est recommandé de données au différent STEP d’un JOB des noms différents.
• Si le programme a exécuté n’est pas trouvé le JOB envois un code retour système ABEND S806
• Si la procédure n’est pas trouvée elle envoie un message PROCEDURE NOT FOUND.
//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)
NOM : c’est le nom donné à l’étape par le programmeur. 1 à 8 caractères alphanumériques, le premier étant obligatoirement une lettre.
PGM = : Ce paramètre est positionnel; Il est nécessaire pour demander l’exécution du programme. Il s’agit d’un programme compilé antérieurement. Il ce compose de 8 caractère alphanumérique. Le programme est contenu dans une bibliothèque déclarée système
d’exploitation et le programme et au format LINK-EDIT.
PROC = : Ce paramètre est positionnel. Il est utilisé pour appeler une procédure cataloguée et demander son exécution.
Ce n’est pas un paramètre obligatoire. Il suffit, pour appeler une procédure, de fournir simplement son nom.
ADDRSPC = : Il est à demander le chargement du programme à exécuter soit en mémoire réelle, soit en mémoire virtuelle.
Ordre de priorité du paramètre : Le paramètre ADDRSPC, s’il est codé dans la carte JOB, prime sur les paramètres codés dans une carte EXEC. S’il est codé dans une carte EXEC d’appel de procédure prime sur celui codé dans les cartes EXEC de la procédure.
COND = Ce paramètre permet de donner une ou plusieurs conditions de non exécution d’un STEP.
Prend la forme suivante COND=(Valeur numérique, opérateur,Nom du step).
L’opérateur prend les valeurs suivantes :
Fonctionnement :
Remarque : Si le paramètre COND est fourni dans la carte JOB et dans les cartes EXEC, le système réagit de la façon suivante :
– Si la condition définie dans la carte JOB est réalisée, il y a arrêt du JOB.
– Si non, le système teste la condition définie dans la carte EXEC. En fonction du résultat, il initialise ou n’initialise pas l’étape.
Exemple 1 :
//I000001AS JOB
//STEP1 EXEC PGM=PGM1
//FICENT1 DD DISP=SHR
//FICSOR1 DD DSN=FIC1
Résultat lors de l'exécution -> Returne Code = 0
//STEP2 EXEC PGM=PGM2,COND(0,NE)
//FICENT2 DD DISP=SHR,DSN=FIC1
//FICSOR2 DD DSN=FIC2
Résultat lors de l'exécution -> Returne Code = 8
//STEP3 EXEC PGM=PGM3,COND(0,NE,STEP1)
//FICENT3 DD DISP=SHR,DSN=FIC1
//FICSOR3 DD DSN=FIC3
Résultat lors de l'exécution -> Returne Code = 0
//STEP4 EXEC PGM=PGM4,COND(0,NE,STEP2)
//FICENT4 DD DISP=SHR,DSN=FIC2
//FICSOR4 DD DSN=FIC4
Exemple 2 :
//I000001AS JOB
//STEP1 EXEC PGM=PGM1
//FICENT1 DD DISP=SHR
//FICSOR1 DD DSN=FIC1
Résultat lors de l'exécution -> Returne Code = 0
//STEP2 EXEC PGM=PGM2,COND(0,NE)
//FICENT2 DD DISP=SHR,DSN=FIC1
//FICSOR2 DD DSN=FIC2
Résultat lors de l'exécution -> Returne Code = 8
//STEP3 EXEC PGM=PGM3,COND(0,NE,STEP1)
//FICENT3 DD DISP=SHR,DSN=FIC1
//FICSOR3 DD DSN=FIC3
Résultat lors de l'exécution -> Returne Code = 0
//STEP4 EXEC PGM=PGM4,COND(0,NE,STEP2)
//FICENT4 DD DISP=SHR,DSN=FIC2
//FICSOR4 DD DSN=FIC4
Exemple 2 :
//I000001AS JOB
//STEP1 EXEC PGM=PGM1
//FICENT1 DD DISP=SHR
//FICSOR1 DD DSN=FIC1
Résultat lors de l'exécution -> ABEND
//STEP2 EXEC PGM=PGM2,COND=ONLY
//FICENT2 DD DISP=SHR,DSN=FIC1
//FICSOR2 DD DSN=FIC2
Résultat lors de l'exécution -> Returne Code = 8
//STEP3 EXEC PGM=PGM3,COND=(0,NE,STEP1)
//FICENT3 DD DISP=SHR,DSN=FIC1
//FICSOR3 DD DSN=FIC3
Résultat lors de l'exécution -> Returne Code = 0
//STEP4 EXEC PGM=PGM4,COND=((0,NE,STEP2),EVEN)
//FICENT4 DD DISP=SHR,DSN=FIC2
//FICSOR4 DD DSN=FIC4
Tableaux récapitulatifs des cas possible avec les opérateurs :
DESCRIPTION | Initialiseur étape | Pas d’initialisation de l’étape |
COND=(code,GT) COND=(code,GE) COND=(code,EQ) COND=(code,LT) COND=(code,LE) COND=(code,NE) | RC>=code RC >code RC ≠code RC =<code RC<code RC=code | RC<code RC=<code RC=code RC > code RC>=code RC ≠code |
Tableaux récapitulatifs des cas possible pour EVEN et ONLY :
Spécification de EVEN ou ONLY ? | ABEND étapes précédentes? | TESTS RC satisfaits | INIT étape |
EVEN EVEN EVEN EVEN | NON NON OUI OUI | NON OUI NON OUI | OUI NON OUI NON |
ONLY ONLY ONLY ONLY | NON NON OUI OUI | NON OUI NON OUI | NON NON OUI NON |
NON NON NON NON | NON NON OUI OUI | NON OUI NON OUI | OUI NON NON NON |
PARM : Ce paramètre permet de passer divers paramètres à un programme. Les paramètres pouvant être passés sont :
• Paramètre utilisateur.
• Paramètre compilateur et assembleurs.
• Les paramètres LINK-EDIT.
En ce qui concerne les paramètres utilisateurs, le programmeur doit avoir prévue une zone de réception dans son programme dans la LINKAGE SECTION.
Si la valeur du paramètre contient plusieurs expressions séparées par une virgule, il faut la mettre entre parenthèses ou entre apostrophes, ces caractères n’étant pas transmis au programme.
Si la valeur contient des caractères spéciaux, elle doivent être mise entre parenthèse ou entre apostrophes.
On peut transmettre jusqu’à 100 caractères de paramètres utilisateurs et des paramètres COBOL.
PERFORM : Ce paramètre permet d’affecter le STEP à un groupe de performance particulier.
Si le paramètre PERFORM est aussi codé dans la carte JOB, il primera sur ceux codés dans les différentes cartes EXEC.
Par défaut il le système qui définie le groupe de performance en fonction des paramètre du système.
Un ordre JOB est une instruction utilisée pour décrire et soumettre un travail ou une tâche à exécuter sur un ordinateur central.
L’ordre JOB commence par le mot-clé JOB suivi d’un nom de job, qui est un identificateur unique pour le travail, et d’autres informations telles que l’heure de soumission, la priorité, le compte de facturation, etc.
Les instructions JOB définissent également les bibliothèques de programmes et les fichiers nécessaires pour exécuter le job, ainsi que les paramètres de sortie tels que le nom et le format des fichiers de sortie. Les instructions JOB sont suivies des instructions EXEC, qui définissent les différentes étapes ou tâches à effectuer pour exécuter le job. L’ordre JOB est la première instruction d’un JCL et est obligatoire pour chaque job à exécuter.
//nom JOB infos account
,nom programmeur
,CLASS=classe d’éxecution
,MSGCLASS=classe de sortie
,MSGLEVEL=(a,b)
,NOTIFY=userid_TST
,TYPRUN=SCAN/HOLD
,RESTART=nomd’étape
,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, opération, …
nom : c’est le nom donné au JOB. Il commence en colo3,par un caractère alphabétique, et peut comporter de18 caractères dont 7alphanumérique.
Il est fréquent que ça soit forcement le USERID de l’utilisateur qui exécute le JOB.
Account : paramètre positionnel. Il s’agit d’un paramètre de comptabilisation, permettant par exemple de calculer le coût de développement d’un programme, d’un projet, etc…
CLASS : détermine la classe d’entrée de JOB. Il existe 36 classes numérotées de A à Z et de 0 à 9.Chaque classe est affectée à un groupe de travail ou une catégorie de JOB en fonction de critères spécifiques à l’exploitation. Le Job sera dans cette file d’attente.
MSGLEVEL : permet de préciser le niveau de compte rendu d’exécution que l’on veut obtenir. Comporte deux sous paramètres positionnels.
MSGLEVEL=(JCL,MESSAGES)
JCL | 0 : Seule la carte JOB sera listée. 1 : Toutes les cartes JCL seront éditées, Les procédures appelées seront incluses dans le compte rendu. 2 : Toutes les cartes JCL seront éditées, à l’exclusion des procédures |
MESSAGES | 0 : Les messages de l’allocator et du terminator ne sont pas édités. Toutes fois si une étape se termine anormalement, les massages sont édités. 1 : Tous les messages sont édités. |
En général, il est conseillé de demander le maximum de renseignement, même si cela conduit à éditer plusieurs feuilles de comptes-rendus. Cela est obtenu par les valeurs par défaut(1,1) .
TIME= : Détermine la durée maximum (en temps CPU, processeur) du JOB pour l’ensemble des étapes. Comporte deux sous paramètres positionnels. TIME=(min,s).
min : duré en minute de 0 à 1440.
s : durée en seconde de 0 à 60.
Exemple :
TIME=(5,30) ou TIME=(,10) 10second ou TIME=2 min
Si le temps est dépassée, l’étape en cours sera abandonnée et produit un code retour system : S322
PRTY= : Détermine la priorité affectée au JOB dans les classes d’entrées et de sortie. Les valeurs possibles vont de 0 à 15, 15 étant la plus haut priorité. La valeur standard par défaut est 5. A noter qu’il n’est pas souhaitable d’utiliser systématiquement des priorités élevées, car cela conduit inéluctablement à un engorgement du système. De plus, il existe des routines développées par l’équipe système qui contrôlent la validité de la priorité en fonction par exemple du nom du Job ou du code affaire.
NOTYFY= : permet au système d’avertir l’utilisateur que le job est terminé. Le paramètre est le USERID (identifiant utilisateur) utilisé pour se connecter à TSO.
RESTART= : permet de démarrer l’exécution d’un JOB à une autre étape que la première.
Cela est parfois utile lorsque l’on exécute plusieurs fois le job et que l’on ne désire pas réexecuter les premières étapes. La valeur se code de la façon suivante :
* | Démarrage a la première étape (équivalent à l’absence du paramètre). |
STEPn | Nom de l’étap où l’on veut démarrer l’exécution (stepname). |
STEPn.PROCSTEPm | En cas de démarrage dans une procédure, STEPn indique l’étape d’appel et PROCSTEPm le nom de l’étape de la procédure. |
Exemple :
RESTART=* s’exécute depuis le début
RESTART=EDIT s’exécute depuis l’étape EDIT
RESTART=COMPIL.COB appel de sous JCL.
TYPRUN =SCAN : Permet de soumettre le JOB uniquement au contrôle de l’interpréteur, sans allocation ni exécution. Elle permet un contrôle de syntaxe du JCL.
PASSWORD : Permet de donner un mot de passe donnant accès à des fichiers protégés par RACF. IL est coder avec le paramètre USER est ce constitue de 1 à 8 caractère alphanumérique.
COND= : Permet de donner une ou plusieurs conditions d’arrêt d’un JOB. Le code est un nombre de 0 à 4095 que le système compare avec les codes retours issus des différents STEP.
On pourra donner jusqu’à 8 conditions reliées entre elles par une liaison OU. Voir syntaxe de la carte EXEC.
Exemple : COND=(8,LE)
Exemple de carte JOB :
1-
2-
3-
Tous les paramètres ne sont pas obligatoire, chaque société a ces condition de contrôle et outil technique qui permet la gestion du travail de qualité. Il est recommander pour définir cette carte de demande un exemple sur le site.