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: Código
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:
Localize o primeiro step com erro;
Identifique o condition code ou ABEND;
Procure a primeira mensagem relevante do sistema;
Verifique o nome do programa no EXEC PGM;
Confira os DDNAMEs exigidos pelo programa;
Valide os datasets informados;
Analise DISP, SPACE, RECFM e LRECL;
Verifique STEPLIB e JOBLIB;
Consulte o SYSPRINT do programa ou utilitário;
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.