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.

Questions fréquentes

Que signifie JCL ?
JCL signifie Job Control Language. C'est le langage de script utilisé sur les mainframes IBM z/OS pour décrire des jobs batch — quels programmes exécuter, quelles entrées lire et où envoyer les sorties.
JCL est-il un langage de programmation ?
Pas au sens habituel. JCL est un langage de description de jobs : il indique à z/OS les ressources dont un job a besoin et quels programmes exécuter, mais la logique métier vit dans les programmes COBOL, PL/I ou Assembleur que JCL invoque.
Pourquoi JCL est-il considéré comme difficile ?
Parce que la syntaxe est stricte et intransigeante (sensible à la colonne et à la ponctuation), les messages d'erreur sont cryptiques, et l'environnement de production est souvent plein de conventions internes qui vivent uniquement dans la tête des opérateurs seniors.
Qu'est-ce qu'un membre JCL ?
Un membre JCL est un fichier JCL nommé, stocké dans un dataset partitionné (PDS) ou PDSE. Les sites organisent le JCL de production en bibliothèques de membres soumissibles par nom — l'équivalent mainframe d'un répertoire de scripts.
Comment Hypercubic aide-t-il avec JCL ?
Hopper opère z/OS par la même interface que les opérateurs — en écrivant du JCL, en soumettant des jobs à JES et en surveillant les sorties. HyperDocs cartographie chaque membre JCL vers les programmes, datasets et copybooks qu'il touche. HyperTwin capture le savoir tacite de ce que chaque job de production fait réellement et pourquoi.
Qu'est-ce que JCL ? Job Control Language — Hypercubic - Hypercubic