Translate

Mostrar mensagens com a etiqueta IPCS. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta IPCS. Mostrar todas as mensagens

quarta-feira, 24 de junho de 2026

Os Guardiões Invisíveis do Reino IBM Z ACEE, SAF e APF – As Três Relíquias que Protegem Trilhões de Dólares Todos os Dias

 

Bellacosa Mainframe e os guardioes do reino ibm z acee saf e apf

☕💥 Um Café no Bellacosa Mainframe

Os Guardiões Invisíveis do Reino IBM Z

ACEE, SAF e APF – As Três Relíquias que Protegem Trilhões de Dólares Todos os Dias

Por Vagner Bellacosa – Bellacosa Mainframe

Existe algo curioso sobre segurança em Mainframe.

Quase todo mundo conhece RACF.

Muitos ouviram falar de SAF.

Poucos sabem explicar o que realmente é um ACEE.

E uma quantidade ainda menor entende por que o APF talvez seja um dos componentes mais importantes de toda a arquitetura do z/OS.

A verdade é que, por trás das telas verdes, dos CICS, dos IMS, dos DB2 e dos bilhões de transações financeiras processadas diariamente, existe um pequeno conjunto de tecnologias silenciosas que trabalha vinte e quatro horas por dia, sete dias por semana, há décadas, praticamente sem reconhecimento.

São os verdadeiros guardiões do Reino IBM Z.

E talvez seja hora de apresentar estes personagens aos novos Padawans do z/OS.

O Reino IBM Z

Gosto bastante de utilizar uma analogia medieval para explicar segurança no Mainframe.

Imagine um enorme castelo.

Existem bibliotecas.

Existe um tesouro.

Existem escribas.

Existem correios.

Existem soldados.

Existe um cartório.

E existe o Rei.

No Reino IBM Z, podemos imaginar algo semelhante.

CICS é a administração do castelo.

IMS é o departamento financeiro.

DB2 é a biblioteca.

MQ é o correio.

USS é o bairro moderno onde vivem os moradores Unix.

SMF é o historiador oficial.

RACF é o cartório real.

O Sysprog é o guardião das chaves.

Mas três personagens trabalham praticamente o tempo inteiro.

SAF.

ACEE.

APF.

Eles são pouco conhecidos pelos desenvolvedores COBOL.

Quase invisíveis para operadores.

E absolutamente fundamentais para os Sysprogs.

SAF – O Porteiro Invisível

Um dos maiores equívocos entre profissionais iniciantes é acreditar que CICS conversa diretamente com RACF.

Ou que DB2 consulta diretamente o RACF.

Ou ainda que MQ valida permissões diretamente no banco de dados de segurança.

Na realidade, quase todos os produtos do z/OS conversam primeiro com o SAF.

SAF significa System Authorization Facility.

Ele pode ser entendido como um grande barramento de segurança.

Ou melhor.

Um porteiro.

Imagine uma recepção sofisticada na entrada do castelo.

Toda pessoa que deseja entrar em uma sala precisa passar pela recepção.

A recepcionista não toma decisões.

Ela apenas consulta o cartório.

Recebe uma resposta.

E libera ou bloqueia a passagem.

SAF funciona exatamente assim.

Aplicação.

SAF.

RACF.

Resposta.

Isso permite que produtos IBM e produtos terceiros utilizem um mecanismo único de autorização.

Foi uma ideia brilhante da IBM.

Caso contrário, CICS precisaria implementar seu próprio sistema de segurança.

IMS teria outro.

DB2 outro.

MQ outro.

USS outro.

Seria praticamente impossível administrar um ambiente corporativo de grande porte.

Hoje, bilhões de solicitações de segurança passam pelo SAF diariamente.

E a maioria das pessoas sequer percebe sua existência.

ACEE – O Crachá Mágico

Outro personagem pouco conhecido é o ACEE.

Access Control Environment Element.

Se o SAF é o porteiro, o ACEE é o crachá.

Imagine um funcionário chegando ao prédio.

No primeiro acesso ele apresenta documentos.

Passa por verificações.

Tem sua identidade validada.

Recebe um crachá.

A partir daquele momento não precisa mostrar documentos novamente.

Basta apresentar o crachá.

O ACEE funciona exatamente desta maneira.

Quando um usuário faz LOGON no TSO.

Ou acessa um CICS.

Ou estabelece uma sessão SSH.

O RACF executa um VERIFY.

Autentica o usuário.

Cria um ACEE.

