Qu'est-ce que JCL ?
JCL (Job Control Language) est le langage de script utilisé sur les mainframes IBM z/OS pour décrire des jobs batch — quels programmes exécuter, quels datasets lire et écrire, combien de CPU et de mémoire réserver, et comment réagir en cas d'échec. Si une transaction métier touche un mainframe pendant la nuit, un job JCL l'a exécutée.
- Plateforme
- IBM z/OS
- But
- Décrire des jobs batch
- Exécuté par
- JES2 / JES3
- Fichier typique
- Membre JCL dans un PDS
But : dire à z/OS ce qu'il doit faire la nuit
z/OS exécute deux types de travail : transactions en ligne (via CICS ou IMS) et batch planifié. Les jobs batch font le gros œuvre — rapprochement de fin de journée, facturation, génération de rapports, accroissement d'intérêts, modèles actuariels. JCL est la façon dont les opérateurs décrivent ces jobs au système.
Anatomie d'un job JCL
Un job JCL possède trois types de déclarations canoniques.
- //JOB — la carte de job. Identifie qui a soumis le job et quelles ressources il peut consommer.
- //EXEC — l'étape. Nomme le programme (ou la procédure cataloguée) à exécuter.
- //DD — la définition de données. Décrit un dataset d'entrée ou de sortie pour l'étape.
Un job JCL minimal exécutant un programme COBOL qui lit un fichier et en écrit un autre ressemble à ceci :
//PAYROLL JOB (ACCT123),'PAYROLL',CLASS=A,MSGCLASS=X //STEP1 EXEC PGM=PAYCALC //INFILE DD DSN=PROD.EMPLOYEE.MASTER,DISP=SHR //OUTFILE DD DSN=PROD.PAYROLL.OUTPUT,DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,5)),DCB=(RECFM=FB,LRECL=132) //SYSOUT DD SYSOUT=*
Pourquoi JCL est difficile à moderniser
JCL est trompeusement simple. La vraie complexité réside dans ce qu'il touche :
- Un seul membre JCL de production peut invoquer cinq procédures cataloguées, qui invoquent à leur tour vingt autres programmes.
- Les datasets portent un sens non exprimé dans le JCL — ce qu'un fichier est réellement vit dans les copybooks, dans la tête des opérateurs, ou nulle part.
- Les conventions internes (quels codes de retour importent, quels utilitaires sont appelés pour redémarrer) ne sont presque jamais documentées.
C'est pourquoi l'expertise JCL est traitée comme un actif institutionnel. Perdre un planificateur senior signifie souvent perdre la seule personne qui comprend pourquoi une chaîne batch nocturne spécifique tourne de manière fiable depuis vingt ans.
Comment Hypercubic travaille avec JCL
Hopper écrit et soumet du JCL, surveille JES et réagit aux échecs de jobs — opérant z/OS par la même interface que celle utilisée par les opérateurs seniors. HyperDocs cartographie chaque membre JCL vers les programmes, datasets et copybooks qu'il touche, produisant un graphe de dépendances prêt pour audit. HyperTwin capture le savoir tacite de « ce que ce job fait réellement et pourquoi » que les fichiers JCL n'explicitent jamais.
Termes liés
Voir COBOL, mainframe, JES, dataset, copybook, VSAM et le glossaire complet.