| Bellacosa Mainframe e o max-cc conditional code |
☕đ„ MAXCC — O “HUMOR” DO JOB NO z/OS
Quando o Mainframe Diz:
“SEU JOB TERMINOU… MAS EU TENHO ALGO A DIZER.”
Se existe uma coisa que TODO Junior Padawan COBOL precisa aprender cedo…
Ă© que no z/OS:
nem todo fim de job Ă© igual.
Ăs vezes o JOB termina:
✅ normalmente
⚠️ com avisos
đ„ com erros graves
☠️ completamente destruĂdo
E quem conta essa histĂłria Ă© o:
đš MAXCC
☕ O QUE Ă MAXCC?
MAXCC significa:
MAXIMUM CONDITION CODE
Ă o maior retorno gerado pelos steps do JOB.
đ„ A FILOSOFIA DO MAXCC
No z/OS:
programas “conversam” com o scheduler usando cĂłdigos numĂ©ricos.
Exemplo:
RETURN-CODE = 0
significa:
“Tudo OK.”
Mas:
RETURN-CODE = 16
significa:
“O APOCALIPSE CHEGOU.”
☕ O MAXCC MAIS FAMOSO
No SDSF/JESMSGLG:
MAXCC=0000
ou:
COND CODE 0004
đ„ O SEGREDO
MAXCC NĂO Ă ABEND.
Isso Ă© MUITO importante.
☕ ABEND
Falha anormal.
Exemplo:
S0C7
S0C4
S806
☕ MAXCC
Programa terminou normalmente…
MAS quer avisar algo.
đ„ MAXCC 00 — O “MUNDO EM PAZ”
✅ MAXCC=0000
Significa:
tudo terminou perfeitamente.
☕ EXEMPLO
IEF142I STEP01 - STEP WAS EXECUTED - COND CODE 0000
đ„ INTERPRETAĂĂO BELLACOSA
O mainframe estĂĄ dizendo:
☕ “Excelente, Padawan. Nada explodiu hoje.”
☕ CENĂRIO TĂPICO
arquivo processado
SORT OK
DB2 OK
nenhum warning
tudo consistente
đ„ MAXCC 04 — O “WARNING ELEGANTE”
⚠️ MAXCC=0004
O JOB terminou.
Mas:
algo merece atenção.
☕ O MAIS IMPORTANTE
MAXCC 4 normalmente NĂO Ă© erro fatal.
Muitos jobs em produção aceitam:
RC=4 normalmente.
đ„ EXEMPLOS CLĂSSICOS
☕ SORT
SORT FIELDS=COPY
Mas:
registro invĂĄlido ignorado
campo truncado
duplicidade encontrada
Resultado:
RC=4
☕ IDCAMS
DELETE DATASET
Dataset nĂŁo existe.
IDCAMS retorna:
4
Porque:
“nĂŁo achei, mas sobrevivi.”
☕ IEBCOPY
Membro duplicado.
Warning.
RC=4.
đ„ INTERPRETAĂĂO BELLACOSA
☕ “Nada morreu… mas eu notei uma coisa estranha.”
đ„ MAXCC 08 — O “ERRO OPERACIONAL”
❌ MAXCC=0008
Agora a conversa ficou séria.
☕ SIGNIFICADO
o processamento falhou parcialmente.
đ„ MUITOS JOBS PARAM EM RC=8
Schedulers frequentemente tratam:
RC >= 8
como falha.
☕ EXEMPLOS CLĂSSICOS
☕ SORT
Campo invĂĄlido.
Chave inconsistente.
Arquivo problemĂĄtico.
☕ IDCAMS
Falha em DEFINE CLUSTER.
☕ DB2
SQLCODE sério.
☕ COBOL
Programa detecta erro de negĂłcio:
MOVE 8 TO RETURN-CODE
STOP RUN
đ„ INTERPRETAĂĂO BELLACOSA
☕ “Padawan… algo deu errado e vocĂȘ PRECISA olhar.”
đ„ MAXCC 12 — O “DESASTRE CONTROLADO”
☠️ MAXCC=0012
Agora entramos na zona crĂtica.
☕ SIGNIFICADO
Erro grave.
Processamento comprometido.
đ„ EXEMPLOS CLĂSSICOS
falha forte em SORT
utility quebrada
VSAM inconsistente
falha DB2 importante
step inutilizado
☕ O JOB AINDA TERMINOU
Isso diferencia de ABEND.
O programa conseguiu:
terminar conscientemente.
Mas avisando:
“o resultado NĂO Ă© confiĂĄvel.”
đ„ EXEMPLO COBOL
IF WS-ERRO-CRITICO = 'S'
MOVE 12 TO RETURN-CODE
STOP RUN
END-IF
đ„ INTERPRETAĂĂO BELLACOSA
☕ “O castelo ainda estĂĄ de pĂ©… mas estĂĄ pegando fogo.”
đ„ MAXCC 16 — O “JUĂZO FINAL”
đš MAXCC=0016
Aqui o sistema estĂĄ praticamente gritando.
☕ SIGNIFICADO
falha gravĂssima.
đ„ MUITOS PRODUTOS TRATAM 16 COMO FATAL
Especialmente:
DFSORT
IDCAMS
DB2 utilities
IEBCOPY
custom utilities
☕ EXEMPLOS CLĂSSICOS
arquivo inacessĂvel
utility impossĂvel de executar
parĂąmetro invĂĄlido
corrupção
inconsistĂȘncia crĂtica
đ„ COBOL TAMBĂM PODE RETORNAR 16
MOVE 16 TO RETURN-CODE
STOP RUN
☕ INTERPRETAĂĂO BELLACOSA
☕ “Padawan… o processamento fracassou de forma Ă©pica.”
đ„ O SEGREDO MAIS IMPORTANTE
CADA PRODUTO INTERPRETA RC DE FORMA DIFERENTE.
☕ EXEMPLO
Para um utilitĂĄrio:
RC=4
pode ser trivial.
Para outro:
RC=4
jå significa problema sério.
đ„ O JCL E O COND=
Agora nasce o verdadeiro conhecimento Jedi.
☕ EXEMPLO
//STEP2 EXEC PGM=PROG2,COND=(8,LT)
Significa:
execute STEP2 somente se RC anterior NĂO for menor que 8.
đ„ O IF/THEN/ELSE MODERNO
Mais elegante:
// IF (STEP1.RC > 4) THEN
//STEPERR EXEC PGM=ALERTA
// ENDIF
☕ O MAXCC E O JES2
O JES acompanha:
RCs
ABENDs
steps
histĂłrico do JOB
đ„ O MAXCC E O SCHEDULER
Ferramentas como:
Control-M
CA7
TWS
tomam decisÔes usando:
RC/MAXCC.
☕ EXEMPLO REAL
RC=0 → continua fluxo
RC=4 → warning
RC>=8 → dispara incidente
đ„ O MAIOR ERRO DO PADAWAN
Achar:
RC=4 = tudo OK
NĂŁo necessariamente.
VocĂȘ PRECISA entender:
o contexto do utilitĂĄrio/programa.
☕ O SEGREDO DOS VETERANOS
Veteranos sempre perguntam:
“QUEM RETORNOU O RC?”
Porque:
DFSORT
IDCAMS
COBOL
DB2
CICS utilities
cada um possui semĂąntica prĂłpria.
đ„ CURIOSIDADE HISTĂRICA
MAXCC existe desde os tempos do:
OS/360
Década de:
đ️ 1960
IBM precisava que jobs batch “conversassem” automaticamente entre si.
EntĂŁo nasceram:
return codes
condition codes
job control logic
☕ EASTER EGG MAINFRAME
Veteranos brincam:
Sem comentĂĄrios:
Enviar um comentĂĄrio