E entrega esse contexto de segurança para a aplicação.

O ACEE contém informações extremamente importantes.

Userid.

Grupos.

UID Unix.

Certificados.

Labels.

Atributos especiais.

Contexto OMVS.

Permissões.

Flags.

Tudo armazenado em memória.

O objetivo é simples.

Evitar milhões de consultas desnecessárias ao RACF.

Imagine um banco processando cem mil transações por segundo.

Sem ACEE.

Cada autorização consultaria novamente o banco de segurança.

Seria inviável.

Com ACEE.

O sistema apenas consulta estruturas já residentes em memória.

Menos CPU.

Menos I/O.

Menos contenção.

Maior escalabilidade.

Talvez o ACEE seja um dos control blocks com melhor retorno sobre investimento da história da computação corporativa.

APF – O Selo Dourado do Reino

Mas existe algo ainda mais poderoso.

APF.

Authorized Program Facility.

Este é provavelmente o componente mais respeitado por um Sysprog experiente.

E também um dos mais perigosos.

No Reino IBM Z, podemos imaginar APF como um selo dourado concedido pelo Rei.

Nem todos recebem este selo.

Somente programas altamente confiáveis.

Programas autorizados podem executar serviços privilegiados.

Manipular armazenamento protegido.

Executar operações supervisor state.

Realizar chamadas especiais.

Interagir profundamente com o núcleo do sistema.

Mas isso possui um preço.

Um programa autorizado incorretamente pode comprometer toda a integridade do ambiente.

Por isso, APF é tratado com extremo cuidado.

Para que um módulo seja considerado autorizado normalmente dois requisitos precisam ser atendidos.

Primeiro.

O programa deve possuir AC(1).

Segundo.

A biblioteca onde reside deve estar presente na lista APF.

Caso contrário.

Nada feito.

O z/OS simplesmente não concede os privilégios especiais.

E é justamente isso que protege o sistema.

Quando Tudo Dá Errado

Todo Sysprog eventualmente recebe uma ligação de madrugada.

03:17.

Produção parada.

DB2 acusa segurança.

MQ acusa RACF.

USS apresenta Permission Denied.

CICS responde Not Authorized.

E alguém inevitavelmente diz:

"O problema é no RACF."

Talvez.

Mas talvez não.

O profissional experiente sabe que precisa investigar.

Verificar SMF80.

Consultar zSecure.

Analisar mensagens ICH408I.

Abrir IPCS.

Localizar o ACEE.

Examinar o contexto.

Conferir grupos.

Checar FASTAUTH.

Validar APF.

Verificar classes.

Observar RCs.

Interpretar RSNs.

Porque o dump raramente mente.

As pessoas podem se confundir.

Aplicações podem mascarar erros.

Logs podem induzir interpretações equivocadas.

Mas o dump normalmente conta exatamente a história que aconteceu.

O Segredo do IBM Z

A grande beleza do Mainframe não está apenas em processar milhões de transações.

Está em sua arquitetura.

IBM não criou simplesmente ferramentas.

Criou camadas.

Criou isolamento.

Criou mecanismos de desacoplamento.

Criou contexto.

Criou auditoria.

Criou proteção.

SAF desacopla aplicações do mecanismo de segurança.

ACEE desacopla autenticação das verificações constantes.

APF desacopla programas comuns de funções críticas do sistema operacional.

SMF registra tudo.

ICSF protege chaves.

RACF define regras.

E o Sysprog garante que todas essas peças continuem funcionando em perfeita harmonia.

A Lição Final do Padawan

Talvez a principal lição para um Sysprog iniciante seja entender que segurança no z/OS não é apenas RACF.

Segurança é um ecossistema.

Hardware criptográfico.

ICSF.

SAF.

RACF.

SMF.

APF.

ACEE.

Auditoria.

Processos.

Pessoas.

Boas práticas.

Governança.

Monitoramento.

E principalmente conhecimento.

Porque no fim das contas, o verdadeiro Guardião do Reino IBM Z não é aquele que apenas executa comandos.

É aquele que compreende por que cada tecnologia foi criada.

Como ela conversa com as demais.

Como diagnosticar seus problemas.

Como protegê-la.

Como evoluí-la.

E como garantir que, mesmo às três horas da manhã, quando o telefone tocar e alguém disser que o RACF está quebrado, ele consiga abrir um dump, seguir o caminho até o ACEE, verificar o contexto SAF, analisar APF e devolver ao Reino IBM Z aquilo que ele faz melhor há décadas:

