- Postagens: 68
- Obrigados Recebidos: 5
Espaço para quem está começando no mundo do mainframe.
Guia dos principais ABENDs COBOL: S0C7, S0C4, S806 e S322
- bopnet
-
Autor do Tópico
- Desconectado
- Administrador
-
- I'm free!
Less
Mais
2 horas 47 minutos atrás #133
por bopnet
COBOL is not DEAD!
Guia dos principais ABENDs COBOL: S0C7, S0C4, S806 e S322 foi criado por bopnet
ABEND é a abreviação de abnormal end, ou término anormal. Ele acontece quando um programa ou job não consegue continuar sua execução por causa de algum erro.
Entre os ABENDs mais conhecidos no desenvolvimento COBOL estão S0C7, S0C4, S806 e S322.
S0C7 — Data Exception
O S0C7 geralmente ocorre quando o programa tenta executar uma operação numérica utilizando um campo que contém dados inválidos.
Exemplos de causas:
A investigação deve identificar qual campo participou da operação e verificar seu conteúdo no momento do erro.
S0C4 — Protection Exception
O S0C4 normalmente indica que o programa tentou acessar uma área de memória inválida ou não disponível.
Possíveis causas:
S806 — Module Not Found
O S806 acontece quando o sistema não consegue encontrar o programa solicitado pelo EXEC PGM ou por um CALL dinâmico.
Possíveis causas:
Confirme se o membro PROG001 está presente na biblioteca informada.
S322 — CPU Time Exceeded
O S322 indica que o job ultrapassou o limite de tempo permitido.
Possíveis causas:
Se o indicador de finalização não for atualizado corretamente, o programa poderá continuar executando indefinidamente.
Roteiro geral de investigação
Qual desses ABENDs você encontra com mais frequência? Conte qual foi a causa mais difícil que você já precisou investigar.
Entre os ABENDs mais conhecidos no desenvolvimento COBOL estão S0C7, S0C4, S806 e S322.
S0C7 — Data Exception
O S0C7 geralmente ocorre quando o programa tenta executar uma operação numérica utilizando um campo que contém dados inválidos.
Exemplos de causas:
- Espaços em um campo numérico;
- Caracteres alfabéticos em uma variável numérica;
- Campo COMP-3 corrompido;
- Layout incorreto;
- Arquivo processado com copybook incompatível;
- Inicialização inadequada de variáveis;
- REDEFINES utilizado incorretamente.
Code:
01 WS-VALOR PIC 9(05).
MOVE "12A45" TO WS-VALOR
ADD 1 TO WS-VALOR
S0C4 — Protection Exception
O S0C4 normalmente indica que o programa tentou acessar uma área de memória inválida ou não disponível.
Possíveis causas:
- Índice ou subscrito fora dos limites de uma tabela;
- CALL utilizando uma área de comunicação incorreta;
- Parâmetros incompatíveis entre programa chamador e chamado;
- Endereço inválido;
- LINKAGE SECTION diferente da área recebida;
- Tentativa de acessar um item além do tamanho disponível;
- Programa chamado com versão incompatível.
S806 — Module Not Found
O S806 acontece quando o sistema não consegue encontrar o programa solicitado pelo EXEC PGM ou por um CALL dinâmico.
Possíveis causas:
- Nome do programa escrito incorretamente;
- Load module não gerado;
- Biblioteca de carga ausente na STEPLIB;
- Programa não promovido para o ambiente;
- Versão incorreta da biblioteca;
- Load module apagado ou não catalogado;
- JOBLIB ou STEPLIB apontando para outra biblioteca.
Code:
//STEP01 EXEC PGM=PROG001
//STEPLIB DD DSN=EMPRESA.SISTEMA.LOADLIB,DISP=SHR
S322 — CPU Time Exceeded
O S322 indica que o job ultrapassou o limite de tempo permitido.
Possíveis causas:
- Loop infinito;
- Condição de saída nunca alcançada;
- Arquivo muito maior que o esperado;
- Processamento ineficiente;
- Leitura repetida de grandes volumes;
- Ausência de atualização de um contador;
- Limite de tempo inadequado para o processamento.
Code:
PERFORM UNTIL WS-FIM = "S"
READ ARQUIVO
AT END
MOVE "S" TO WS-FIM
END-READ
END-PERFORM
Roteiro geral de investigação
- Localize o step que terminou em ABEND;
- Identifique o código apresentado no spool;
- Consulte as mensagens complementares;
- Localize o programa e o ponto aproximado da falha;
- Verifique o conteúdo das variáveis envolvidas;
- Confirme as versões dos programas e copybooks;
- Analise as características dos arquivos;
- Corrija a causa e execute um teste controlado.
Qual desses ABENDs você encontra com mais frequência? Conte qual foi a causa mais difícil que você já precisou investigar.
COBOL is not DEAD!
Por favor Entrar ou Registrar para participar da conversa.