Scripts de Job Control Language (JCL) e automação no mainframe.

Como identificar e corrigir os principais erros de JCL

Mais
2 horas 47 minutos atrás #132 por bopnet
Erros de JCL podem acontecer antes da execução do programa ou durante o processamento do job. Para encontrar a causa corretamente, primeiro precisamos identificar em qual etapa ocorreu o problema.
Quando o JES encontra um erro de sintaxe, o job pode nem chegar a executar. Em outros casos, o JCL é aceito, mas um step termina com condition code diferente de zero ou com um ABEND.
Os problemas mais comuns incluem:
  • Parâmetros escritos incorretamente;
  • Vírgulas ou parênteses ausentes;
  • Nome de programa incorreto;
  • Dataset inexistente;
  • Dataset já catalogado;
  • DISP incompatível com a operação;
  • DDNAME ausente;
  • Biblioteca não encontrada na STEPLIB;
  • Falta de espaço para criação do dataset;
  • Incompatibilidade entre RECFM e LRECL;
  • Erro em procedimento catalogado;
  • Condições de execução definidas incorretamente.
Um erro de sintaxe pode ocorrer, por exemplo, neste comando:
Code:
//ARQSAIDA DD DSN=USER.ARQUIVO.SAIDA //            DISP=(NEW,CATLG,DELETE)
Os parâmetros precisam estar separados corretamente:
Code:
//ARQSAIDA DD DSN=USER.ARQUIVO.SAIDA, //            DISP=(NEW,CATLG,DELETE), //            SPACE=(TRK,(10,5),RLSE), //            DCB=(RECFM=FB,LRECL=80)
Ao analisar um job com erro, consulte principalmente:
  • JESJCL: apresenta o JCL interpretado pelo sistema;
  • JESMSGLG: mostra as mensagens gerais do job;
  • JESYSMSG: apresenta mensagens do sistema e detalhes dos steps;
  • SYSPRINT: normalmente contém mensagens de utilitários e compiladores;
  • SYSOUT: pode apresentar mensagens produzidas pelo programa.
Alguns resultados encontrados com frequência são:
  • JCL ERROR: erro de sintaxe ou parâmetro;
  • S806: programa ou módulo não encontrado;
  • S013: problema na abertura ou nas características de um dataset;
  • S322: tempo de execução excedido;
  • S0C7: dado inválido em uma operação numérica;
  • S0C4: acesso indevido a uma posição de memória;
  • CC 0004: normalmente representa um aviso;
  • CC 0008: indica que alguma operação apresentou erro;
  • CC 0012 ou superior: geralmente indica falha mais séria.
Checklist para investigar um JCL:
  1. Localize o primeiro step com erro;
  2. Identifique o condition code ou ABEND;
  3. Procure a primeira mensagem relevante do sistema;
  4. Verifique o nome do programa no EXEC PGM;
  5. Confira os DDNAMEs exigidos pelo programa;
  6. Valide os datasets informados;
  7. Analise DISP, SPACE, RECFM e LRECL;
  8. Verifique STEPLIB e JOBLIB;
  9. Consulte o SYSPRINT do programa ou utilitário;
  10. Corrija primeiro a causa inicial, pois os erros seguintes podem ser apenas consequências.
Uma boa prática é não olhar somente a última mensagem do spool. Frequentemente, a causa verdadeira aparece algumas linhas antes do encerramento do step.
Quais erros de JCL aparecem com mais frequência no seu ambiente? Compartilhe a mensagem, o código do erro e a solução encontrada.

COBOL is not DEAD!

Por favor Entrar ou Registrar para participar da conversa.

Powered by Fórum Kunena