Disponibilidade.

Integridade.

Confidencialidade.

E a tranquilidade de saber que trilhões de dólares continuam circulando silenciosamente pelo mundo, protegidos por tecnologias que quase ninguém vê, mas que todo Sysprog deveria conhecer profundamente.

"O RACF conhece as leis. O SAF atende as portas. O ACEE acompanha o viajante. O APF protege os segredos do castelo. E o Sysprog mantém o Reino IBM Z de pé, uma madrugada de cada vez."

Bellacosa Mainframe

 

domingo, 3 de maio de 2026

⚡💣 LAB CICS — MEM CRÍTICO 🚨 “QUANDO A MEMÓRIA ACABA… O CICS PEDE SOCORRO” 🚨

 

Bellacosa Mainframe memoria critica no CICS

⚡💣 LAB CICS — MEM CRÍTICO

🚨 “QUANDO A MEMÓRIA ACABA… O CICS PEDE SOCORRO” 🚨

👉 Tema: SOS (Short on Storage) + degradação + decisão de failover


🎬 🎯 CENÁRIO

Você está operando uma região do
IBM CICS

🕐 14:32 — horário crítico
📍 Região: CICSPRD1
📍 Ambiente: Produção


💥 ALERTAS INICIAIS

  • Tempo de resposta subindo
  • Tasks WAITING
  • CPU irregular
  • Storage aumentando rápido

💣 LOGS (CSMT)

DFHSM0133 Short on storage condition detected
DFHSM0606 Storage violation detected

👉 Tradução Bellacosa:

“O CICS está ficando sem memória — e isso escala rápido.”


🧠🔥 FASE 1 — DIAGNÓSTICO INICIAL

🔎 Comando:

CEMT I SYS

🔥 Resultado típico:

  • Storage > 90%
  • Tasks acumulando
  • Sistema degradando

❓ O que você faz?

A) Reinicia CICS
B) Ignora
C) Analisa storage
D) Derruba tudo


✅ RESPOSTA: C

👉 Reiniciar agora pode piorar
👉 Você precisa entender quem está consumindo storage


🔍 FASE 2 — INVESTIGAÇÃO DE STORAGE

🔎 Ver tasks:

CEMT I TASK

👉 Procure:

  • Tasks longas
  • Muitas instâncias
  • Status WAITING

💡 Padrão clássico:

  • Programa não liberando storage
  • Loop com GETMAIN
  • Leak de memória

📊 FASE 3 — IDENTIFICAR VILÃO

🔎 Filtro:

CEMT I TASK TRA(ORDR)

👉 Resultado:

  • Muitas tasks
  • Alto consumo
  • Crescendo continuamente

❓ Diagnóstico provável:

A) CPU
B) Storage leak
C) Rede
D) MQ


✅ RESPOSTA: B

🔥 Você está vendo um memory leak em CICS


☠️💣 FASE 4 — CONTENÇÃO IMEDIATA

Agora vem decisão crítica.

🎯 Objetivo:

  • parar consumo
  • evitar colapso

💥 Ações:

1. Derrubar tasks críticas:

CEMT SET TASK(501) PURGE

Se necessário:

CEMT SET TASK(501) FORCEPURGE

2. Bloquear transação:

CEMT SET TRAN(ORDR) DISABLED

👉 Isso é essencial.


🧬 FASE 5 — SITUAÇÃO PIORA 😈

Mesmo após purge:

  • Storage não libera totalmente
  • Região continua degradando

👉 Isso acontece porque:

  • Fragmentação
  • Storage preso
  • Controle interno comprometido

🚨 FASE 6 — DECISÃO CRÍTICA (NÍVEL SYSPROG)

❓ O que fazer agora?

A) Continuar purge
B) Reiniciar região
C) Acionar failover
D) Ignorar


✅ RESPOSTA IDEAL: C

👉 Você entra no modo resiliência


🌍⚡ FAILOVER COM GDPS

Utilizando:

IBM GDPS


💥 Ação:

  • Transferir workload
  • Ativar região standby
  • Redirecionar usuários

🎯 Resultado esperado:

  • Continuidade de serviço
  • Zero downtime perceptível (ou mínimo)

🧯 FASE 7 — ESTABILIZAÇÃO

Após failover:

  • Região secundária assume
  • Sistema normaliza
  • Usuários voltam

🔬 FASE 8 — ANÁLISE PROFUNDA

Agora você investiga a causa real.

🔎 Ferramentas:

  • IBM IPCS
  • IBM Fault Analyzer

