Archives par mot-clé : JOB

JCL – Paramètre en commun entre EXEC et JOB

Vous trouverez ci-dessous les paramètres en commun entre EXEC et JOB :

Paramètre de mot-cléDescription
ADDRSPPCADDRSPC codé dans l’instruction JOB remplace l’ADDRSPC codé dans l’instruction EXEC de toute étape de job.
TIMESi TIME est codé dans une instruction EXEC, il s’applique uniquement à cette étape de job.
S’il est spécifié à la fois dans les instructions JOB et EXEC, les deux seront en vigueur et peuvent provoquer une erreur de temporisation due à l’un ou l’autre.
Il n’est pas recommandé d’utiliser le paramètre TIME dans les instructions JOB et EXEC ensemble.
REGIONSi REGION est codé dans une instruction EXEC, il s’applique uniquement à cette étape de travail.

REGION codée dans l’instruction JOB remplace la REGION codée dans l’instruction EXEC de toute étape de job.
CONDUtilisé pour contrôler l’exécution de l’étape de travail en fonction du code de retour de l’étape précédente.

Si un paramètre COND est codé dans une instruction EXEC d’une étape de job, le paramètre COND de l’instruction JOB (s’il est présent) est ignoré.
Les différents tests pouvant être effectués à l’aide d’un paramètre COND sont expliqués dans Traitement conditionnel.

Exemple

Voici un exemple simple de script JCL avec les instructions JOB et EXEC :

//LCDCOBOL JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
//      NOTIFY=&SYSUID
//*
//STEP001 EXEC PGM=MYCOBOL,PARAM=CUST1000,
//      ACCT=(XXXX),REGION=8K,ADDRSPC=REAL,TIME=1440

JCL – Instruction JOB

L’instruction JOB est la première instruction de contrôle dans un JCL.
Cela donne l’identité du travail au système d’exploitation (OS), dans le spool et dans le planificateur.

Les paramètres de l’instruction JOB aident les systèmes d’exploitation à allouer le bon planificateur, le temps CPU requis et à envoyer des notifications à l’utilisateur.

Syntaxe

Voici la syntaxe de base d’une instruction JCL JOB :

//Nom-job JOB Position-param, Keyword-param 

Description

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

Nom-job

Cela donne un identifiant au job lors de sa soumission au système d’exploitation. Il peut être long de 1 à 8 avec des caractères alphanumériques et commence juste après //.

JOB

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

Position-param

Il existe des paramètres positionnels, qui peuvent être de deux types :

Paramètre de positionDescription
Information sur le compteIl s’agit de la personne ou du groupe à qui le temps CPU est dû.
Il est défini selon les règles de l’entreprise propriétaire des mainframes.
S’il est spécifié comme (*), il prend alors l’identifiant de l’utilisateur, qui s’est actuellement connecté au terminal mainframe.
Nom du programmeurCeci identifie la personne ou le groupe qui est en charge du JCL.
Ce paramètre n’est pas obligatoire et peut être remplacé par une virgule.
Keyword-param

Voici les différents paramètres de mot-clé, qui peuvent être utilisés dans l’instruction JOB.
Vous pouvez utiliser un ou plusieurs paramètres en fonction des besoins et ils sont séparés par une virgule :

Paramètre de mot-cléDescription
CLASSEn fonction de la durée et du nombre de ressources requises par l’emploi, les entreprises attribuent différentes catégories d’emplois.
Ceux-ci peuvent être visualisés comme des planificateurs individuels utilisés par le système d’exploitation pour recevoir les travaux.
Placer les travaux dans le bon planificateur facilitera l’exécution des jobs.

Certaines entreprises ont des classes différentes pour les emplois dans les environnements de test et de production.

Les valeurs valides pour le paramètre CLASS sont les caractères de A à Z et les chiffres de 0 à 9 (de longueur 1).

Voici la syntaxe :
CLASS=0 à 9 | A à Z
PRTYPour spécifier la priorité du job dans une classe de job.
Si ce paramètre n’est pas spécifié, le job est ajouté à la fin de la file d’attente dans la CLASS spécifiée.

Voici la syntaxe :
PRTY=N

Où N est un nombre compris entre 0 et 15 et plus le nombre est élevé, plus la priorité est élevée.
NOTIFYLe système envoie le message de réussite ou d’échec (code de condition maximum) à l’utilisateur spécifié dans ce paramètre. 

