Translate

Mostrar mensagens com a etiqueta return code. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta return code. Mostrar todas as mensagens

sexta-feira, 9 de janeiro de 2026

💥 FILE STATUS 00… E MESMO ASSIM DEU RUIM? — O LADO SOMBRIO DO VSAM QUE NINGUÉM TE CONTA

Bellacosa Mainframe VSAM e seus File Status


💥 FILE STATUS 00… E MESMO ASSIM DEU RUIM? — O LADO SOMBRIO DO VSAM QUE NINGUÉM TE CONTA

Se você acha que FILE STATUS = só checar 00 e seguir a vida, prepare-se:
👉 é exatamente assim que nascem os bugs mais caros do mainframe.

Hoje vamos abrir a caixa preta do VSAM FILE STATUS no estilo Bellacosa:
sem romantismo, direto na ferida — código, causa e como sair vivo.


🧠 O QUE É FILE STATUS (DE VERDADE)

FILE STATUS é um campo de 2 bytes no COBOL que retorna o resultado de TODA operação de I/O.

💣 Tradução real:

É o único contrato entre seu programa e o VSAM. Ignorou… perdeu o controle.


🔢 MAPA COMPLETO DOS FILE STATUS (VSAM COBOL)

Vamos direto ao que interessa.


✅ SUCESSO (OU QUASE…)

CódigoSignificadoTradução BellacosaAção
00Sucesso“Tudo certo… por enquanto”OK
02Sucesso com duplicidade permitidaRegistro duplicado aceitoValidar regra de negócio

📭 FIM / NÃO ENCONTRADO

CódigoSignificadoTraduçãoAção
10End of FileAcabouFluxo normal
13Nenhum próximo registroCursor inválidoVer START
23Registro não encontrado“Você pediu algo que não existe”Validar chave
35Dataset não encontrado“Você abriu algo que não existe”Ver catálogo

💥 Clássico:

FS=23 não é erro técnico — é erro de lógica.


🔁 DUPLICIDADE / CHAVE

CódigoSignificadoTraduçãoAção
22Duplicate keyJá existeTratar insert
24Boundary violationFora do rangeValidar chave
21Sequência inválidaOrdem erradaOrdenação errada

💣 Esse trio derruba batch inteiro.


⚙️ ERROS DE ACESSO / LÓGICA

CódigoSignificadoTraduçãoAção
34Boundary violation (ESDS/RRDS)Fora do espaçoAjustar definição
41OPEN já executadoReabriu arquivoRevisar fluxo
42CLOSE em arquivo não abertoBagunça de controleAjustar lógica
43REWRITE sem READAtualizando fantasmaCorrigir fluxo
44Record size mismatchLayout erradoRevisar copybook

💥 Esse grupo é:

erro de programador raiz


🔒 LOCK / CONCORRÊNCIA (O TERROR DO ONLINE)

CódigoSignificadoTraduçãoAção
91Lock timeout/deadlock“Outro job está na sua frente”Retry
92Logic errorAcesso inconsistenteRevisar fluxo
93Resource unavailableRecurso indisponívelEsperar/retry

💣 Aqui entra:

  • CICS
  • RLS
  • Batch concorrente

👉 Esse é o mundo real.


💾 ERROS FÍSICOS / INFRA

CódigoSignificadoTraduçãoAção
90Erro geral“Algo deu muito errado”Ver log
94Falha em READ/WRITEProblema físicoVer dataset
97Erro de VSAMFalha internaAnalisar IDCAMS
98File lockedDataset travadoVer enqueue

💥 Tradução:

Aqui você chama o sysprog.


🧨 OS CÓDIGOS QUE MAIS CAEM EM PRODUÇÃO

Top 5 do caos:

  1. 23 → registro não encontrado
  2. 22 → duplicate key
  3. 10 → EOF mal tratado
  4. 91 → lock em produção
  5. 44 → layout errado

👉 Se você nunca viu esses… você ainda não sofreu o suficiente.


🧪 EXEMPLO COBOL (DO MUNDO REAL)

READ ARQ-VSAM
AT END
MOVE '10' TO WS-FS
NOT AT END
CONTINUE
END-READ

IF WS-FS NOT = '00' AND WS-FS NOT = '10'
DISPLAY 'ERRO VSAM: ' WS-FS
PERFORM TRATA-ERRO
END-IF

💡 Bellacosa insight:

Nunca trate só 00. Sempre trate o resto.


⚠️ ARMADILHAS QUE DERRUBAM SISTEMA

🔥 Ignorar FILE STATUS
🔥 Não tratar 23
🔥 Não prever retry para 91
🔥 REWRITE sem READ
🔥 Layout diferente do VSAM

💣 Resultado:

  • dados inconsistentes
  • batch quebrado
  • incidente em produção

🧠 DICAS DE GUERRA (OU SOBREVIVÊNCIA)