💣 Descoberta:

  • Programa COBOL com loop de GETMAIN
  • Sem FREEMAIN
  • Leak progressivo

🔧 FASE 9 — CORREÇÃO DEFINITIVA

📋 Ações:

  • Corrigir código
  • Garantir FREEMAIN
  • Revisar uso de storage
  • Testar em QA

🧠💡 LIÇÕES DE OURO

👉 SOS nunca é “só performance”
👉 É risco de colapso total

👉 Sempre:

  • monitore storage
  • detecte crescimento anormal
  • tenha failover preparado

🧩😄 EASTER EGGS

  • “SOS não avisa duas vezes”
  • “Se chegou no SOS… alguém esqueceu FREEMAIN”
  • “Memory leak em CICS é assassino silencioso”

🏁 SCORE FINAL

CritérioResultado
Diagnóstico🧠 Excelente
Tempo de reação⚡ Crítico
Contenção🎯 Precisa
Resiliência🛡️ Nível enterprise

🎯💬 FECHAMENTO

Esse lab é o divisor de águas.

👉 Aqui você deixa de ser operador
👉 e vira engenheiro de sobrevivência do mainframe



sábado, 2 de maio de 2026

🚨💥 SIMULADOR CICS — “GUERRA EM PRODUÇÃO” 💥🚨

 

Bellacosa Mainframe apresenta um Simulador CICS

🚨💥 SIMULADOR CICS — “GUERRA EM PRODUÇÃO” 💥🚨

🎮 Modo: Interativo | 🎯 Objetivo: Restaurar o serviço sem causar dano colateral

Você está no comando de uma região do IBM CICS em produção.


🎬 CENÁRIO INICIAL

🕐 10:02 — Pico de acesso
📍 Região: CICS01
📍 Aplicação crítica: pagamentos

💥 Sintomas:

  • Tempo de resposta > 5s
  • CPU subindo rápido
  • Usuários travando
  • Chamados explodindo 😄

🧠 FASE 1 — PRIMEIRA DECISÃO

Você precisa agir rápido.

❓ O que você faz primeiro?

A) Reinicia o CICS
B) Analisa logs e tasks
C) Derruba todas as tasks
D) Ignora (pode ser pico)

👉 Escolha mentalmente antes de continuar


✅ RESPOSTA CORRETA: B

👉 Reiniciar = impacto massivo
👉 Derrubar tudo = caos
👉 Ignorar = carreira curta 😄


🔍 FASE 2 — INVESTIGAÇÃO

Você executa:

CEMT I TASK

🔥 Resultado:

  • 40 tasks da transação PAY1
  • Todas RUNNING
  • Mesmo USERID

❓ Próxima ação?

A) Esperar normalizar
B) Filtrar por transação
C) Derrubar aleatoriamente
D) Reiniciar região

👉 Escolha…


✅ RESPOSTA: B

CEMT I TASK TRA(PAY1)

👉 Agora você tem visibilidade total


📊 FASE 3 — DIAGNÓSTICO

Você analisa uma task:

CEMT I TASK TAS(401)

🔎 Observação:

  • CPU TIME alto
  • STATUS: RUNNING
  • Sem I/O

👉 Isso indica:

A) Espera de recurso
B) Loop CPU
C) Falha de rede
D) Storage baixo


✅ RESPOSTA: B (LOOP CPU)

🔥 Você achou o vilão.


☠️ FASE 4 — DECISÃO CRÍTICA

Agora vem a parte que separa operador de sysprog.

❓ O que fazer?

A) PURGE uma task
B) FORCEPURGE todas
C) Desabilitar transação
D) Nada


✅ RESPOSTA IDEAL: A + C

💥 Execução:

CEMT SET TASK(401) PURGE

Depois:

CEMT SET TRAN(PAY1) DISABLED

👉 Você:

  • remove impacto imediato
  • evita novas ocorrências

🧬 FASE 5 — INVESTIGAÇÃO PROFUNDA

Agora você precisa entender a causa.

💥 Gerar dump:

CEMT SET TRD(PAY1) DUMP

🔎 Análise com:

  • IBM IPCS
  • IBM Fault Analyzer

💣 Resultado:

  • Loop em programa COBOL
  • Falta de condição de saída

👉 Erro clássico de desenvolvimento 😄


🧯 FASE 6 — ESTABILIZAÇÃO

Você monitora:

CEMT I SYS

✅ Resultado:

  • CPU normalizando
  • Tasks reduzindo
  • Usuários voltando