Voici la syntaxe :
NOTIFY=”userid | &SYSUID”

Ici, le système envoie le message à l’utilisateur “userid” mais si nous utilisons NOTIFY = &SYSUID, alors le message est envoyé à l’utilisateur soumettant le JCL.
MSGCLASSPour spécifier la destination de sortie des messages système et de travail lorsque le travail est terminé.

Voici la syntaxe :
MSGCLASS=CLASS

Les valeurs valides de CLASS peuvent aller de “A” à “Z” et de “0” à “9”.
MSGCLASS = Y peut être défini comme une classe pour envoyer le journal des jobs au JMR (JOBLOG Management and Retrieval : un référentiel dans les mainframes pour stocker les statistiques des jobs).
MSGLEVELSpécifie le type de messages à écrire dans la destination de sortie spécifiée dans MSGCLASS.

Voici la syntaxe :
MSGLEVEL=( ST, MSG )

ST = Type d’instructions écrites dans le journal de sortie
– Lorsque ST = 0, instructions Job uniquement.
– Lorsque ST = 1, JCL ainsi que les paramètres symboliques sont développés.
– Lorsque ST = 2, entrée JCL uniquement.

MSG = Type de messages écrits dans le job de sortie.
– Lorsque MSG = 0, les messages d’allocation et de fin sont écrits à la fin d’un travail anormal.
– Lorsque MSG = 1, les messages d’allocation et de fin sont écrits quelle que soit la nature de l’achèvement du travail.
TYPRUNSpécifie un traitement spécial pour le job. 

Voici la syntaxe :
TYPRUN = SCAN | HOLD

Où SCAN et HOLD ont la description suivante :
– TYPRUN = SCAN vérifie les erreurs de syntaxe du JCL sans l’exécuter.
– TYPRUN = HOLD met le travail en attente dans la file d’attente des jobs.
Pour libérer le job, “A” peut être tapé contre le job dans le SPOOL, ce qui amènera le job à s’exécuter.
TIMESpécifie l’intervalle de temps à utiliser par le processeur pour exécuter le travail.

Voici la syntaxe :
TIME=(mm, ss) ou TIME=ss

Où mm = minutes et ss = secondes

Ce paramètre peut être utile lors du test d’un programme nouvellement codé.
Afin de s’assurer que le programme ne s’exécute pas trop longtemps à cause d’erreurs de bouclage, un paramètre de temps peut être codé de sorte que le programme se termine anormalement lorsque le temps CPU spécifié est atteint.
REGIONSpécifie l’espace d’adressage requis pour exécuter une étape de travail dans le job. 

Voici la syntaxe :
REGION=nK | nM

Ici, la REGION peut être spécifiée comme nK ou nM où n est un nombre, K est un kilo-octet et M est un méga-octet.

Lorsque REGION = 0K ou 0M, le plus grand espace d’adressage est fourni pour l’exécution.
Dans les applications critiques, le codage de 0K ou 0M est interdit pour éviter de gaspiller l’espace d’adressage.

Exemple

//LCDCOBOL JOB (*),"tutpoint",CLASS=6,PRTY=10,NOTIFY=&SYSUID, 
//   MSGCLASS=X,MSGLEVEL=(1,1),TYPRUN=SCAN, 
//   TIME=(3,0),REGION=10K         

Ici, l’instruction JOB est étendue au-delà de la 70e position d’une ligne, nous continuons donc à la ligne suivante qui devrait commencer par “//” suivi d’un ou plusieurs espaces.

Paramètres divers

Il existe peu d’autres paramètres pouvant être utilisés avec l’instruction JOB, mais ils ne sont pas fréquemment utilisés :

ADDRSPPCType de stockage utilisé : Virtuel ou Réel
BYTESTaille des données à écrire dans la log de sortie et action à entreprendre lorsque la taille est dépassée.
LINESNombre maximum de lignes à imprimer dans la log de sortie.
PAGESNombre maximum de pages à imprimer dans la log de sortie.
USERID utilisateur utilisé pour soumettre le job
PASSWORDMot de passe de l’ID utilisateur spécifié dans le paramètre USER.
COND et RESTARTCeux-ci sont utilisés dans le traitement conditionnel des étapes de job et sont expliqués en détail lors de la discussion sur le traitement conditionnel.