Translate

Mostrar mensagens com a etiqueta Tratamento de Erros. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Tratamento de Erros. Mostrar todas as mensagens

quarta-feira, 5 de novembro de 2025

💣🧠 “TRACE ?R”: O SUPERPODER SECRETO DO REXX QUE TRANSFORMA DEBUG EM INVESTIGAÇÃO FORENSE 🧠💣

 


Bellacosa Mainframe apresenta o Trace no REXX


💣🧠 “TRACE ?R”: O SUPERPODER SECRETO DO REXX QUE TRANSFORMA DEBUG EM INVESTIGAÇÃO FORENSE 🧠💣

Quando um EXEC entra em colapso no z/OS… o verdadeiro programador não entra em pânico. Ele ativa o TRACE.


Existe um momento na vida de todo profissional Mainframe em que o EXEC começa a agir como entidade paranormal.

Você roda o REXX.

Ele:

  • não dá ABEND,
  • não retorna RC,
  • não mostra erro,
  • não funciona,
  • e ainda imprime uma mensagem que parece saída de um ritual obscuro do ISPF.

Você olha para a tela.

A tela olha para você.

E naquele instante nasce a pergunta clássica:

“QUE DIABOS ESSE EXEC ESTÁ FAZENDO?”

É aí que entra uma das ferramentas mais poderosas já criadas no universo IBM:

⚡ TRACE ⚡

Mas este artigo não é apenas sobre TRACE.

É sobre:

  • debugging profissional,
  • tratamento de erros,
  • SIGNAL,
  • RC,
  • traps,
  • investigação de falhas,
  • sobrevivência operacional,
  • e a fina arte de impedir que um EXEC destrua sua sanidade mental às 03:17 da manhã em pleno fechamento bancário.

🏛️ O DIA EM QUE O REXX DECIDIU NÃO FALHAR

Uma das características mais bizarras — e ao mesmo tempo geniais — do REXX é:

Ele tenta NÃO te atrapalhar.

Isso parece bonito…

ATÉ VIRAR UM PESADELO.

Exemplo clássico:

/* REXX */

salario = 5000
bonus = 1200

total = salrio + bonus

say total

Você esperaria:

6200

Mas recebe:

SALRIO1200

Sim.

Porque:

  • salrio não existe,
  • o REXX assume o nome da variável,
  • concatena tudo,
  • e segue a vida como se nada tivesse acontecido.

O programa não explode.

O programa apenas:

  • distorce a realidade,
  • corrompe lógica,
  • e abre um portal dimensional dentro do TSO.

🚨 SIGNAL ON NOVALUE — O “AIRBAG” DO REXX

Todo EXEC profissional deveria começar com:

Signal On Novalue

Sem isso:

  • bugs silenciosos vivem entre nós.

Com isso:

  • variáveis inexistentes são capturadas imediatamente.

🧪 Exemplo Profissional

/* REXX */
Signal On Novalue

nome = "BELLACOSA"

say sobrenome

exit 0

Novalue:
say "ERRO: Variavel nao inicializada!"
say "Linha:" sigl
say sourceline(sigl)
exit 20

Resultado:

ERRO: Variavel nao inicializada!
Linha: 5
say sobrenome

ABSOLUTAMENTE LINDO.

Você:

  • identifica o erro,
  • localiza a linha,
  • entende o problema,
  • salva horas de investigação.

🕵️ TRACE — O CSI DO MAINFRAME

Agora chegamos ao coração da magia.

Trace R

Essa instrução transforma o EXEC em um documentário criminal.

Você começa a enxergar:

  • execução linha por linha,
  • resultados intermediários,
  • expressões,
  • variáveis,
  • comandos host,
  • fluxo lógico.

🔥 Exemplo

/* REXX */
Trace R

a = 10
b = 20
c = a + b

say c

Saída típica:

>>>   "a = 10"
>>> "b = 20"
>>> "c = a + b"
>>> "30"
30

Você literalmente vê o cérebro do EXEC funcionando.


👁️ TRACE ?R — O MODO MATRIX DO REXX

Agora prepare-se.

Porque existe algo ainda mais poderoso:

Trace ?R

O ? ativa:

DEBUG INTERATIVO

Sim.

INTERATIVO.

Em pleno ambiente Mainframe.

Tecnologia ancestral da IBM.


🤯 O QUE ISSO FAZ?

O EXEC:

  • pausa em cada instrução,
  • espera comandos,
  • permite inspeção dinâmica.

