Translate

Mostrar mensagens com a etiqueta JESYSMSG. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta JESYSMSG. Mostrar todas as mensagens

sexta-feira, 26 de janeiro de 2007

ABEND Explicado para Iniciantes

 

Bellacosa Mainframe explicando abend para padawan

ABEND Explicado para Iniciantes

Quando alguém começa a trabalhar com:

  • COBOL;

  • JCL;

  • SDSF;

  • JES2;

  • batch no z/OS;

rapidamente encontra uma palavra que assusta muitos iniciantes:

ABEND

E normalmente surge a pergunta:

“O que aconteceu com meu JOB?”

A resposta geralmente é:

ocorreu um ABEND.


O que significa ABEND?

ABEND significa:

Abnormal End

Em português:

término anormal.


Definição simples

ABEND acontece quando:

um JOB ou programa termina com erro inesperado.

Ou seja:
o processamento não conseguiu continuar normalmente.


Analogia simples

Imagine uma fábrica.

Tudo funciona normalmente:

  • máquinas;

  • produção;

  • esteiras.

Mas de repente:

  • falta peça;

  • quebra equipamento;

  • ocorre falha elétrica.

A produção para abruptamente.

ABEND é exatamente isso:

uma interrupção anormal do processamento.


O que acontece quando ocorre ABEND?

O z/OS:

  • interrompe execução;

  • grava mensagens;

  • gera logs;

  • salva informações para diagnóstico.

Tudo aparece no:

spool.


Onde analisar ABEND?

Principalmente:

  • SDSF;

  • JESMSGLG;

  • JESYSMSG;

  • SYSOUT;

  • CEEDUMP.


Como identificar ABEND?

No SDSF normalmente aparece:

ABEND=S0C7

ou:

ABEND=U4038

Tipos de ABEND

Existem dois grandes grupos:


System ABEND

Começa com:

S

Exemplo:

S0C7

Gerado pelo:

sistema operacional.


User ABEND

Começa com:

U

Exemplo:

U4038

Gerado pelo:

programa/aplicação.


Origem histórica do ABEND

Desde os primeiros mainframes IBM, era necessário:

  • detectar falhas;

  • proteger memória;

  • impedir corrupção de dados.

Então o sistema passou a gerar:

códigos de término anormal.

Isso evoluiu para os famosos:

ABENDs.


Como ler um ABEND?


Exemplo

S0C7

S

System ABEND.


0C7

Código específico do erro.


ABENDs mais comuns no mainframe


S0C7

Erro de dados numéricos

O mais famoso do COBOL.


O que causa?

Campo numérico inválido.


Exemplo

Programa espera:

12345

mas recebe:

12A45

Muito comum em:

  • COMP-3;

  • PACKED;

  • DISPLAY numérico.


Como resolver?

  • validar dados;

  • revisar layouts;

  • conferir FILE STATUS;

  • analisar campo inválido.


S0C4

Violação de memória

Programa tentou acessar área inválida.


Causas comuns

  • ponteiro errado;

  • tabela fora do limite;

  • endereço inválido.


Muito comum em

  • Assembler;

  • COBOL avançado;

  • CICS.


S806

Programa não encontrado


Causa

Módulo inexistente na STEPLIB/LINKLIST.


Solução

  • verificar LOADLIB;

  • conferir nome do programa;

  • validar bibliotecas.


SB37

Falta de espaço em disco


Causa

Dataset sem espaço suficiente.


Solução

Aumentar:

  • SPACE;

  • volume;

  • secondary allocation.


SD37

Sem espaço em diretório/bloco.


SE37

Extensões máximas atingidas.


S222

JOB cancelado

Normalmente por operador.


S322

Timeout

JOB excedeu tempo permitido.


U4038

Erro da aplicação

Muito comum em:

  • COBOL;

  • CICS;

  • LE.


Pode indicar

  • STOP RUN incorreto;

  • CALL inválido;

  • falha lógica.


O que é CEEDUMP?

Dump gerado pelo:

Language Environment.

Ajuda debugging:

  • COBOL;

  • C;

  • PL/I.


O que analisar primeiro?


1. RC / ABEND

No SDSF.


2. JESMSGLG

Mensagens JES2.


3. JESYSMSG

Mensagens sistema.


4. SYSOUT

Saída programa.


5. CEEDUMP

Detalhes técnicos.


Fluxo ideal de análise

ABEND
 ↓
RC
 ↓
JESMSGLG
 ↓
JESYSMSG
 ↓
SYSOUT
 ↓
CEEDUMP
 ↓
