| Bellacosa Mainframe e o abend s013 |
☕🔥 ABEND S013 — O “GUARDIÃO DOS DATASETS” NO z/OS
Quando o Mainframe Diz:
“VOCÊ ESTÁ TENTANDO USAR O ARQUIVO DO JEITO ERRADO.”
Se existe um ABEND que faz o programador COBOL Junior questionar:
“O problema é no JCL?”
“No arquivo?”
“No DCB?”
“No RECFM?”
“No LRECL?”
“NO UNIVERSO?!”
…esse ABEND é o lendário:
🚨 S013
E normalmente ele aparece assim:
IEC141I 013-20
ou:
ABEND=S013
ou:
IEC141I 013-34
☕ Respira, Padawan.
Porque o S013 é um dos ABENDs MAIS IMPORTANTES para aprender:
dataset organization
DCB
RECFM
LRECL
BLKSIZE
OPEN/CLOSE/EOV
integridade física do arquivo
🔥 O QUE É O S013?
O S013 é um:
🚨 DCB / DATASET OPEN ERROR
Traduzindo:
O z/OS NÃO CONSEGUIU ABRIR O DATASET CORRETAMENTE.
☕ A FILOSOFIA DO S013
O dataset existe.
O JCL existe.
O programa existe.
Mas:
ALGUMA CARACTERÍSTICA DO ARQUIVO NÃO BATE.
🔥 O MAINFRAME É OBCECADO POR ESTRUTURA
No mundo distribuído:
abre arquivo
No z/OS:
qual RECFM?
qual LRECL?
qual BLKSIZE?
FB?
VB?
VBS?
U?
QSAM?
VSAM?
Porque:
arquivo no mainframe é estrutura física rigorosa.
☕ ANALOGIA BELLACOSA MAINFRAME
Imagine um trem tentando entrar num túnel.
Mas:
largura errada
altura errada
trilho incompatível
Resultado:
💥 S013
🔥 O MOMENTO EXATO DO S013
Fluxo:
COBOL OPEN
↓
OPEN/CLOSE/EOV
↓
Validação DCB
↓
Mismatch
↓
S013
☕ O QUE É DCB?
DATA CONTROL BLOCK
O DNA do dataset.
Define:
RECFM
LRECL
BLKSIZE
DSORG
🔥 O S013 MAIS FAMOSO
🚨 S013-20
O rei absoluto dos juniors.
☕ O QUE SIGNIFICA S013-20?
DCB incompatível
Geralmente:
RECFM errado
LRECL errado
programa espera algo diferente
🔥 EXEMPLO CLÁSSICO
Arquivo real:
RECFM=FB
LRECL=80
Mas COBOL define:
FD CLIENTE
RECORD CONTAINS 120 CHARACTERS.
Resultado:
☠️ S013-20
☕ O MAINFRAME OLHA E DIZ
“O TAMANHO NÃO BATE.”
🔥 OUTRO CLÁSSICO
Arquivo:
VB
Programa espera:
FB
Resultado:
💥 S013
☕ FB vs VB — A GUERRA ETERNA
☕ FB
Fixed Block.
Todos registros possuem mesmo tamanho.
☕ VB
Variable Block.
Registros variáveis.
Possui RDW.
🔥 O RDW — O BYTE FANTASMA
VB possui:
Record Descriptor Word
4 bytes extras no início.
Junior esquece isso.
Resultado:
☠️ caos absoluto.
☕ O S013 E O COBOL
Outro clássico:
01 REGISTRO PIC X(100).
Mas dataset:
LRECL=80
Resultado:
💥 S013
🔥 O S013 E O SORT
SORT cria dataset:
VB
Programa batch espera:
FB
Explosão inevitável.
☕ O S013 E O DISP
Outro caso famoso.
//ARQ DD DISP=OLD
Mas dataset não permite acesso correto.
Ou:
está vazio
está corrompido
organização errada
🔥 O S013-14
Muito ligado a:
OPEN ERROR
Problemas físicos/lógicos na abertura.
🔥 O S013-18
Associado a:
DCB inconsistente
🔥 O S013-34
Muito famoso em:
RECFM incompatível
☕ COMO INVESTIGAR O S013 PASSO A PASSO
✅ PASSO 1 — IDENTIFIQUE O SUBCÓDIGO
Exemplo:
013-20
O número após hífen é crucial.
✅ PASSO 2 — IDENTIFIQUE O DDNAME
Mensagem:
IEC141I 013-20,JOB1,STEP01,CLIENTE
DDNAME:
CLIENTE
✅ PASSO 3 — VERIFIQUE O DATASET
Use:
3.4 ISPF
ou:
LISTDSI
Verifique:
RECFM
LRECL
BLKSIZE
DSORG
✅ PASSO 4 — VERIFIQUE O FD COBOL
Exemplo:
FD CLIENTE
01 REG-CLIENTE PIC X(120).
Compare com dataset REAL.
✅ PASSO 5 — VERIFIQUE O JCL
Talvez:
DCB=(RECFM=FB,LRECL=80)
mas programa espera:
120
🔥 O SEGREDO DOS DUMPS
S013 normalmente NÃO exige dump profundo estilo S0C4.
O ouro está nas:
mensagens IEC
☕ AS MENSAGENS IEC SÃO A BÍBLIA
Exemplo:
IEC141I
IEC143I
IEC130I
Elas contam:
dataset
problema
DCB
incompatibilidade
🔥 COMO O VETERANO PENSA
Veterano vê:
013-20
E imediatamente pergunta:
“FB ou VB?”
☕ O MAIOR ERRO DOS JUNIORS
Pensar:
“O problema está no COBOL.”
Frequentemente está em:
JCL
DCB
dataset
utilitário
SORT anterior
🔥 O S013 E O IDCAMS
Outro clássico.
DEFINE CLUSTER cria:
LRECL diferente
Programa usa layout antigo.
Resultado:
💥 S013
☕ O S013 E O GDG
Geração nova criada com DCB errado.
Toda cadeia explode depois.
🔥 O S013 FANTASMA
O mais traiçoeiro.
Problema nasceu:
ontem
Mas explode:
hoje
Porque dataset foi criado incorretamente antes.
☕ O S013 E O “RECFM U”
Modo arquimago ativado.
Datasets:
RECFM=U
são “Undefined”.
Muito usados em:
loadlibs
executáveis
dumps
Ler isso como FB?
☠️ desastre garantido.
🔥 COMO EVITAR S013
✅ Sempre validar RECFM
✅ Sempre validar LRECL
✅ Revisar DCB no JCL
✅ Padronizar copybooks
✅ Conferir SORTs
✅ Verificar geração GDG
✅ Nunca assumir FB/VB
☕ O SEGREDO DO IEBGENER
Ferramenta clássica para testar datasets.
Veteranos usam para:
validar DCB
testar leitura
confirmar estrutura
🔥 CURIOSIDADE HISTÓRICA
O S013 vem dos tempos do:
IBM OS/360
Década de:
🏛️ 1960
Naquela época:
fitas
discos
blocagem física
eram fundamentais.
O sistema precisava garantir:
integridade absoluta da mídia.
☕ EASTER EGG MAINFRAME
Veteranos brincam:
“S013 é o dataset dizendo:
VOCÊ NÃO ME ENTENDE.”
🔥 O MAIOR APRENDIZADO
S013 ensina algo profundo:
NO MAINFRAME, ARQUIVO NÃO É “SÓ UM ARQUIVO”.
É:
geometria
física
organização
blocagem
arquitetura
☕ A VERDADE FINAL
O S0C7 pune números inválidos.
O S0C4 pune memória inválida.
Mas…