🔧 FASE 7 — PÓS-INCIDENTE

Agora entra maturidade real.

📋 Ações obrigatórias:

  • Corrigir código
  • Criar alerta de CPU
  • Monitorar transação
  • Revisar deploy

🏁 RESULTADO FINAL

🧾 SCORE

CritérioResultado
Tempo de reação⚡ Excelente
Impacto evitado🛡️ Alto
Diagnóstico🧠 Correto
Ação🎯 Precisa

👉 🎉 Você salvou a produção.


🧩😄 VARIAÇÕES DO SIMULADOR (PRÓXIMO NÍVEL)

Se quiser evoluir o treinamento:

💣 Cenário 2

  • Deadlock com DB2

💥 Cenário 3

  • MQ travando fila

🔥 Cenário 4

  • SOS (Short on Storage)

⚡ Cenário 5

  • Região inteira degradando

🎯💬 FECHAMENTO

Esse tipo de simulador treina:

  • raciocínio sob pressão
  • tomada de decisão
  • domínio real de CICS

👉 Porque no mundo real:

“Quem hesita… derruba produção.”

 

sexta-feira, 1 de maio de 2026

🚨💥 LAB CICS: “A TASK QUE PAROU A EMPRESA” — DO CAOS À RECUPERAÇÃO 💥🚨

 

Bellacosa Mainframe desafio LAB C|ICS

🚨💥 LAB CICS: “A TASK QUE PAROU A EMPRESA” — DO CAOS À RECUPERAÇÃO 💥🚨

🎬 🎯 CENÁRIO

📍 Ambiente: Produção
📍 Região: CICS01
📍 Horário: 10:17 (pico)
📍 Sintoma:

  • Usuários travados
  • Tempo de resposta absurdo
  • CPU subindo
  • Reclamação geral 😄

👉 Clássico incidente crítico.


🧠🔥 FASE 1 — DETECÇÃO (O ALERTA)

🔎 Primeira ação: ver mensagens

CEMT I SYS

👉 Você percebe:

  • Tasks acumulando
  • Sistema lento

Agora vá direto ao log:

CEBR CSMT

💣 Você encontra:

DFHAC2001 TRANSACTION PAY1 ABENDED WITH CODE ASRA

👉 Tradução:

  • Programa quebrando (provável S0C4)
  • Pode estar em loop/restart

🕵️‍♂️ FASE 2 — IDENTIFICAR O PROBLEMA

🔍 Listar tasks:

CEMT I TASK

🔥 Saída suspeita:

Tas(000345) Tra(PAY1) Use(APPUSR) Sta(RUN)
Tas(000346) Tra(PAY1) Use(APPUSR) Sta(RUN)
Tas(000347) Tra(PAY1) Use(APPUSR) Sta(RUN)

👉 ALERTA:

  • Mesma transação
  • Mesmo user
  • Muitas instâncias
  • Todas rodando

💡 Possível cenário:

  • Loop
  • Deadlock
  • Programa bugado

🎯 Filtro cirúrgico:

CEMT I TASK TRA(PAY1)

👉 Resultado:

  • 30+ tasks abertas 😄

Agora ficou sério.


📊⚡ FASE 3 — ANÁLISE DE CONSUMO

🔎 Ver comportamento:

CEMT I TASK TAS(345)

👉 Observe:

  • CPU TIME alto
  • STATUS RUNNING contínuo
  • Sem I/O

👉 Isso é clássico:

🔥 LOOP CPU (runaway task)


🧬 FASE 4 — INVESTIGAÇÃO PROFUNDA (DUMP)

Agora você quer prova técnica.

💥 Gerar dump:

CEMT SET TRD(PAY1) DUMP

ou automático via abend


🧠 Análise do dump:

Ferramentas:

  • IBM IPCS
  • IBM Fault Analyzer

🔎 Você encontra:

  • Loop em programa COBOL
  • Parágrafo sem EXIT 😄
  • Variável nunca alterada

👉 Bingo.


☠️💣 FASE 5 — CONTENÇÃO (AÇÃO IMEDIATA)

Agora você precisa salvar o ambiente.

💥 Derrubar tasks:

CEMT SET TASK(345) PURGE

Se resistir:

CEMT SET TASK(345) FORCEPURGE

👉 Repita para as demais:

CEMT I TASK TRA(PAY1)

🚫 Bloquear entrada da transação:

CEMT SET TRAN(PAY1) DISABLED

👉 Isso evita novas execuções