CAUSA

O que é dump?

Captura do estado da memória durante erro.


Dumps ajudam a descobrir:

  • variáveis;

  • registradores;

  • instruções;

  • falha exata.


Como operadores analisam ABEND?

Eles verificam:

  • mensagens JES2;

  • status batch;

  • spool;

  • impacto operacional.


Como programadores analisam ABEND?

Eles procuram:

  • linha COBOL;

  • SQLCODE;

  • FILE STATUS;

  • dumps;

  • variáveis.


Como ABEND aparece no spool?

Mensagens típicas:

IEC141I
IGZ0006S
CEE3207S

Mensagens importantes


IGZ

Mensagens COBOL.


IEC

Mensagens de dataset/storage.


IEF

Mensagens JCL/sistema.


CEE

Mensagens Language Environment.


Dicas importantes para iniciantes


Sempre leia o final do spool


Procure:

  • ABEND;

  • ERROR;

  • IEC;

  • SQLCODE.


Aprenda principais códigos

S0C7 salva vidas no mainframe.


Use FIND no SDSF

Exemplo:

F ABEND

Curiosidades incríveis

1. Alguns ABENDs existem há décadas


2. Operadores experientes decoram dezenas de códigos


3. S0C7 é praticamente lendário no COBOL


4. Grandes bancos possuem equipes especializadas em troubleshooting de ABEND


Erros comuns de iniciantes


1. Ignorar JESYSMSG

Ali estão muitas pistas.


2. Ler apenas SYSOUT

Erro pode estar em outro arquivo.


3. Não analisar CEEDUMP

Fundamental em COBOL.


4. Assustar-se com qualquer ABEND

Muitos são simples de resolver.


Como evitar ABEND?


Validar dados


Conferir datasets


Revisar JCL


Verificar SPACE


Testar programas


Usar tratamento de erro COBOL


Como ABEND aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • DB2;

  • CICS;

  • SORT;

  • batch;

  • automação.


Resumo rápido

ABENDSignificado
S0C7Erro numérico
S0C4Violação memória
S806Programa não encontrado
SB37Falta espaço
S322Timeout
U4038Erro aplicação

Conclusão

ABEND é o mecanismo usado pelo z/OS para indicar falhas anormais durante execução de JOBs e programas.

Aprender a interpretar ABENDs, analisar spool e entender mensagens do sistema é uma das habilidades mais importantes para qualquer profissional mainframe IBM Z.

terça-feira, 23 de janeiro de 2007

Como Ler, Entender e Analisar as Mensagens no Spool

Bellacosa Mainframe como ler e entender o spool do sdsf


Como Ler, Entender e Analisar as Mensagens no Spool

Uma das habilidades mais importantes no mundo mainframe é aprender a:

  • interpretar spool;

  • entender mensagens JES2;

  • analisar erros;

  • identificar ABENDs;

  • descobrir por que um JOB falhou.

Quem domina spool consegue:

  • resolver problemas rapidamente;

  • entender processamento batch;

  • analisar COBOL;

  • trabalhar com operações z/OS.


Primeiro: o que é spool?

Spool é a área onde ficam armazenados:

  • logs;

  • SYSOUT;

  • mensagens;

  • relatórios;

  • saídas batch.

Tudo que acontece em um JOB normalmente aparece no:

spool.


Onde visualizar o spool?

Principalmente no:

SDSF.


Entrando no SDSF

Digite:

SDSF

Painel mais usado

ST

Mostra:

  • JOBs;

  • status;

  • JOBID;

  • RC.


Exemplo típico

NP JOBNAME JOBID OWNER STATUS

Como abrir spool do JOB?

Digite:

?

ou:

S

ao lado do JOB.


O que aparece dentro do spool?

Arquivos importantes:

  • JESJCL;

  • JESMSGLG;

  • JESYSMSG;

  • SYSOUT;

  • CEEDUMP.


A ordem correta de análise

Iniciantes costumam se perder.

O ideal é seguir esta sequência:


1. Verificar RC

Return Code


Exemplo

CC 0000

Indica:

sucesso.


Outros exemplos

CC 0004

Warning.

CC 0008

Erro moderado.

CC 0012

Erro grave.


Se houver ABEND

Exemplo:

S0C7

ou:

U4038

Então existe erro anormal.


2. Ler JESMSGLG

Um dos arquivos mais importantes.

Ele mostra:

  • mensagens JES2;

  • início do JOB;

  • fim do JOB;

  • alocação;

  • spool;

  • status batch.


Mensagens clássicas

