Cos'è JCL?

JCL (Job Control Language) è il linguaggio di scripting usato sui mainframe IBM z/OS per descrivere i job batch — quali programmi eseguire, quali dataset leggere e scrivere, quanta CPU e memoria riservare e come reagire in caso di errore. Se una transazione di business tocca un mainframe durante la notte, un job JCL l'ha eseguita.

Piattaforma
IBM z/OS
Scopo
Descrivere job batch
Eseguito da
JES2 / JES3
File tipico
Member JCL in un PDS

Scopo: dire a z/OS cosa fare di notte

z/OS esegue due tipi di lavoro: transazioni online (via CICS o IMS) e batch pianificato. I job batch fanno il lavoro pesante — riconciliazione di fine giornata, esecuzioni di fatturazione, generazione di report, maturazione interessi, modelli attuariali. JCL è il modo in cui gli operatori descrivono quei job al sistema.

Anatomia di un job JCL

Un job JCL ha tre tipi canonici di istruzione.

  • //JOB — la card del job. Identifica chi ha inviato il job e quali risorse può consumare.
  • //EXEC — il passo. Nomina il programma (o la procedura catalogata) da eseguire.
  • //DD — la definizione dei dati. Descrive un input o output di dataset per il passo.

Un job JCL minimo che esegue un programma COBOL leggendo un file e scrivendone un altro si presenta così:

//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=*

Perché JCL è difficile da modernizzare

JCL è ingannevolmente semplice. La vera complessità sta in ciò che tocca:

  • Un singolo member JCL di produzione può invocare cinque procedure catalogate che a loro volta invocano venti altri programmi.
  • I dataset portano un significato non espresso nel JCL — cosa sia davvero un file vive nei copybook, nelle teste degli operatori o da nessuna parte.
  • Le convenzioni di shop (quali return code contano, quali utility vengono chiamate per il restart) non sono quasi mai documentate.

Per questo l'esperienza in JCL è trattata come un asset istituzionale. Perdere un pianificatore senior spesso significa perdere l'unica persona che capisce perché una specifica catena batch notturna gira affidabilmente da vent'anni.

Come Hypercubic lavora con JCL

Hopper scrive e invia JCL, monitora JES e reagisce ai fallimenti dei job — operando z/OS tramite la stessa interfaccia che usano gli operatori senior. HyperDocs mappa ogni member JCL ai programmi, dataset e copybook che tocca, producendo un grafo di dipendenze pronto per audit. HyperTwin cattura la conoscenza tacita di «cosa fa davvero questo job e perché» che i file JCL non esplicitano mai.

Termini correlati

Vedi COBOL, mainframe, JES, dataset, copybook, VSAM e il glossario completo.

Domande frequenti

Cosa significa JCL?
JCL sta per Job Control Language. È il linguaggio di scripting usato sui mainframe IBM z/OS per descrivere job batch — quali programmi eseguire, quali input leggere e dove inviare gli output.
JCL è un linguaggio di programmazione?
Non nel senso usuale. JCL è un linguaggio di descrizione dei job: dice a z/OS quali risorse un job necessita e quali programmi eseguire, ma la logica di business vive nei programmi COBOL, PL/I o Assembler che JCL invoca.
Perché JCL è considerato difficile?
Perché la sintassi è stretta e rigida (sensibile a colonna e punteggiatura), i messaggi di errore sono criptici, e l'ambiente di produzione è spesso pieno di convenzioni specifiche dello shop che vivono solo nelle teste degli operatori senior.
Cos'è un member JCL?
Un member JCL è un file JCL con nome, memorizzato in un dataset partizionato (PDS) o PDSE. Gli shop organizzano il JCL di produzione in librerie di member inviabili per nome — l'equivalente mainframe di una directory di script.
Come aiuta Hypercubic con JCL?
Hopper opera z/OS tramite la stessa interfaccia che usano gli operatori — scrivendo JCL, inviando job a JES e monitorando gli output. HyperDocs mappa ogni member JCL ai programmi, dataset e copybook che tocca. HyperTwin cattura la conoscenza tacita di cosa fa davvero ogni job di produzione e perché.
Cos'è JCL? Job Control Language — Hypercubic - Hypercubic