| Bellacosa Mainframe explica sysout |
Como Interpretar SYSOUT num JOB e Quais DDs Auxiliam o JCL
Quando começamos a trabalhar com:
JCL;
JES2;
SDSF;
spool;
processamento batch;
uma das habilidades mais importantes é aprender a:
interpretar SYSOUT.
É no SYSOUT que normalmente descobrimos:
erros;
resultados;
mensagens;
ABENDs;
comportamento do programa.
Além disso, existem vários cartões:
DD (Data Definition)
que ajudam o JCL e o programa durante execução.
Primeiro: o que é SYSOUT?
SYSOUT significa:
System Output.
É a saída gerada durante execução do JOB.
O SYSOUT pode conter:
mensagens COBOL;
relatórios;
DISPLAY;
SQLCODE;
erros;
estatísticas;
logs batch.
Onde visualizar SYSOUT?
Principalmente no:
SDSF.
Como acessar?
SDSF
Depois:
ST
Selecionar JOB:
?
ou:
S
O que aparece no spool?
Arquivos como:
JESJCL;
JESMSGLG;
JESYSMSG;
SYSOUT;
CEEDUMP.
O SYSOUT é diferente dos outros arquivos
JESJCL
Mostra JCL interpretado.
JESMSGLG
Mensagens JES2.
JESYSMSG
Mensagens do sistema.
SYSOUT
Saída da aplicação/programa.
Exemplo simples de SYSOUT
Programa COBOL:
DISPLAY 'PROCESSAMENTO OK'
No spool aparece:
PROCESSAMENTO OK
O que analisar primeiro no SYSOUT?
1. Return Code (RC)
Exemplo:
CC 0000
Sucesso.
2. Mensagens de erro
Procurar:
ERROR;
ABEND;
SQLCODE;
FILE STATUS.
3. Quantidade processada
Exemplo:
REGISTROS LIDOS: 15000
4. Tempo de execução
5. Estatísticas batch
Exemplo de SYSOUT típico
INICIO PROCESSAMENTO
ARQUIVO ABERTO
1000 REGISTROS PROCESSADOS
FIM NORMAL
Como identificar problemas?
Mensagens COBOL
IGZ0006S
Erro COBOL.
SQLCODE
SQLCODE = -911
Problema DB2.
FILE STATUS
FILE STATUS 35
Arquivo não encontrado.
ABEND
S0C7
Erro numérico.
O que são cartões DD?
DD significa:
Data Definition.
São instruções JCL que definem:
arquivos;
SYSOUT;
bibliotecas;
parâmetros.
Exemplo básico
//SYSOUT DD SYSOUT=*
Principais cartões DD que auxiliam o JCL
SYSOUT
Define saída do spool.
SYSIN
Entrada de parâmetros/comandos.
SYSPRINT
Mensagens e relatórios do programa.
SYSUDUMP
Dump em caso de erro.
CEEDUMP
Dump do Language Environment.
STEPLIB
Bibliotecas de LOAD modules.
JOBLIB
Bibliotecas do JOB inteiro.
SORTIN
Entrada do SORT.
SORTOUT
Saída do SORT.
SYSABOUT
Dump do sistema.
SYSDBOUT
Mensagens DB2.
Explicando os principais DDs
SYSOUT DD
Muito comum:
//SYSOUT DD SYSOUT=*
Envia saída para spool.
SYSIN DD
Usado para comandos/parâmetros.
Exemplo:
//SYSIN DD *
SORT FIELDS=COPY
/*
STEPLIB DD
Define bibliotecas de programas.
Exemplo:
//STEPLIB DD DSN=MEU.LOADLIB,
// DISP=SHR
Sem STEPLIB…
Pode ocorrer:
S806
Programa não encontrado.
SYSPRINT DD
Saída de relatórios e logs.
Exemplo
//SYSPRINT DD SYSOUT=*
SYSUDUMP DD
Gera dump para análise de ABEND.
Exemplo
//SYSUDUMP DD SYSOUT=*
Muito importante em troubleshooting
CEEDUMP DD
Dump do:
Language Environment.
Muito usado em:
COBOL;
C;
PL/I.
JOBLIB vs STEPLIB
JOBLIB
Vale para todo JOB.
STEPLIB
Vale apenas para STEP específico.
Exemplo JOBLIB
//JOBLIB DD DSN=EMPRESA.LOADLIB,
// DISP=SHR
Exemplo STEPLIB
//STEPLIB DD DSN=TESTE.LOADLIB,
// DISP=SHR
Como interpretar SYSOUT corretamente?
Ler começo e final
Procurar:
RC;
ERROR;
SQLCODE;
ABEND.
Verificar contadores
Conferir datasets
Observar mensagens JES2
Exemplo completo de troubleshooting
RC
CC 0012
SYSOUT mostra:
FILE STATUS 35
Conclusão
Arquivo não encontrado.
Fluxo ideal de análise
RC
↓
JESMSGLG
↓
JESYSMSG
↓
SYSOUT
↓
DUMP
↓
SOLUÇÃO
Curiosidades incríveis
1. Grandes batchs geram milhões de linhas de SYSOUT
2. Operadores monitoram SYSOUT constantemente
3. Muitas falhas só aparecem no SYSPRINT
4. Dumps podem ocupar enorme espaço spool
Erros comuns de iniciantes
1. Ignorar SYSOUT
2. Não usar SYSUDUMP
Dificulta troubleshooting.
3. Esquecer STEPLIB
Causa S806.
4. Não analisar SQLCODE
Muito importante em DB2.
Dicas importantes
Sempre utilize:
//SYSOUT DD SYSOUT=*
Durante testes inclua:
//SYSUDUMP DD SYSOUT=*
Aprenda FILE STATUS COBOL
Leia JESYSMSG junto com SYSOUT
Como isso aparece no dia a dia?
Praticamente em tudo:
COBOL;
DB2;
SORT;
CICS batch;
automação;
produção.
Resumo rápido
| DD | Função |
|---|---|
| SYSOUT | Saída spool |
| SYSIN | Entrada comandos |
| SYSPRINT | Relatórios/logs |
| SYSUDUMP | Dump erro |
| CEEDUMP | Dump LE |
| STEPLIB | Biblioteca programa |
| JOBLIB | Biblioteca JOB |
Conclusão
Interpretar SYSOUT é uma das habilidades mais importantes no ambiente mainframe IBM Z.
É através dele que operadores e programadores analisam resultados, identificam erros, entendem ABENDs e realizam troubleshooting eficiente em JOBs batch no z/OS.