| Bellacosa Mainframe Laboratorio SMP/E do caos a orquestração |
🧪 LAB SMP/E — DO CAOS À ORQUESTRAÇÃO
🎯 Objetivo do Lab
Você vai executar:
- 📦 RECEIVE / APPLY (com erro)
- 📊 REPORT (diagnóstico)
- 🔗 LINK MODULE (correção)
- 🏗️ BUILDMCS (empacotamento)
👉 Resultado final:
Um ambiente corrigido, analisado e exportável
🧱 CENÁRIO DO LAB
👉 Situação:
- Produto instalado parcialmente
- Módulo faltando no LMOD
- PTF aplicada sem dependência
💥 Resultado:
Erro de execução + inconsistência SMP/E
🔥 PASSO 1 — RECEIVE (entrada da manutenção)
//RECEIVE JOB (ACCT),'SMP/E LAB',CLASS=A,MSGCLASS=X
//SMPCSI DD DISP=SHR,DSN=SYS1.SMP.CSI
//SMPPTS DD DISP=SHR,DSN=SYS1.SMP.PTS
//SMPCNTL DD *
SET BOUNDARY(GLOBAL).
RECEIVE SYSMODS
FROMDS('USER.PTF.INPUT')
BYPASS(HOLDSYSTEM).
/*
💡 O que está acontecendo
- Carrega SYSMOD no SMPPTS
- Ignora HOLD SYSTEM (perigoso 👀)
⚠️ PASSO 2 — APPLY (com erro proposital)
//APPLY JOB (ACCT),'SMP/E APPLY',CLASS=A,MSGCLASS=X
//SMPCSI DD DISP=SHR,DSN=SYS1.SMP.CSI
//SMPCNTL DD *
SET BOUNDARY(TZONE1).
APPLY PTFS(UX12345)
GROUPEXTEND
BYPASS(HOLDCLASS).
/*
💥 Resultado esperado
Erro tipo:
GIM35901E - REQUIRED SYSMOD NOT FOUND
👉 Tradução:
Dependência faltando
🧠 PASSO 3 — REPORT (diagnóstico inteligente)
//REPORT JOB (ACCT),'SMP/E REPORT',CLASS=A,MSGCLASS=X
//SMPCSI DD DISP=SHR,DSN=SYS1.SMP.CSI
//SMPPUNCH DD SYSOUT=*
//SMPCNTL DD *
SET BOUNDARY(TZONE1).
REPORT CROSSZONE.
REPORT ERRSYSMODS.
REPORT SYSMODS.
/*
🔍 O que você vai ver
- Dependências faltantes
- PTFs necessárias
- Conflitos
💡 E mais importante:
👉 SMPPUNCH com comandos prontos
🔗 PASSO 4 — LINK MODULE (cirurgia)
//LINKMOD JOB (ACCT),'SMP/E LINK',CLASS=A,MSGCLASS=X
//SMPCSI DD DISP=SHR,DSN=SYS1.SMP.CSI
//SMPCNTL DD *
SET BOUNDARY(TZONE1).
LINK MODULE(CSAMPLE)
FROMZONE(TZONE2).
/*
🧠 O que acontece
- Busca módulo em outra zona
- Rebuild do LMOD
- Cria TIEDTO
💡 Resultado:
Executável corrigido sem reinstalar tudo
🏗️ PASSO 5 — BUILDMCS (empacotar o ambiente)
//BUILDMCS JOB (ACCT),'SMP/E BUILD',CLASS=A,MSGCLASS=X
//SMPCSI DD DISP=SHR,DSN=SYS1.SMP.CSI
//SMPPUNCH DD SYSOUT=*
//SMPCNTL DD *
SET BOUNDARY(TZONE1).
BUILDMCS FORFMID(CICS123).
/*
📦 Resultado
No SMPPUNCH:
- ++FUNCTION
- ++MOD
- ++JCLIN
👉 Você criou um:
produto instalável do seu ambiente
🔁 PASSO 6 — APPLY CORRIGIDO
//APPLY2 JOB (ACCT),'SMP/E APPLY OK',CLASS=A,MSGCLASS=X
//SMPCSI DD DISP=SHR,DSN=SYS1.SMP.CSI
//SMPCNTL DD *
SET BOUNDARY(TZONE1).
APPLY PTFS(UX12345)
GROUPEXTEND
CHECK.
/*
💡 Agora
- Sem erro
- Dependências resolvidas
- Ambiente consistente
🎯 LIÇÕES DO LAB (ESSENCIAL)
🧠 1. APPLY sem REPORT = risco
🧠 2. LINK MODULE = solução cirúrgica
🧠 3. BUILDMCS = portabilidade
🧠 4. REPORT = prevenção
💥 EASTER EGGS (NÍVEL BELLACOSA)
😈 Se você ignorar HOLDDATA
👉 vai quebrar produção
😈 Se usar LINK demais
👉 cria acoplamento invisível
😈 Se não usar BUILDMCS
👉 não consegue reconstruir ambiente
🚀 DESAFIO (NÍVEL HARDCORE)
Tente:
- Rodar APPLY sem GROUPEXTEND
- Ver erro
- Resolver com REPORT + FIXCAT
🧠 FRASE FINAL DO LAB
“Quem roda SMP/E executa comando…
quem domina SMP/E controla o sistema.”
Sem comentários:
Enviar um comentário