Você pode:

  • reexecutar linha,
  • alterar variável,
  • testar expressão,
  • inspecionar ambiente,
  • modificar comportamento em tempo real.

🧠 Exemplo

Trace ?R

x = 10
y = 30
z = x + y

say z

Durante execução você pode digitar:

say x

E o EXEC responde.

É praticamente um:

  • debugger,
  • shell,
  • laboratório interativo,
  • máquina do tempo operacional.

☢️ RC — O NÚMERO QUE DEFINE O DESTINO

No Mainframe existe um conceito sagrado:

RETURN CODE

A variável especial:

rc

contém o retorno do último comando host.


🎯 Exemplo

"LISTDS USER.INVALID.DATASET"

say rc

Se dataset não existir:

8

📜 Convenção clássica IBM

RCSignificado
0Sucesso
4Warning
8Problema provável
12Falha séria
16Caos crescente
20O datacenter está pegando fogo

(Ok… o último é interpretação emocional.)


💀 O ERRO MAIS COMUM DOS INICIANTES

Executar comando host…

e IGNORAR o RC.

Exemplo proibido em 37 países:

"ALLOC FI(TESTE) DA('ARQ.INEXISTENTE') SHR"

"EXECIO * DISKR TESTE"

Se ALLOC falhar:

  • EXECIO também falha,
  • mensagens ficam confusas,
  • debugging vira arqueologia.

✅ Forma correta

"ALLOC FI(TESTE) DA('ARQ.INEXISTENTE') SHR"

If rc <> 0 Then Do
Say "Falha na alocacao!"
Exit 8
End

🧨 SIGNAL ON ERROR — O CAÇADOR DE DESASTRES

Outra arma essencial:

Signal On Error

Agora qualquer comando host com RC ruim:

  • desvia execução,
  • entra no trap,
  • permite recovery.

🛡️ Exemplo corporativo

/* REXX */
Signal On Error

"DELETE USER.PROD.ARQ"

say "Arquivo removido"

exit 0

Error:
say "Falha no comando host"
say "RC =" rc
say "Linha =" sigl
exit 12

🧬 SIGL — A LINHA DO CRIME

A variável:

sigl

contém:

a linha onde o erro ocorreu.

Isso é ouro puro.


🧠 SOURCELINE() — A MEMÓRIA FOTOGRÁFICA DO EXEC

Você pode mostrar exatamente a linha problemática:

say sourceline(sigl)

Exemplo:

"DELETE USER.PROD.ARQ"

O EXEC literalmente aponta:

“FOI AQUI.”


🏴‍☠️ EASTER EGG MAINFRAME #1

Veteranos de REXX frequentemente usam:

Trace ?R

como se fosse um mini TSO dentro do próprio EXEC.

É quase um:

  • “REXXCEPTION”,
  • um EXEC rodando dentro do EXEC,
  • enquanto você conversa com ele durante a execução.

🏴‍☠️ EASTER EGG MAINFRAME #2

Existe uma lenda antiga de operadores que:

  • ativavam TRACE,
  • esqueciam de desligar,
  • geravam SYSOUT gigantesco,
  • e enchiam spool JES2 inteiro.

Moral da história:

Trace O

também salva carreiras.


🏴‍☠️ EASTER EGG MAINFRAME #3

Programador Mainframe raiz não chama bug de bug.

Ele chama de:

  • “anomalia operacional”,
  • “comportamento inesperado”,
  • “efeito colateral do ambiente”,
  • ou:

“funciona em produção.”


⚙️ O VERDADEIRO ENSINAMENTO

Debugging não é apenas corrigir erros.

É:

  • entender fluxo,
  • prever falhas,
  • construir resiliência,
  • escrever automações seguras,
  • proteger produção,
  • facilitar manutenção futura.

🏛️ O MAINFRAME NÃO PERDOA DESCUIDO

Um EXEC mal escrito pode:

  • apagar datasets,
  • travar usuários,
  • consumir spool,
  • quebrar automações,
  • causar RC cascata em batch,
  • gerar incidentes gigantescos.

Por isso programadores experientes:

  • validam RC,
  • usam SIGNAL,
  • usam TRACE,
  • documentam tudo,
  • tratam exceções.

🚀 CONCLUSÃO

REXX parece simples.

Mas por trás da simplicidade existe uma linguagem:

  • elegante,
  • introspectiva,
  • extremamente poderosa,
  • absurdamente avançada para sua época.

