☕🔥 Guia Completo — ABENDs Clássicos do IBM OS/VS e z/OS
Excelente observação!
No resumo anterior realmente ficaram faltando vários ABENDs importantes da lista original do artigo histórico do OS/VS. Agora segue a versão completa, revisada e expandida, incluindo TODOS os códigos mencionados no documento.
🔥 S013 — OPEN ERROR / DCB ERROR
Mensagem comum
IEC141I
O que significa
Falha ao abrir dataset.
Principais causas
BLKSIZE incompatível
RECFM incorreto
LRECL errado
Membro inexistente em PDS
Muito comum em
SORT
COBOL batch
IDCAMS
🔥 S0C1 — OPERATION EXCEPTION
O que significa
Execução de instrução inválida.
Causas
Overlay de memória
Programa corrompido
Executar área de dados como código
Compilação/link incorreto
🔥 S0C4 — PROTECTION EXCEPTION
O clássico absoluto do z/OS
O que significa
Acesso inválido à memória.
Causas comuns
Subscript fora do limite
Ponteiro inválido
Tabela ultrapassada
LINKAGE SECTION incorreta
🔥 S0C5 — ADDRESSING EXCEPTION
O que significa
Tentativa de acessar endereço inexistente.
Muito comum em
CALLs errados
Parâmetros incompatíveis
Ponteiros inválidos
🔥 S0C7 — DATA EXCEPTION
O ABEND mais famoso do COBOL
O que significa
Campo numérico contém valor inválido.
Exemplos clássicos
MOVE 'ABC' TO WS-VALOR-NUM
ADD 1 TO WS-VALOR-NUM
Principais causas
Campo COMP-3 corrompido
Dados não numéricos
Index fora da tabela
Working-storage sem inicialização
🔥 S106 — LINK/LOAD ERROR
O que significa
Falha durante LOAD ou LINK.
Causas
Biblioteca incorreta
Módulo inconsistente
Problema de disco
🔥 S213 — DATASET NOT FOUND
Mensagem comum
IEC143I
O que significa
Dataset inexistente.
Causas
DSNAME errado
Dataset não catalogado
VOL=SER incorreto
🔥 S222 — JOB CANCELADO
Mensagem comum
IEF301I
O que significa
Operador cancelou o job.
Normalmente ocorre por
Loop infinito
Job preso
Alto consumo
🔥 S2F3 — SYSTEM FAILURE
O que significa
Falha do sistema operacional durante execução.
Causas
Crash do sistema
IPL
Problema interno do z/OS
Procedimento
Reexecutar o job
Verificar logs do sistema
🔥 S322 — TIME EXCEEDED
O que significa
Job excedeu o tempo permitido.
Muito comum em
Loops infinitos
SQL sem índice
SORT gigantes
Exemplo
TIME=1
🔥 S613 — TAPE I/O ERROR
Mensagem comum
IEC147I
O que significa
Erro de I/O em fita magnética.
Causas
Fita mal posicionada
Multi-volume incorreto
Problema físico na fita
🔥 S722 — SYSOUT LIMIT EXCEEDED
O que significa
Quantidade de linhas impressas excedeu limite.
Muito comum em
LOOP com DISPLAY
Relatórios infinitos
Dumps excessivos
🔥 S804 — INSUFFICIENT VIRTUAL STORAGE
O que significa
Falta de memória virtual.
Causas
REGION pequena
Programa gigante
Uso excessivo de tabelas
Exemplo
REGION=512K
🔥 S806 — MODULE NOT FOUND
O loader não encontrou o módulo
Causas
STEPLIB errada
LOADLIB ausente
Nome incorreto do programa
Mensagem clássica
CSV003I REQUESTED MODULE NOT FOUND
🔥 S80A — STORAGE SHORTAGE
O que significa
Complemento do S804.
Causa principal
Falta de memória virtual disponível.
🔥 S813 — TAPE LABEL ERROR
Mensagem comum
IEC149I
O que significa
Nome do dataset na fita não bate com DD.
Causas
LABEL incorreto
DSNAME errado
Volume errado
🔥 S913 — RACF SECURITY VIOLATION
Mensagem comum
IEC150I
O que significa
Acesso negado pelo RACF.
Muito comum em
Produção
Db2
GDGs
VSAM corporativo
🔥 SA13 — END OF TAPE / FILE NOT FOUND
Mensagem comum
IEC151I
O que significa
Arquivo não encontrado na fita.
Causas
LABEL incorreto
Número sequencial errado
Volume incorreto
🔥 SB37 — OUT OF SPACE
Mensagem comum
IEC030I
O que significa
Dataset ficou sem espaço.
Causas
Espaço secundário insuficiente
Muitas extents
Volume cheio
🔥 SD37 — NO SECONDARY SPACE
Mensagem comum
IEC031I
O que significa
Acabou espaço primário e não existe secondary allocation.
Exemplo clássico
SPACE=(CYL,(10,0))
🔥 SE37 — EXTENT LIMIT EXCEEDED
Mensagem comum
IEC032I
O que significa
Dataset atingiu limite máximo de extents.
Muito comum em
PDS antigos
SORT gigantes
Arquivos temporários
☕🔥 Os ABENDs Mais Icônicos da História do Mainframe
| ABEND | Significado |
|---|---|
| S0C7 | Data Exception |
| S0C4 | Protection Exception |
| S806 | Module Not Found |
| S913 | RACF Violation |
| SB37 | Dataset sem espaço |
| S322 | Timeout |
| S213 | Dataset não encontrado |
☕ Curiosidade Histórica
Nos tempos do:
OS/360
OS/VS1
OS/VS2
MVS/XA
os operadores praticamente decoravam os ABENDs “na raça”.
Muitos programadores COBOL antigos conseguiam identificar o erro apenas olhando:
IEF450I
ou:
IEC141I
sem precisar abrir dump.
Isso virou quase uma “linguagem secreta” do mundo mainframe.