🧯 FASE 6 — ESTABILIZAÇÃO

Agora observe:

CEMT I SYS

👉 Esperado:

  • CPU normalizando
  • Tasks reduzindo
  • Sistema respondendo

💡 Se não normalizar:

  • Ver DB2 locks
  • Ver filas MQ
  • Ver storage

🔧 FASE 7 — CORREÇÃO DEFINITIVA

Agora vem o pós-incidente.

📌 Ações:

  • Corrigir programa COBOL
  • Revisar lógica de loop
  • Adicionar timeout/escape
  • Validar com QA

🧠💡 FASE 8 — LIÇÕES DE OURO

👉 Sempre monitore:

  • Transações com crescimento rápido
  • CPU anormal
  • Tasks duplicadas

👉 Crie alertas para:

  • ASRA recorrente
  • Volume de tasks
  • Tempo de resposta

🧩😄 EASTER EGGS DO LAB

  • “Toda FORCEPURGE tem história”
  • “Loop em COBOL sempre aparece na sexta”
  • “Se tem ASRA em massa… prepara café” ☕

🧪🎯 QUIZ — NÍVEL OPERADOR / SYSPROG

1️⃣ O que indica muitas tasks RUNNING com CPU alto?

A) I/O intenso
B) Loop CPU
C) Problema de rede
D) Storage baixo

👉 Resposta: B


2️⃣ Comando para ver tasks:

A) CEDF
B) CEMT I TASK
C) CICS LIST
D) DISPLAY TASK

👉 Resposta: B


3️⃣ Diferença entre PURGE e FORCEPURGE?

A) Nenhuma
B) FORCEPURGE força finalização imediata
C) PURGE é mais agressivo
D) PURGE mata região

👉 Resposta: B


4️⃣ O que é ASRA?

A) Timeout
B) Falha lógica COBOL
C) Erro de storage/execução
D) Deadlock

👉 Resposta: C


5️⃣ Melhor ação inicial?

A) Reiniciar CICS
B) Derrubar tudo
C) Analisar tasks e logs
D) Ignorar

👉 Resposta: C


🎯💬 FECHAMENTO ESTILO BELLOCAZZA

Ser SysProg de CICS não é saber comando.

É:

  • ler comportamento
  • antecipar desastre
  • agir rápido
  • e salvar produção sem pânico

👉 Porque no mundo real:

“Uma única task errada… pode derrubar milhares de usuários.”

 

domingo, 29 de março de 2026

🔥 VOCÊ USA z/OS TODO DIA… MAS NUNCA VIU ISSO AQUI! O “ESQUELETO INVISÍVEL” DO SYSTEM SERVICES QUE DECIDE SEU JOB VIVE OU MORRE 💀

 

Bellacosa Mainframe fala sobre z/OS system Service Structure

🔥 VOCÊ USA z/OS TODO DIA… MAS NUNCA VIU ISSO AQUI!
O “ESQUELETO INVISÍVEL” DO SYSTEM SERVICES QUE DECIDE SEU JOB VIVE OU MORRE 💀


Se você é dev COBOL raiz, daqueles que já tomou S0C7 no café da manhã e resolveu com dump na unha… segura essa:

👉 Existe uma camada no z/OS que você usa o tempo todo…
👉 Mas quase ninguém entende de verdade…
👉 E ela decide TUDO — do I/O ao ABEND.

Bem-vindo à z/OS System Services Structure.


🧠 O QUE É ESSA TAL DE STRUCTURE?

Pensa no z/OS como uma cidade:

  • Você (COBOL) → é o cidadão
  • JCL → é o pedido formal
  • JES2 → é o correio
  • E o System Services?
    👉 É a prefeitura, polícia, energia, trânsito e bombeiros… TUDO JUNTO.

É a estrutura que fornece serviços fundamentais como:

  • Gerenciamento de tarefas (Task Management)
  • Comunicação entre programas
  • Gerenciamento de memória
  • I/O (entrada/saída)
  • Tratamento de erros (ABENDs 👀)

⚙️ A ESTRUTURA NA PRÁTICA (SEM MIMIMI)

Aqui entra o coração técnico que muita gente ignora:

🔹 Control Blocks (os “documentos secretos”)

  • TCB (Task Control Block) → representa uma task
  • ASCB (Address Space Control Block) → representa o espaço de endereçamento
  • RB (Request Block) → encadeamento de chamadas

💡 Easter egg:
Se você já viu um dump com “TCB=…” e ignorou…
👉 você literalmente ignorou o “RG” da sua task.