E quando você domina:

  • TRACE,
  • SIGNAL,
  • RC,
  • NOVALUE,
  • SOURCELINE,
  • SIGL,

você deixa de apenas “escrever scripts”.

Você começa a construir:

automações enterprise-grade dignas do universo z/OS.

Porque no fim…

o verdadeiro programador Mainframe não teme o erro.

Ele:

  • captura,
  • analisa,
  • documenta,
  • trata,
  • e transforma caos operacional em engenharia confiável.

💙🖥️🚀

sábado, 11 de fevereiro de 2023

Os Holocrons Esquecidos do Tratamento de Erros no IBM Z— O Padawan Aprende a Domar os Abends do Dataset - Parte II

Bellacosa Mainframe e o tratamento de erro em cobol parte II



EXCEPTION/ERROR Procedures em COBOL

Os Holocrons Esquecidos do Tratamento de Erros no IBM Z

Parte 2 — O Padawan Aprende a Domar os Abends do Dataset

VSAM, FILE STATUS 35/39/92/93, Retry, Logging e Frameworks Corporativos de Recuperação

Por Bellacosa Mainframe


"O jovem Padawan abre arquivos. O Cavaleiro verifica FILE STATUS. O Mestre Bellacosa sabe que os datasets possuem personalidade própria e adoram surpreender às duas horas da manhã durante o fechamento do mês."

Mestre Bellacosa


Introdução

Na Parte 1 descobrimos um antigo Holocron do COBOL.

As DECLARATIVES.

Aprendemos que elas são capazes de interceptar falhas de I/O e centralizar tratamentos de erro.

Mas o jovem Padawan ainda não conhece os verdadeiros monstros do universo Batch.

São eles:

  • Dataset inexistente

  • Catálogo inconsistente

  • VSAM corrompido

  • Arquivo aberto por outro job

  • Buffer inválido

  • Erros físicos

  • Timeouts

  • Recursos indisponíveis

E todos possuem um idioma próprio.

O idioma chamado:

FILE STATUS


O que é FILE STATUS?

Talvez seja o mecanismo mais utilizado em COBOL.

Exemplo:

SELECT CLIENTE
       ASSIGN TO ARQCLI
       FILE STATUS IS WS-FS.

Variável.

01 WS-FS PIC XX.

Depois.

OPEN INPUT CLIENTE.

COBOL preenche.

WS-FS

Automaticamente.


Como funciona internamente?

Runtime COBOL.

Recebe retorno.

Do Access Method.

VSAM.

QSAM.

BSAM.


Converte.

Para.

Código.

FILE STATUS.


Visualmente.

OPEN

↓

VSAM

↓

RETURN CODE

↓

Runtime COBOL

↓

FILE STATUS

↓

Programa

Muito eficiente.


Status 00

O preferido.


Significa.

Tudo certo.


Exemplo.

WS-FS = 00

Padawan feliz.


Status 10

Fim arquivo.


Muito comum.

READ CLIENTE

AT END

Status 35

O primeiro monstro.


Arquivo.

Não encontrado.


Exemplo.

Dataset.

Não catalogado.


Resultado.

35

Declarative.

Entra.

Em ação.


Exemplo

USE AFTER STANDARD ERROR PROCEDURE
ON CLIENTE.

Exibe.

ARQUIVO INEXISTENTE

Muito elegante.


Status 39

Outro clássico.


Estrutura incompatível.


Exemplo.

Programa espera.

80 bytes.

Arquivo possui.


Resultado.

39


Muito comum.

Após mudanças.

Copybooks.


Status 90

Pesadelo.


Erro genérico.

VSAM.


Exemplo.

Problema.

Catálogo.


Buffer.


Disco.


Difícil.

Investigar.


Status 92

Muito importante.

Lógica incorreta.


Exemplo.

WRITE.

Em arquivo fechado.


Resultado.


Padawan triste.


Status 93

Recurso indisponível.


Dataset.

Em uso.


Outro job.

Segurando lock.


Resultado.


Framework Bellacosa

Gosto bastante.

Estrutura.

Programa


↓

Erro


↓

Declarative


↓

Logger


↓

Retry


↓

Escalation


↓

MQ


↓

Splunk

Muito utilizada.

Em bancos.


Exemplo completo

Passo 1

Arquivo

SELECT CLIENTE

ASSIGN TO ARQCLI

