| Bellacosa Mainframe e a introdução ao JCL |
Introdução ao JCL
Quando alguém começa a estudar mainframe IBM, rapidamente encontra uma sigla extremamente importante:
JCL
Ela é uma das bases do ambiente z/OS.
Praticamente todo processamento batch no mainframe depende dela.
O que significa JCL?
JCL significa:
Job Control Language
Em português:
Linguagem de Controle de JOBs
Definição simples
O JCL é a linguagem usada para:
executar programas;
controlar JOBs;
manipular datasets;
definir arquivos;
organizar processamento batch no z/OS.
Uma analogia fácil
Imagine uma cozinha industrial.
O cozinheiro seria:
o programa COBOL.
O JCL seria:
a folha de instruções da cozinha.
Ela informa:
o que executar;
quais ingredientes usar;
onde buscar arquivos;
onde gravar resultados;
ordem das etapas.
O JCL é uma linguagem de programação?
Não exatamente.
Ele é:
uma linguagem de controle.
O JCL não faz cálculos como COBOL.
Ele:
organiza execução;
controla recursos;
conversa com o sistema operacional.
O que o JCL controla?
Programas
COBOL, SORT, DB2, utilitários.
Datasets
Arquivos de entrada e saída.
Recursos
Disco, spool, memória.
Execução batch
Processamento automático.
Estrutura básica de um JCL
Um JCL normalmente possui:
JOB
EXEC
DD
Exemplo simples
//MEUJOB JOB CLASS=A,MSGCLASS=X
//STEP1 EXEC PGM=IEFBR14
//ARQ1 DD DSN=USUARIO.TESTE,
// DISP=SHR
Entendendo linha por linha
JOB
Define o JOB.
EXEC
Executa programa.
DD
Define datasets e arquivos.
O que significa "//"?
Cada instrução JCL começa com:
//
Isso identifica comandos para o z/OS.
O que é JOB?
Primeira instrução do JCL.
Exemplo:
//PAYROLL JOB CLASS=A
Ela define:
nome;
classe;
parâmetros batch.
O que é EXEC?
Executa programas.
Exemplo:
//STEP1 EXEC PGM=COBOLPG
PGM significa:
Program
O que é DD?
DD significa:
Data Definition
Define arquivos usados pelo programa.
Exemplo
//INPUT DD DSN=CLIENTES.ARQ,
// DISP=SHR
O que é DSN?
Dataset Name
Nome do dataset.
O que é DISP?
Define status do dataset.
DISP=SHR
Compartilhado.
DISP=OLD
Uso exclusivo.
DISP=NEW
Novo dataset.
O que é STEP?
Etapa do JOB.
Um JOB pode possuir vários STEPs.
Exemplo
//STEP1 EXEC PGM=SORT
//STEP2 EXEC PGM=COBOLPG
//STEP3 EXEC PGM=IDCAMS
Fluxo simplificado
JCL
↓
JES2
↓
FILA
↓
EXECUÇÃO
↓
SPOOL
↓
SDSF
O que é JES2?
Subsistema que controla:
JOBs;
spool;
filas batch.
O que é spool?
Área temporária onde ficam:
logs;
SYSOUT;
relatórios.
Como executar JCL?
No ISPF:
SUBMIT
O que acontece depois?
O JES2:
valida;
agenda;
executa;
gera spool.
Onde ver resultado?
Normalmente no:
SDSF.
Arquivos importantes do spool
JESJCL
Mostra JCL interpretado.
JESMSGLG
Mensagens JES2.
JESYSMSG
Mensagens do sistema.
SYSOUT
Saída do programa.
O que é SYSOUT?
Saída gerada pelo JOB.
Exemplo:
//SYSOUT DD SYSOUT=*
O que é CLASS?
Classe do JOB.
Controla:
prioridade;
tratamento;
execução.
O que é MSGCLASS?
Classe das mensagens do spool.
O que é COND?
Controla execução condicional.
Exemplo
COND=(0,NE)
O que é PROC?
Procedure.
JCL reutilizável.
Muito usado em produção.
O que é utility?
Programas utilitários do z/OS:
IEBGENER;
SORT;
IDCAMS;
IEHLIST.
Exemplo famoso: IEFBR14
Programa “dummy” muito usado para:
criar;
deletar;
testar datasets.
Exemplo clássico
//STEP1 EXEC PGM=IEFBR14
O JCL ainda é usado hoje?
Muito.
Principalmente em:
bancos;
seguradoras;
governos;
processamento financeiro.
Curiosidades incríveis
1. Muitos JCLs possuem décadas de existência
2. Grandes bancos executam milhões de JOBs JCL diariamente
3. O conceito de batch continua extremamente importante
4. O JCL influenciou vários schedulers modernos
Erros comuns de iniciantes
1. Esquecer "//"
Erro clássico.
2. Dataset inexistente
Muito comum.
3. DISP errado
Pode causar falha ou lock.
4. Ignorar SYSOUT
Ali ficam mensagens importantes.
O que é ABEND?
Erro anormal de execução.
Muito comum em:
JCL;
datasets;
COBOL.
Como JCL aparece no dia a dia?
Praticamente em tudo:
COBOL;
DB2;
SORT;
backups;
integração;
automação;
batch.
Mensagens famosas
$HASP373
JOB iniciado.
$HASP395
JOB finalizado.
Exemplo
$HASP373 PAYROLL STARTED
$HASP395 PAYROLL ENDED
Por que aprender JCL?
Porque ele é:
a espinha dorsal do processamento batch no z/OS.
Quem domina JCL entende:
JOBs;
spool;
JES2;
datasets;
operações mainframe.
Resumo rápido
| Conceito | Significado |
|---|---|
| JCL | Linguagem de controle |
| JOB | Processamento batch |
| EXEC | Executa programa |
| DD | Define datasets |
| JES2 | Gerencia JOBs |
| SDSF | Monitora spool |
| SYSOUT | Saída do JOB |
Conclusão
O JCL é uma das tecnologias mais importantes do ambiente mainframe IBM Z.
Ele controla a execução de JOBs batch, organiza programas e datasets, e permite automatizar o processamento corporativo crítico dentro do z/OS.
Sem comentários:
Enviar um comentário