🔹 Dispatcher (o maestro invisível)

  • Decide qual task roda
  • Gerencia prioridade
  • Alterna contexto

💬 Comentário Bellacosa-style:

“Se seu programa está ‘lento’, talvez o problema não seja o COBOL…
é o dispatcher dizendo: calma campeão, tem fila 😎”


🔹 SVC (Supervisor Call)

  • Porta de entrada para serviços do sistema
  • Tudo passa por aqui

👉 Quando seu COBOL faz I/O, quem resolve não é ele…
é o z/OS via SVC.

💡 Curiosidade:
SVC é tipo syscall no Linux… só que com terno e gravata 👔


💥 ONDE ISSO TE PEGA (E VOCÊ NEM SABIA)

Se liga nesses cenários:

  • ABEND estranho sem causa aparente
  • Programa “travando” sem loop
  • I/O lento do nada
  • Problemas intermitentes

👉 90% das vezes… está ligado ao System Services, não ao seu código.


🧩 COMO TUDO SE CONECTA (VISÃO RAIZ)

Fluxo simplificado:

  1. Seu COBOL executa
  2. Precisa de recurso (I/O, memória, etc)
  3. Chama um serviço via SVC
  4. System Services aciona control blocks
  5. Dispatcher decide quando executar
  6. Resultado volta pra sua aplicação

👉 Se algo falhar nesse caminho…
💥 ABEND na sua cara


🧠 GUIA DE ESTUDO (MODO GUERREIRO MAINFRAME)

Se você quer sair do nível “codador” e virar engenheiro de verdade, estude isso:

📚 Ordem sugerida:

  1. Address Spaces (ASID, ASCB)
  2. TCB e SRB
  3. Dispatcher e prioridades
  4. SVCs mais comuns
  5. Gerenciamento de memória (GETMAIN/FREEMAIN)
  6. Dump reading (IPCS)

🧪 Dica prática (ouro puro 💰)

Pegue um dump real e procure:

  • TCB atual
  • PSW
  • Última SVC chamada

👉 Isso é mais valioso que 10 cursos teóricos.


🕵️‍♂️ EASTER EGGS QUE POUCA GENTE SABE

💣 1. COBOL NÃO CONTROLA NADA
Quem controla é o z/OS. Seu programa só pede.


💣 2. ABEND NÃO É ERRO — É DECISÃO
O sistema decidiu parar você.
👉 E sempre tem motivo.


💣 3. TUDO É BLOCO ENCADEADO
z/OS é basicamente um grande “linked list corporativo” 😂


💣 4. PERFORMANCE NÃO É SÓ CÓDIGO
Pode ser prioridade de TCB, dispatching, ou contenção.


🚀 FRASE PRA LEVAR PRA VIDA (E PRO LINKEDIN 😎)

“Quem não entende System Services no z/OS…
não depura problema — só apaga incêndio.”


🔥 CONCLUSÃO (SEM ENROLAR)

Se você:

  • Só olha código COBOL → você vê a superfície
  • Entende System Services → você vê o sistema inteiro

👉 E é aqui que mora a diferença entre:

  • Programador
    vs
  • Especialista em Mainframe

sexta-feira, 27 de março de 2026

🔥 COBOL NÃO QUEBROU… FOI O RTM QUE DECIDIU O DESTINO

 

Bellacosa Mainframe explica rtm o grande guarda-costas.

🔥 COBOL NÃO QUEBROU… FOI O RTM QUE DECIDIU O DESTINO

Se você trabalha com COBOL há anos, já viu isso acontecer:

💥 S0C7
💥 S0C4
💥 S878
…e aquele silêncio constrangedor no batch.

E aí vem a pergunta clássica:

👉 “O que aconteceu?”

Errado.

A pergunta certa é:

🧠 “O que o z/OS fez quando isso aconteceu?”

Porque no exato momento do ABEND…
quem assume o controle não é o seu programa.

É o RTM — Recovery Termination Manager.


🧠 O RTM: o juiz invisível do seu programa

O RTM é um componente do z/OS que entra em ação sempre que algo relevante acontece:

  • ✔️ Erro
  • ✔️ Falha
  • ✔️ Terminação normal (sim!)

👉 Ele é responsável por:

  • Capturar o erro
  • Tentar recuperar
  • Decidir o destino
  • Registrar tudo

💡 Tradução Bellacosa:

🔥 “O RTM é quem decide se seu programa vive… ou vira dump.”