FILE STATUS WS-FS.

Passo 2

Declarative

DECLARATIVES.

ARQERR SECTION.

USE AFTER STANDARD ERROR PROCEDURE

ON CLIENTE.

Passo 3

Tratamento

ARQERR-PROC.


DISPLAY WS-FS.


PERFORM LOGAR.


PERFORM RETRY.


EXIT.

Passo 4

Fim.

END DECLARATIVES.

Retry

Pouco utilizado.

Mas poderoso.


Exemplo.

Arquivo.

Lock.


Esperar.

5 segundos.


Tentar.

Novamente.


Código.

PERFORM 3 TIMES


OPEN INPUT CLIENTE


IF WS-FS = '00'

EXIT PERFORM


CALL 'CEE3DLY'


END-PERFORM

Muito elegante.


Logging

Sempre.


Registrar.

Timestamp.

Dataset.

Status.

Job.

Step.

Usuário.


Exemplo.

20260626


CLIENTE


STATUS 35


JOB12345

Auditoria.

Excelente.


VSAM

Aqui mora.

Grande parte.

Dos monstros.


KSDS.

ESDS.

RRDS.

VRRDS.


Cada um.

Possui.

Comportamentos.

Diferentes.


INVALID KEY

Muito conhecido.


Exemplo.

READ CLIENTE

INVALID KEY

Mas.

Declaratives.

Podem.

Centralizar.

Tudo.


Como funciona na memória?

Compilador.

Cria tabela.


Arquivo.

Rotina.


Erro.

Dispatcher.

Declarative.


Pouco overhead.


Muito eficiente.


Segurança

Interessante.


Permite.

Auditar.

Tentativas.

Falhas.


LGPD.

SOX.

Compliance.


Excelente.


Curiosidades

Muitos frameworks bancários.

Possuem.

DECLARATIVES.

Centralizadas.


Poucos desenvolvedores.

Percebem.


Curiosidade 2

Algumas empresas.

Geram.

MQ.

Com erros.


Exemplo.

{
"arquivo":"CLIENTE",
"status":"35"
}

Observabilidade.

Moderna.


Curiosidade 3

Splunk.

Elastic.

Grafana.

Podem.

Receber.

Eventos.

COBOL.


Muito interessante.


Bellacosa Best Practices

Sempre.

FILE STATUS.


Sempre.

Logging.


Sempre.

Retry controlado.


Nunca.

Loop infinito.


Nunca.

Ignorar.


Nunca.

Ignorar.


Documente.

Tudo.


O Conselho do Mestre Bellacosa

Datasets possuem humor.

VSAM possui personalidade.

E FILE STATUS possui sabedoria.

O jovem Padawan aprende rapidamente a testar 00.

O Cavaleiro aprende a respeitar 35, 39, 92 e 93.

Mas o Mestre Bellacosa entende algo mais profundo.

Ele sabe que erros de I/O não são exceções.

São eventos inevitáveis.

Eles acontecerão.

Talvez durante um fechamento contábil.

Talvez em uma carga de Open Banking.

Talvez em um batch de 30 milhões de registros.

E quando isso acontecer, não será a velocidade do programa que salvará a madrugada.

Será a qualidade do tratamento de erros.

Porque um bom programa COBOL não é apenas aquele que processa milhões de registros.

É aquele que continua elegante, observável e auditável quando a galáxia dos datasets decide entrar em caos.


Continua na Parte 3

O Lado Sombrio – LE, CICS HANDLE CONDITION, ON EXCEPTION, CEEHDLR, Dumps, Fault Analyzer, IPCS e os Monstros do S0C4.

domingo, 22 de janeiro de 2023

Os Holocrons Esquecidos do Tratamento de Erros no IBM Z – O Despertar das DECLARATIVES - EXCEPTION/ERROR Procedures em COBOL: Parte I

 

Bellacosa Mainframe e o tratamento de erro no Cobol Parte 1

EXCEPTION/ERROR Procedures em COBOL: Os Holocrons Esquecidos do Tratamento de Erros no IBM Z

Parte 1 – O Despertar das DECLARATIVES

Quando o Padawan Descobre que COBOL Possui Seu Próprio Mecanismo Jedi de Tratamento de Erros

Por Bellacosa Mainframe


"Todo Padawan aprende FILE STATUS. Alguns aprendem AT END. Pouquíssimos descobrem que COBOL possui um mecanismo ancestral capaz de interceptar falhas antes que elas se transformem em um ABEND às três da manhã."

