O que é JCL?

JCL (Job Control Language) é a linguagem de script usada em mainframes IBM z/OS para descrever jobs batch — quais programas rodar, quais datasets ler e escrever, quanta CPU e memória reservar e como reagir quando algo falha. Se uma transação de negócio toca um mainframe durante a noite, um job JCL a executou.

Plataforma
IBM z/OS
Propósito
Descrever jobs batch
Executado por
JES2 / JES3
Arquivo típico
Member JCL em um PDS

Propósito: dizer ao z/OS o que fazer à noite

z/OS executa dois tipos de trabalho: transações online (via CICS ou IMS) e batch programado. Jobs batch fazem o trabalho pesado — conciliação de fim de dia, execuções de faturamento, geração de relatórios, provisionamento de juros, modelos atuariais. JCL é como os operadores descrevem esses jobs ao sistema.

Anatomia de um job JCL

Um job JCL tem três tipos canônicos de instrução.

  • //JOB — o cartão do job. Identifica quem submeteu o job e quais recursos ele pode consumir.
  • //EXEC — o passo. Nomeia o programa (ou procedimento catalogado) a ser executado.
  • //DD — a definição de dados. Descreve uma entrada ou saída de dataset para o passo.

Um job JCL mínimo que executa um programa COBOL lendo um arquivo e escrevendo outro é assim:

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

Por que JCL é difícil de modernizar

JCL é enganosamente simples. A real complexidade está no que ele toca:

  • Um único member JCL de produção pode invocar cinco procedimentos catalogados que por sua vez invocam outros vinte programas.
  • Datasets carregam significado não expresso no JCL — o que um arquivo é vive nos copybooks, nas cabeças dos operadores ou em lugar nenhum.
  • Convenções de shop (quais códigos de retorno importam, quais utilitários são chamados no restart) quase nunca são documentadas.

Por isso a expertise em JCL é tratada como um ativo institucional. Perder um planejador sênior muitas vezes significa perder a única pessoa que entende por que uma cadeia batch noturna específica roda de forma confiável há vinte anos.

Como a Hypercubic trabalha com JCL

Hopper escreve e submete JCL, monitora JES e reage a falhas de jobs — operando z/OS pela mesma interface que os operadores seniores usam. HyperDocs mapeia cada member JCL para os programas, datasets e copybooks que toca, produzindo um grafo de dependências pronto para auditoria. HyperTwin captura o conhecimento tácito de «o que esse job realmente faz e por quê» que os arquivos JCL nunca explicitam.

Termos relacionados

Ver COBOL, mainframe, JES, dataset, copybook, VSAM e o glossário completo.

Perguntas frequentes

O que significa JCL?
JCL significa Job Control Language. É a linguagem de script usada em mainframes IBM z/OS para descrever jobs batch — quais programas rodar, quais entradas ler e para onde enviar saídas.
JCL é uma linguagem de programação?
Não no sentido usual. JCL é uma linguagem de descrição de jobs: diz ao z/OS quais recursos um job precisa e quais programas executar, mas a lógica de negócio vive nos programas COBOL, PL/I ou Assembler que o JCL invoca.
Por que JCL é considerado difícil?
Porque a sintaxe é estrita e inflexível (sensível a coluna e pontuação), as mensagens de erro são crípticas, e o ambiente de produção costuma estar cheio de convenções específicas do shop que vivem apenas nas cabeças dos operadores seniores.
O que é um member JCL?
Um member JCL é um arquivo JCL nomeado, armazenado em um dataset particionado (PDS) ou PDSE. Shops organizam o JCL de produção em bibliotecas de members que podem ser submetidos por nome — o equivalente mainframe a um diretório de scripts.
Como a Hypercubic ajuda com JCL?
O Hopper opera o z/OS pela mesma interface que os operadores usam — escrevendo JCL, submetendo jobs ao JES e monitorando saídas. O HyperDocs mapeia cada member JCL para os programas, datasets e copybooks que toca. O HyperTwin captura o conhecimento tácito do que cada job de produção realmente faz e por quê.
O que é JCL? Job Control Language — Hypercubic - Hypercubic