Translate

Mostrar mensagens com a etiqueta ABEND S213. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta ABEND S213. Mostrar todas as mensagens

sábado, 19 de janeiro de 2013

☕🔥 ABEND S213 — O “GUARDIÃO DO DATASET” NO z/OS

 

Bellacosa Mainframe e o abend S213

☕🔥 ABEND S213 — O “GUARDIÃO DO DATASET” NO z/OS

Quando o Mainframe Diz: “VOCÊ NÃO TEM ACESSO A ISSO!”

Se você é um COBOL Junior Padawan entrando no universo z/OS… cedo ou tarde vai encontrar um dos ABENDs mais clássicos do mundo mainframe:

🚨 S213

E normalmente ele aparece assim:

IEC150I 913-38,IFG0194A,JOBNAME,STEP1,DDNAME,...
IEF450I JOBNAME STEP1 - ABEND=S213 U0000

Ou:

ABEND S213-04
ABEND S213-30
ABEND S213-38

E aí bate o desespero:

“MEU COBOL ESTÁ ERRADO?”
“O JCL ESTÁ QUEBRADO?”
“O DATASET SUMIU?”
“O JES2 ME ODEIA?”

Calma, Padawan. ☕
O S213 é um dos ABENDs MAIS DIDÁTICOS do z/OS.


🔥 O QUE É O ABEND S213?

O S213 é um:

🚨 SYSTEM ABEND

Gerado pelo próprio z/OS durante OPEN do dataset.

Traduzindo:

Seu programa, SORT, IDCAMS, COBOL ou utilitário tentou abrir um dataset…

E o sistema respondeu:

❌ “ACESSO NEGADO.”


🧠 O SIGNIFICADO REAL

O S213 normalmente envolve:

  • Falta de permissão RACF

  • Dataset protegido

  • Tentativa de acesso incompatível

  • Volume incorreto

  • DISPosition inadequado

  • Conflito de acesso

  • Dataset em uso exclusivo

  • Segurança SAF/RACF/A2/TopSecret


☕ A FILOSOFIA DO S213

O S213 NÃO significa necessariamente:

❌ “dataset não existe”

Ele significa:

“O SISTEMA IMPEDIU VOCÊ DE USAR O DATASET.”

Isso é MUITO importante.


🔥 O MOMENTO EXATO DO ABEND

Imagine:

COBOL -> OPEN INPUT CLIENTE

O COBOL chama:

OPEN

O OPEN chama:

OPEN/CLOSE/EOV

O z/OS consulta:

  • Catalog

  • VTOC

  • RACF

  • Volume

  • DISP

  • Integridade

Se algo falha:

💥 S213


🚨 OS SUBCÓDIGOS MAIS COMUNS


🔥 S213-04

Dataset não encontrado no volume especificado

Exemplo:

//ARQ DD DSN=EMPRESA.CLIENTES,
//     VOL=SER=DISK01

Mas o dataset está em:

DISK02

Resultado:

S213-04

🔥 S213-30

Problema de integridade/acesso

Muito comum em:

  • Dataset em uso

  • DISP errado

  • Acesso incompatível

Exemplo clássico:

Dois jobs tentando:

DISP=OLD

ao mesmo tempo.

O sistema protege o dataset.


🔥 S213-38

🚨 O MAIS FAMOSO

FALTA DE AUTORIZAÇÃO (RACF)

O usuário NÃO possui permissão.

Esse é o “Access Denied” do mundo z/OS.


☕ EXEMPLO CLÁSSICO COBOL JUNIOR

Você recebe:

//CLIENTE DD DSN=PROD.CLIENTES.MESTRE,
//            DISP=SHR

Seu COBOL:

OPEN INPUT CLIENTE

Resultado:

IEC150I 913-38
ABEND S213-38

O que aconteceu?

O RACF avaliou:

USER = DEVJR01
RESOURCE = PROD.CLIENTES.MESTRE
ACCESS = READ

E respondeu:

❌ ACCESS DENIED


🔥 COMO O RACF DECIDE ISSO?

O RACF consulta:

  • Perfil do dataset

  • Grupo do usuário

  • ACL

  • Permissões READ/UPDATE/CONTROL/ALTER


🧠 O QUE O JÚNIOR PRECISA APRENDER

Mainframe NÃO é PC.

No Windows:

abre arquivo

No z/OS:

posso abrir?
quem é você?
qual grupo?
qual nível?
dataset protegido?
outro job usando?
qual intenção?

O mainframe assume:

🔐 TUDO É CRÍTICO

Porque geralmente É.


🔥 COMO ANALISAR O S213 PASSO A PASSO

☕ PASSO 1 — IDENTIFIQUE O SUBCÓDIGO

Veja:

S213-38

ou:

IEC150I 913-38