🚨 Quando o ABEND acontece (o bastidor real)

Você vê:

S0C7 – erro de dados

O RTM vê:

  • Tipo de exceção
  • Estado da CPU (PSW)
  • Registradores
  • Control blocks
  • Contexto da task

👉 E imediatamente inicia o fluxo:

Erro → RTM → Recovery → Decisão → Dump → Investigação

💡 Isso acontece em milissegundos.


⚙️ Os serviços do RTM (o que ele realmente faz)

1️⃣ Captura do erro (o “detetive”)

O RTM intercepta:

  • Program checks (S0C4, S0C7…)
  • I/O errors
  • Machine checks
  • Falhas de memória

👉 Ele coleta o estado completo do sistema.

💡 Easter egg:

O SDWA é criado aqui — é literalmente o “snapshot do crime”.


2️⃣ Tentativa de recuperação (o “paramédico”)

Aqui entram os famosos:

  • ESTAE → nível da aplicação
  • FRR → nível do sistema

👉 O RTM pergunta:

“Alguém consegue salvar isso?”

💡 Curiosidade:

  • Muitos sistemas robustos usam ESTAE para evitar queda total
  • COBOL “puro” raramente usa diretamente… mas se beneficia disso sem saber

3️⃣ Decisão (o “juiz”)

Depois da tentativa:

  • Continua execução?
  • Finaliza a task?
  • Derruba o address space?

👉 Essa decisão é crítica.

💡 Insight:

Nem todo erro vira ABEND visível — alguns são absorvidos


4️⃣ Geração de evidência (o “perito”)

O RTM gera:

  • SYSUDUMP / SYSABEND / SYSMDUMP
  • SVC dump
  • LOGREC

👉 Isso vira seu material de análise.

💡 Frase forte:

Sem dump, você está cego.


🧹 RTM também limpa a bagunça (e isso é pouco falado)

Agora vem o que pouca gente sabe:

🔥 O RTM também atua quando TUDO DÁ CERTO

Quando seu job termina normalmente:

  • Fecha datasets
  • Libera memória
  • Cancela timers
  • Remove enqueues
  • Limpa control blocks

👉 Isso é feito de forma extremamente eficiente.

💡 Comentário Bellacosa:

“Se o RTM não limpasse… o z/OS virava um lixão em minutos”


🧩 RTM1 vs RTM2 (nível raiz)

🔹 RTM1 (System Level)

  • Falhas do sistema
  • Interface com FRR

🔹 RTM2 (Task Level)

  • Programas (COBOL aqui 👈)
  • Interface com ESTAE

👉 Fluxo clássico:

Erro

RTM1

FRR

RTM2

ESTAE

Decisão

💡 Isso é arquitetura de verdade.


📦 Dumps: o presente que ninguém quer… mas precisa

Tipos que você já viu:

  • SYSUDUMP → básico
  • SYSABEND → completo
  • SYSMDUMP → raiz (hex)

👉 E os de sistema:

  • SVC Dump
  • Standalone Dump

💡 Dica prática:

🔥 “Se o problema é estranho… peça SYSMDUMP”


🗂️ LOGREC: o histórico que salva sua vida

LOGREC guarda:

  • Erros de hardware
  • Eventos do sistema
  • Condições críticas

💡 Dica de ouro:

👉 Sempre comece por LOGREC antes do dump


🧠 SLIP e DAE (nível ninja)

🔹 SLIP

  • Armadilha de erro
  • Dispara dump sob condição

🔹 DAE

  • Evita dumps duplicados

💡 Produção sem isso:

caos + storage cheio


💥 Aplicação prática (COBOL raiz)

S0C7 — o clássico

👉 Normalmente:

  • Dado inválido em campo numérico

Mas o RTM te dá:

  • Instrução que falhou
  • Endereço
  • Conteúdo do campo

💡 Dica prática:

  1. Veja PSW
  2. Ache a instrução
  3. Verifique o dado
  4. Volte no código

🧠 Insight final (o que separa níveis)

❌ Júnior: “Deu S0C7”
❌ Pleno: “Campo inválido”
✅ Sênior: “Eu sei exatamente onde e por quê”


🏁 Conclusão (sem mimimi)

O RTM é:

  • 🔥 O guardião da estabilidade
  • 🔍 O perito do erro
  • ⚖️ O juiz da execução
  • 🧹 O faxineiro do sistema

💬 Frase pra levar pra vida

“COBOL não quebra…
o RTM só revela o que já estava errado.”