$HASP373 JOB STARTED

JOB iniciado.


$HASP395 JOB ENDED

JOB finalizado.


O que procurar?

  • dataset não encontrado;

  • problemas de autorização;

  • falhas JCL;

  • mensagens system.


3. Ler JESJCL

Mostra:

como o sistema interpretou o JCL.


Muito útil para encontrar:

  • erros de sintaxe;

  • parâmetros inválidos;

  • datasets errados.


Exemplo comum

JCL ERROR

4. Ler JESYSMSG

Mostra mensagens do:

z/OS.

Muito importante para:

  • alocação;

  • datasets;

  • ABENDs;

  • execução.


Mensagens clássicas


Dataset não encontrado

DATA SET NOT FOUND

Falta de espaço

SPACE NOT AVAILABLE

Dataset em uso

DATA SET IN USE

5. Ler SYSOUT

Aqui normalmente aparece:

  • saída COBOL;

  • relatórios;

  • DISPLAY;

  • resultados do programa.


Exemplo COBOL

DISPLAY 'PROCESSAMENTO OK'

Aparece no SYSOUT.


Como identificar erros COBOL?

Procurar:

  • FILE STATUS;

  • SQLCODE;

  • ABEND;

  • mensagens LE.


O que é ABEND?

Abnormal End

Erro anormal de execução.


ABENDs famosos


S0C7

Erro de dados numéricos.

Muito comum em COBOL.


S0C4

Violação de memória.


S806

Programa não encontrado.


SB37

Falta de espaço em disco.


O que é CEEDUMP?

Dump gerado pelo:

Language Environment (LE).

Ajuda debugging COBOL.


Como analisar spool corretamente?


Comece pelo fim

Muitos erros aparecem perto do final.


Procure palavras-chave

  • ERROR

  • ABEND

  • IEC

  • IEF

  • SQLCODE

  • NOT FOUND


Observe mensagens $HASP

Elas mostram:

  • início;

  • fim;

  • status.


Exemplo completo de análise


Passo 1

RC:

CC 0012

Problema detectado.


Passo 2

JESMSGLG mostra:

IEF212I DATA SET NOT FOUND

Passo 3

Identificar dataset incorreto no JCL.


Resultado

Erro encontrado.


Como operadores analisam spool?

Eles verificam:

  • falhas batch;

  • tempo de execução;

  • filas;

  • spool;

  • mensagens críticas.


Como programadores analisam spool?

Eles procuram:

  • ABEND;

  • SQLCODE;

  • DISPLAY;

  • SYSOUT;

  • retorno COBOL.


Curiosidades incríveis

1. Operadores passam horas analisando spool diariamente


2. Grandes bancos geram milhões de linhas de spool


3. Muitas falhas críticas são descobertas apenas lendo spool


4. Saber interpretar mensagens é habilidade extremamente valorizada


Erros comuns de iniciantes


1. Ignorar RC

Primeira coisa que deveria ser verificada.


2. Ler apenas SYSOUT

Muitas falhas aparecem no JESMSGLG.


3. Não entender ABEND

ABEND indica erro sério.


4. Procurar erro no começo do spool

Frequentemente está no final.


Dicas extremamente importantes

Sempre leia:

  • JESMSGLG;

  • JESYSMSG;

  • SYSOUT.


Aprenda mensagens IEC e IEF

São muito comuns.


Memorize principais ABENDs

Isso acelera troubleshooting.


Use FIND no SDSF

Exemplo:

F ERROR

Como isso aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • DB2;

  • SORT;

  • batch;

  • automação;

  • operações;

  • suporte.


Fluxo mental ideal

RC
 ↓
JESMSGLG
 ↓
JESYSMSG
 ↓
SYSOUT
 ↓
ABEND
 ↓
CORREÇÃO

Por que aprender análise de spool?

Porque isso é:

uma das habilidades mais importantes do z/OS.

Quem domina spool domina:

  • troubleshooting;

  • batch;

  • operações;

  • COBOL;

  • JES2;

  • SDSF.


Resumo rápido

ArquivoFunção
JESJCLJCL interpretado
JESMSGLGMensagens JES2
JESYSMSGMensagens do sistema
SYSOUTSaída da aplicação
CEEDUMPDump COBOL/LE

Conclusão

Aprender a ler e interpretar mensagens no spool é fundamental para qualquer profissional mainframe.

O spool contém todas as informações necessárias para entender o comportamento dos JOBs, identificar erros, analisar ABENDs e realizar troubleshooting eficiente no ambiente z/OS IBM Z.