Mestre Bellacosa Sysprog Jedi


Introdução

Existe um momento na vida de praticamente todo desenvolvedor COBOL em que ele acredita ter dominado completamente o tratamento de erros.

Ele aprendeu:

FILE STATUS.

Aprendeu:

AT END

Aprendeu:

INVALID KEY

Aprendeu:

ON EXCEPTION

Aprendeu:

ON SIZE ERROR

E então pensa:

Mestre...

Acho que já sei tudo sobre tratamento de erros em COBOL.

O mestre Bellacosa sorri.

Abre um velho manual ANSI COBOL.

Mostra algumas linhas quase esquecidas.

E pergunta:

DECLARATIVES.

ARQ-ERROR SECTION.

USE AFTER STANDARD ERROR PROCEDURE ON ARQUIVO1.

O jovem Padawan arregala os olhos.

O que é isso?

O mestre responde:

Jovem Padawan...

Você acaba de encontrar um dos Holocrons mais antigos e menos estudados do COBOL.


O Grande Mito

Existe um mito bastante difundido.

Muitos acreditam:

COBOL não possui tratamento centralizado de erros.

Na verdade possui.

Há décadas.

E ele atende pelo nome:

DECLARATIVES


O que são DECLARATIVES?

Declaratives são blocos especiais.

São definidos antes da PROCEDURE DIVISION.

Possuem finalidade específica.

Capturar condições excepcionais.


Visualmente.

Programa COBOL


↓

Erro


↓

DECLARATIVES


↓

Tratamento


↓

Continua

ou

Termina

É quase um ancestral dos modernos:

  • try

  • catch

  • exception handler

  • interceptor

  • middleware de erros


Quando surgiu?

Precisamos voltar bastante no tempo.


COBOL-68

Possuía capacidades limitadas.


ANSI COBOL 74

Introduziu mecanismos iniciais.


ANSI COBOL 85

Consolidou.

DECLARATIVES.

USE.

Error Procedures.


IBM manteve suporte.

VS COBOL II.

COBOL for MVS.

Enterprise COBOL.

COBOL 6.5.


Sim.

Em 2026.

Ainda funciona.


Por que quase ninguém usa?

Porque a maioria dos programadores aprende.


FILE STATUS.


INVALID KEY.


AT END.


E para por aí.


As Declaratives ficaram escondidas.

Por décadas.


Muitos profissionais com vinte anos de experiência.

Nunca escreveram uma.


Anatomia das Declaratives

Estrutura.

DECLARATIVES.

ERRO-ARQ SECTION.

USE AFTER STANDARD ERROR PROCEDURE
ON ARQCLIENTE.

TRATA-ERRO.

DISPLAY 'ERRO'.

END DECLARATIVES.

Depois.

PROCEDURE DIVISION.

Muito importante.

Declaratives ficam.

Antes.

Da lógica principal.


O que significa USE?

USE é uma instrução especial.


Ela informa.

Ao runtime.


Quando determinada condição ocorrer.

Execute.

Este bloco.


Exemplo.

USE AFTER STANDARD ERROR PROCEDURE
ON CLIENTES.

Significa.


Se CLIENTES falhar.

Execute.

Esta rotina.


O que é STANDARD ERROR PROCEDURE?

Talvez seja a expressão mais misteriosa.


Significa.

Erros detectados.

Pelo sistema de I/O COBOL.


Exemplos.

OPEN

READ

WRITE

REWRITE

DELETE

START

CLOSE


Falhou.


Declaratives.

Recebem controle.


Primeiro exemplo do Padawan

Passo 1

Arquivo.

SELECT CLIENTE

ASSIGN TO ARQCLI

FILE STATUS WS-FS.

Passo 2

Status.

01 WS-FS.

PIC XX.

Passo 3

Declarative.

DECLARATIVES.


ARQ-ERRO SECTION.


USE AFTER STANDARD ERROR PROCEDURE


ON CLIENTE.


ARQ-ERRO-PROC.


DISPLAY 'ERRO'


WS-FS.


END DECLARATIVES.

Passo 4

Procedure.

PROCEDURE DIVISION.


OPEN INPUT CLIENTE.

Arquivo inexistente.


Declarative executa.


Muito elegante.


Fluxo interno

Visualmente.

OPEN


↓

Erro


↓

Runtime COBOL


↓

Declarative