✔ Sempre logar FILE STATUS
✔ Criar tabela de tratamento centralizado
✔ Retry inteligente para 91/93
✔ Validar chave antes de acessar
✔ Testar concorrência

👉 E a regra de ouro:

💥 FILE STATUS não é detalhe. É arquitetura.


🧨 EASTER EGG (PRA QUEM É RAIZ)

👉 FILE STATUS 00 não garante sucesso lógico
👉 VSAM pode retornar sucesso e ainda assim você estar lendo dado errado

Sim…

💣 O erro pode ser silencioso


🔥 VSAM RETURN CODE — ANATOMIA COMPLETA (RAIZ MAINFRAME)

Quando você acessa VSAM via COBOL (ou assembler por baixo), o retorno vem em dois níveis:

🧩 1. FILE STATUS (COBOL)

  • 2 bytes
  • Interface simplificada
  • Ex: 00, 10, 21, 23

👉 Isso é só a “versão resumida do erro”


🧠 2. VSAM STATUS (nível real — baixo nível)

Esse é o que você mostrou na imagem:

VSAM-CODE = 08 00 24

👉 Isso vem do REGISTER 15 + feedback interno do VSAM


🧠 ESTRUTURA DO VSAM CODE (3 CAMPOS)

CampoTamanhoOrigemFunção
Return Code1 byteRegister 15Status geral
Function Code1 byteVSAMTipo de operação
Feedback Code1 byteVSAMMotivo detalhado

👉 Total: 3 bytes


🧬 1. REGISTER (R15) — O CARA QUE MANDA

📌 O que é?

No IBM z/OS, o Register 15 (R15) é:

👉 O registrador padrão de retorno de programas


📦 Tamanho:

  • 32 bits (4 bytes) no hardware
  • Mas VSAM usa apenas 1 byte relevante (low-order)

📊 Uso:

  • Indica sucesso ou falha da macro VSAM (GET, PUT, etc.)

Valores típicos:

ValorSignificado
00Sucesso
04Warning
08Erro
12Erro severo

💥 Esse é o “OK/FAIL” da operação


⚙️ 2. FUNCTION CODE — O QUE O VSAM ESTAVA FAZENDO

📌 O que é?

Indica qual operação VSAM estava sendo executada


📦 Tamanho:

  • 1 byte

📊 Uso:

Ajuda a entender o contexto do erro

Exemplos:

CódigoOperação
00Acesso ao cluster base
04Acesso via AIX
08Inserção
0CUpdate
10Delete

💬 Pense como:
👉 “em que momento deu ruim?”


🚨 3. FEEDBACK FIELD CODE — O VERDADEIRO ERRO

📌 O que é?

👉 O coração do diagnóstico VSAM

Mostra exatamente por que falhou


📦 Tamanho:

  • 1 byte

📊 Uso:

Diagnóstico fino (nível sênior)

Exemplos famosos:

CódigoSignificado
00OK
04Duplicate key
08Record not found
0CEnd of dataset
10Length error
24Key out of range
28Sequence error

💥 Esse é o código que resolve incidente em produção


🧠 JUNTANDO TUDO

Exemplo:

VSAM-CODE = 08 00 24
CampoValorSignificado
R1508Erro
Function00Acesso cluster
Feedback24Key out of range

🔄 RELAÇÃO COM COBOL (FILE STATUS)

VSAM internoCOBOL FS
Feedback 0823
Feedback 2421
Feedback 0422

👉 COBOL simplifica — VSAM detalha


💡 RESUMO VISUAL


01 RETURN-STATUS. 05 FS-CODE PIC X(2). 05 VSAM-CODE. 10 VSAM-R15-RETURN PIC S9(4) Usage Comp-5. 10 VSAM-FUNCTION PIC S9(4) Usage Comp-5. 10 VSAM-FEEDBACK PIC S9(4) Usage Comp-5.

[ R15 ] [ FUNC ] [ FEEDBACK ]
↓ ↓ ↓
STATUS OPERAÇÃO CAUSA REAL

⚠️ IMPORTANTE (nível sênior)

👉 O COBOL esconde informação

Se você olha só:

FILE STATUS = 21

👉 Você está vendo só a superfície

💥 O diagnóstico real exige VSAM-CODE


INSIGHT FINAL (estilo Bellacosa)

  • R15 diz “deu erro”
  • Function diz “onde deu erro”
  • Feedback diz “por que deu erro”

🔥 PROVOCAÇÃO FINAL

Se você debuga VSAM só com FILE STATUS…

👉 você está dirigindo o mainframe olhando pelo retrovisor 😏

🎯 CONCLUSÃO (SOCO FINAL)

Se você não domina FILE STATUS…

👉 você não domina VSAM
👉 você não domina batch
👉 você não domina produção

💥 FILE STATUS é o log invisível do seu sistema

Ignore ele…
e o sistema vai te ensinar — da pior forma.