Bellacosa Mainframe apresenta Job Control Language JCL
🔥 JCL – Job Control Language: o cérebro silencioso do mainframe em um mundo distribuído
☕ Midnight Lunch no CPD (ou: quando o job ainda manda)
Era hora do midnight lunch. Café requentado, luz fria do CPD, impressora 3211 cuspindo papel contínuo.
O sysprog passa e solta a frase clássica:
“Não é o programa… é o JCL.”
Silêncio respeitoso.
Porque todo mainframer sabe: quem controla o JCL controla o sistema.
Este artigo é sobre JCL (Job Control Language), mas com um tempero moderno:
👉 como o JCL se encaixa — e ainda ensina — no mundo das aplicações distribuídas.
🧠 O que é JCL (para quem já viveu isso, mas nunca parou pra filosofar)
JCL não é linguagem de programação.
JCL é linguagem de orquestração.
Antes de:
YAML
Pipelines CI/CD
Kubernetes
Airflow
Jenkins
…já existia:
📌 JCL diz ao sistema:
O que rodar
Em que ordem
Com quais recursos
Com quais dados
Com quais limites
E como reagir a falhas
Ou seja: governança operacional pura.
🕰️ Um pouco de história (porque mainframer não vive sem contexto)
Anos 60–70: JCL nasce para controlar jobs batch
Anos 80: amadurece com JES2/JES3
Anos 90: integra-se com CICS, DB2, MQ
Anos 2000+: passa a conviver com Unix, web, cloud
Hoje: continua firme, enquanto muita stack moderna muda a cada 6 meses
💡 Curiosidade Bellacosa:
Muita ferramenta “moderna” só redescobriu conceitos que o JCL já fazia bem desde o século passado.
🌐 Aplicações distribuídas explicadas para mainframers
Vamos traduzir para o dialeto JCL.
Uma aplicação distribuída é como um job com vários steps rodando fora do z/OS, em máquinas diferentes, falando por mensagens.
Analogia direta
| Mundo Distribuído | Mundo JCL |
|---|---|
| Microservice | STEP bem definido |
| Pipeline CI/CD | Job com múltiplos EXEC |
| Scheduler | JES |
| Retry automático | RESTART |
| Timeout | TIME |
| Logs | SYSPRINT / SMF |
| Orquestração | JOB statement |
👉 JCL foi um “orquestrador” décadas antes da palavra existir.
🧩 O JOB statement: o “manifest.yaml” do mainframe
No mundo moderno, você descreve tudo em um manifesto.
No mainframe, isso sempre existiu:
Aqui você define:
Prioridade
Tempo de CPU
Memória
Classe de execução
Comportamento operacional
💡 Easter Egg:TIME=0 é o “unlimited resources” do mundo mainframe — usado com responsabilidade, claro 😈
⚙️ Steps, COND e a arte de não rodar o que não precisa
Aplicações distribuídas vivem de fluxos condicionais.
No JCL, isso já existia com classe:
Tradução:
“Se algo deu muito certo, nem roda isso aqui.”
😂
Brincadeiras à parte:
COND evita processamento desnecessário
Reduz custo
Aumenta previsibilidade
👉 Conceito idêntico a short-circuiting em pipelines modernos.
🔄 START, RESTART e resiliência real
No mundo cloud:
“Reprocessa o pipeline”
“Rerun from failed stage”
No mainframe, desde sempre:
START=STEPXRESTART=STEPX
Isso não é detalhe técnico.
Isso é engenharia de confiabilidade.
💡 Curiosidade:
Muitos sistemas distribuídos ainda sofrem para fazer restart idempotente.
No batch mainframe… isso é requisito básico desde o projeto.
📊 Observabilidade: SMF é o avô do tracing distribuído
Hoje falam em:
Logs
Metrics
Traces
No mainframe:
SMF
RMF
JES logs
SYSOUT
📌 O conceito é o mesmo:
“Se eu não consigo medir, eu não consigo operar.”
A diferença?
O mainframe sempre tratou isso como obrigação, não como opcional.
🪜 Passo a passo mental para o mainframer entrar no mundo distribuído
Pense em jobs como pipelines
Pense em steps como microserviços
Pense em JES como scheduler
Pense em SMF como observabilidade
Pense em RESTART como resiliência
Confie: você já sabe mais do que imagina
📚 Guia de estudo recomendado (com cérebro mainframe)
🔹 Conceitos para estudar:
APIs REST
Message Queues
Event-driven architecture
🔹 Faça paralelos:
MQ ↔ Kafka
JCL ↔ YAML
JES ↔ Orquestrador
CICS ↔ API Gateway
🔹 Exercício clássico:
“Se isso fosse um job batch, onde ele falharia?”
🏁 Conclusão – El Jefe fecha a conta
O mundo mudou.
As palavras mudaram.
As ferramentas mudaram.
Mas os princípios…
Orquestração
Controle
Governança
Resiliência
Observabilidade
👉 o JCL já fazia tudo isso.
Por isso, quando alguém diz:
“Mainframe é legado”
O mainframer responde, calmamente, entre um café e outro:
“Legado é aquilo que ainda funciona.”
🔥☕
Sem comentários:
Enviar um comentário