O número após o hífen é o segredo.


☕ PASSO 2 — LOCALIZE O DDNAME

Exemplo:

IEC150I 913-38,IFG0194A,JOB1,STEP01,CLIENTE,...

DDNAME:

CLIENTE

Agora você sabe QUAL dataset causou o erro.


☕ PASSO 3 — VEJA O DSN NO JCL

Procure:

//CLIENTE DD DSN=...

☕ PASSO 4 — ANALISE O DISP

Exemplo problemático:

DISP=OLD

Talvez devesse ser:

DISP=SHR

☕ PASSO 5 — VERIFIQUE RACF

Pergunte:

  • Tenho READ?

  • Tenho UPDATE?

  • O dataset é PROD?

  • Está protegido?


☕ PASSO 6 — ANALISE O JESMSGLG

Ali está a VERDADE.

Muitos juniors olham apenas:

ABEND=S213

Mas o ouro está antes.

Mensagens:

IECxxx
ICH408I
IRRxxxx

contam a história completa.


🔥 O ICH408I — O “DEDO DURO” DO RACF

Quando existe falta de permissão:

ICH408I USER(USER01 ) GROUP(DEV )
NAME(VAGNER )
PROD.CLIENTES.MESTRE CL(DATASET )
INSUFFICIENT ACCESS AUTHORITY
ACCESS INTENT(READ )
ACCESS ALLOWED(NONE )

Aqui o RACF praticamente confessa tudo.


☕ COMO LER ISSO


ACCESS INTENT

O que você tentou fazer.

Exemplo:

READ
UPDATE

ACCESS ALLOWED

O que você realmente possui.

Exemplo:

NONE
READ

🔥 A PEGADINHA DO DISP=MOD

Junior clássico:

DISP=MOD

sem perceber.

O sistema entende:

“ELE QUER ESCREVER.”

Então READ não basta.

Agora precisa UPDATE.

Resultado:

S213-38

☕ O S213 E O OPEN DO COBOL

Outro detalhe importante:

O ABEND normalmente ocorre:

NO OPEN

Não no READ.

Porque o sistema valida o dataset ANTES.

Então:

DISPLAY 'ANTES OPEN'
OPEN INPUT CLIENTE
DISPLAY 'DEPOIS OPEN'

Você verá:

ANTES OPEN

E nunca verá:

DEPOIS OPEN

🔥 COMO ENTENDER O DUMP

O dump do S213 normalmente não exige análise profunda de storage como um S0C7.

O segredo está nas mensagens do sistema.


🧠 ONDE OLHAR

JESMSGLG

Mensagens do sistema.


SYSLOG

Pode conter RACF.


SDSF

  • ST

  • LOG

  • O

  • DA


IPCS (casos extremos)

Raramente necessário para S213 simples.


🔥 A ORIGEM HISTÓRICA

O “S” significa:

SYSTEM ABEND

O número 213 vem das antigas tabelas internas de erros do OS/360.

Estamos falando de uma herança dos anos:

🏛️ 1960

Sim…

Seu S213 possui DNA do OS/360.


☕ CURIOSIDADE HISTÓRICA

Nos anos 70/80:

Operadores aprendiam a reconhecer ABENDs “de ouvido”.

Quando aparecia:

213-38

já sabiam:

“RACF pegou alguém.”


🔥 EASTER EGG MAINFRAME

Muitos veteranos brincam:

“S213-38 é o firewall espiritual do z/OS.”

Porque ele aparece exatamente quando alguém tenta acessar algo proibido.


☕ DIFERENÇA ENTRE S213 E S806

Juniors confundem muito.


S213

Problema com DATASET.


S806

Programa não encontrado.


🔥 DIFERENÇA ENTRE S213 E FILE STATUS 35


FILE STATUS 35

Erro COBOL lógico.

Arquivo não encontrado.


S213

Erro SISTÊMICO do z/OS.

Muito mais baixo nível.


🧠 O QUE O PADAWAN PRECISA GUARDAR

S213 NÃO É “erro do COBOL”.

É:

🔐 z/OS protegendo integridade e segurança.


☕ CHECKLIST DE SOBREVIVÊNCIA

Quando aparecer:

S213-xx

Faça:

✅ Ver subcódigo
✅ Identificar DDNAME
✅ Conferir DSN
✅ Conferir DISP
✅ Procurar ICH408I
✅ Validar RACF
✅ Verificar volume
✅ Verificar dataset em uso
✅ Ler JESMSGLG inteiro
✅ Não entrar em pânico ☕


🔥 FRASE FINAL DO MUNDO MAINFRAME

O S0C7 humilha.
O S806 confunde.
Mas…

☕ O S213 JULGA SUA AUTORIZAÇÃO COMO UM GUARDIÃO ANTIGO DO z/OS.