↓

Retorna


ou


STOP RUN

Quase um middleware.


Memória

Padawan pergunta.

Mestre...

Como isso funciona na memória?

Boa pergunta.


Compilador.

Cria.

Tabelas internas.


Associa.

Arquivo.

Rotina.


Quando erro.

Runtime.

Consulta.

Tabela.


Transfere.

Controle.


Visualmente.

Tabela


CLIENTE


↓

ARQ-ERRO

Sem overhead grande.


Muito eficiente.


Chamada automática

Importante.

Programador.

Não faz.

PERFORM ARQ-ERRO

Runtime.

Faz.

Automaticamente.


Quase.

Interrupção.

Controlada.


Pode haver vários?

Sim.


Exemplo.

CLIENTE


↓

DECL1



PEDIDO


↓

DECL2



ESTOQUE


↓

DECL3

Muito poderoso.


FILE STATUS versus DECLARATIVES

Muitos perguntam.

Qual melhor?


FILE STATUS

Explícito.


Exemplo.

OPEN INPUT ARQ.


IF WS-FS NOT = '00'

Vantagem.

Simples.


Problema.

Repete.

Muito.


DECLARATIVES.

Centralizado.


Muito elegante.


Grande volume.

Melhor.


INVALID KEY

Outra dúvida.


INVALID KEY.

Funciona.

Com VSAM.


Declarative.

Mais abrangente.


Pode capturar.

Vários erros.


Cuidados

Nem tudo.

São flores.


Primeiro.

Evitar.

Lógica complexa.

Dentro.

Declarative.


Segundo.

Não abrir.

Mesmo arquivo.

Novamente.


Terceiro.

Cuidado.

Loops.


Exemplo ruim.

Erro.

Declarative.

READ.

Erro.

Declarative.

Loop.


Muito perigoso.


Performance

Excelente.


Quase.

Zero impacto.


Só executa.

Quando.

Erro.


Em produção.

Pouco custo.


Segurança

Pouco comentado.


Muito útil.

Auditoria.


Exemplo.

Registrar.

Arquivo.

Usuário.

Timestamp.

Erro.


Excelente.

Compliance.


LGPD.

SOX.

Auditoria.


Framework Bellacosa

Gosto bastante.

Modelo.

Declarative


↓

Logger


↓

Dataset LOG


↓

MQ


↓

Splunk


↓

Observabilidade

Muito elegante.


Curiosidades

Pouquíssimos desenvolvedores COBOL modernos.

Conhecem.

DECLARATIVES.


Muitos arquitetos bancários.

Adoram.


Principalmente.

Frameworks.

Antigos.


Curiosidade 2

VS COBOL II.

Utilizava.

Muito.


Hoje.

Menos comum.


Curiosidade 3

CICS.

Possui.

Algo semelhante.


HANDLE CONDITION.


Veremos.

Parte 3.


Bellacosa Best Practices

Sempre.

FILE STATUS.

Mesmo.

Com Declaratives.


Documente.

Tudo.


Não abuse.


Use.

Logging.


Padronize.

Framework.


Não coloque.

Regra negócio.


Somente.

Tratamento.

Erro.


O Conselho do Mestre Bellacosa

Durante décadas, milhares de programadores COBOL trataram erros utilizando IF FILE-STATUS, INVALID KEY e AT END.

E isso funciona muito bem.

Mas escondido nas profundezas dos antigos padrões ANSI existe um mecanismo sofisticado.

Elegante.

Pouco conhecido.

Quase esquecido.

Chamado DECLARATIVES.

Ele lembra uma antiga técnica Jedi.

Não é utilizada todos os dias.

Não é necessária para pequenos programas.

Mas quando um sistema possui dezenas de arquivos, centenas de jobs e requisitos rigorosos de auditoria, observabilidade e recuperação, ela pode transformar um emaranhado de verificações repetitivas em uma arquitetura limpa e centralizada.

Talvez esta seja a principal lição da primeira jornada.

O jovem Padawan verifica FILE STATUS.

O Cavaleiro utiliza ON EXCEPTION.

O Mestre Bellacosa conhece DECLARATIVES.

E o Conselho Jedi do IBM Z sabe exatamente quando utilizá-las.


Continua na Parte 2

O Padawan Aprende a Domar os Abends do Dataset – VSAM, KSDS, FILE STATUS 35/39/92/93, Retry, Logging e Frameworks Corporativos de Recuperação.