Translate

Mostrar mensagens com a etiqueta apply receive accept. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta apply receive accept. Mostrar todas as mensagens

segunda-feira, 6 de abril de 2026

💀🔥 SEU COBOL NÃO QUEBROU… FOI O SMP/E QUE REESCREVEU O MUNDO AO REDOR

 

Bellacosa Mainframe falando sobre SMP/E 

💀🔥 “SEU COBOL NÃO QUEBROU… FOI O SMP/E QUE REESCREVEU O MUNDO AO REDOR”

O guia que todo dev sênior precisa ler antes de culpar o programa


Você já viveu isso:

💣 “rodava ontem… hoje ABENDOU… ninguém mexeu no código”

👉 Então deixa eu te contar a verdade que poucos falam no mainframe:

💀 o código raramente muda… o ambiente muda o tempo todo

E quem controla isso?

🔥 SMP/E — System Modification Program / Extended


🕰️ UM POUCO DE HISTÓRIA (POR QUE ISSO EXISTE)

Antes do SMP/E:

  • sysprog copiava módulo na mão
  • sobrescrevia biblioteca sem controle
  • não existia rastreabilidade

Resultado?

💣 ambiente inconsistente
💣 bugs “fantasmas”
💣 caos operacional

O SMP nasceu pra resolver isso… e evoluiu para o SMP/E:

👉 controle
👉 consistência
👉 governança


🧠 SMP/E NA PRÁTICA (SEM ROMANTIZAR)

Pensa assim:

seu programa = ponta do iceberg
smp/e = quem controla o oceano inteiro

Ele decide:

  • qual versão roda
  • quais dependências são válidas
  • o que entra no sistema
  • o que quebra silenciosamente

🔠 ACRÔNIMOS (TRADUÇÃO DE VERDADE)

🔥 SMP/E

👉 System Modification Program / Extended
👉 gerenciador de instalação e manutenção


📦 SYSMOD

👉 pacote de mudança

Tipos:

  • FUNCTION → instala produto
  • PTF → correção oficial
  • APAR → problema reportado
  • USERMOD → customização local

💣 Easter egg:

USERMOD mal feito vira dívida técnica eterna


🧬 CSI

👉 Consolidated Software Inventory

👉 banco VSAM onde tudo é registrado:

  • versões
  • dependências
  • histórico

💀 sem CSI consistente:

você não tem ambiente… tem sorte


🧠 FMID / RMID / UMID

  • FMID → origem (quem criou)
  • RMID → última substituição
  • UMID → updates incrementais

👉 isso é controle de versão REAL (muito antes do Git 😄)


🧱 COMO FUNCIONA O ARMAZENAMENTO

📦 O coração: CSI (VSAM)

👉 dataset VSAM KSDS

Contém:

  • ZONES
  • entradas de elementos
  • relações entre bibliotecas

🧩 ZONES (ARQUITETURA LÓGICA)

ZoneFunção
GLOBALíndice e controle
TARGETo que está rodando
DLIBbase confiável

💡 Insight de sênior:

🔥 TARGET mente
🔥 DLIB não mente


📁 TIPOS DE DATASETS DO SMP/E

🔹 SMPCSI

👉 o banco (VSAM)


🔹 SMPPTS

👉 staging dos SYSMODs (RECEIVE)


🔹 SMPLOG / SMPOUT

👉 logs e mensagens (onde está a verdade)


🔹 TARGET LIBRARIES

👉 executáveis (load modules)


🔹 DISTRIBUTION LIBRARIES (DLIB)

👉 base confiável (source, macros, objetos)


💣 Curiosidade:

DLIB geralmente NÃO é executável
e mesmo assim é mais importante que TARGET


⚙️ COMO O SMP/E FUNCIONA (O FLUXO QUE MANDA EM TUDO)

RECEIVE → APPLY → ACCEPT

🔹 RECEIVE

  • carrega SYSMOD
  • não altera sistema

🔹 APPLY

  • altera TARGET
  • muda runtime

💀 aqui nasce o problema


🔹 ACCEPT

  • atualiza DLIB
  • vira baseline

💣 Easter egg:

APPLY muda o presente
ACCEPT muda o futuro


🖥️ SMP/E NO ISPF (TELA VERDE RAIZ)

Acesso típico:

TSO SMPE

Menu clássico:

  • RECEIVE
  • APPLY
  • ACCEPT
  • RESTORE
  • LIST / REPORT

💡 Dica de sênior:

ISPF é interface…
mas quem manda é o JCL


⚙️ SMP/E VIA BATCH (MUNDO REAL)

Execução padrão:

//SMPE EXEC PGM=GIMSMP
//SMPCSI DD ...
//SYSIN DD *
SET BDY(TZONE).
APPLY CHECK.
/*

💣 Curiosidade:

todo clique no ISPF vira JCL por baixo


🧩 MCS — A LINGUAGEM DO SMP/E

Tudo começa com:

++PTF
++VER
++MOD

🔥 ++VER (O MAIS IMPORTANTE)

Define:

  • FMID
  • dependências
  • aplicabilidade

💀 erro aqui = APPLY FAIL


🔗 DEPENDÊNCIAS (ONDE O BICHO PEGA)

  • PRE → precisa antes
  • REQ → precisa junto
  • SUP → substitui

💣 80% dos erros de SMP/E:

👉 dependência não resolvida


🏗️ JCLIN — O SEGREDO QUE NINGUÉM TE CONTA

👉 não executa
👉 descreve o link-edit

💡 SMP/E aprende como montar o sistema


💀 erro clássico:

código certo… montagem errada


🧬 TRACKING (O NÍVEL QUE DIFERENCIA)

SMP/E sabe:

FMID → origem
RMID → substituição
UMID → updates

💡 Insight:

  • 1 RMID por elemento
  • vários UMIDs

👉 isso explica comportamento estranho


💣 CASO REAL (VOCÊ JÁ VIU ISSO)

👉 programa mudou comportamento

Causa:

  • novo PTF
  • RMID alterado
  • runtime atualizado

💀 não foi o código


⚠️ TROUBLESHOOTING RÁPIDO

Se der erro:

  1. leia SMPOUT
  2. verifique dependência
  3. cheque HOLDDATA
  4. valide zone
  5. rode APPLY CHECK

🍛 A PENSAR NA HORA DO ALMOÇO

👉 quantos bugs você debugou…

…que eram:

  • mudança de load module
  • alteração de ambiente
  • PTF aplicado

🚀 CONCLUSÃO (NÍVEL SÊNIOR)

💀 SMP/E não instala software
🔥 ele governa o estado do sistema


🔥 FRASE FINAL (ASSINATURA)

💣 “Seu código não mudou…
o mundo ao redor dele mudou — e você não viu.”

 

sábado, 14 de fevereiro de 2026

🔥💀 DÚVIDAS FREQUENTES SOBRE SMP/E

 

Bellacosa Mainframe explica smp/e para padawans

🔥💀 DÚVIDAS FREQUENTES SOBRE SMP/E

“o que todo mundo já errou… mas não admite”


🧠 1. SMP/E é só para sysprog?

👉 Resposta curta: SIM (na prática)

👉 Resposta real:

  • Dev COBOL não usa direto
  • Mas é impactado o tempo todo

💡 Se você é dev e entende SMP/E:

você para de sofrer debug desnecessário


⚙️ 2. Qual a diferença entre RECEIVE, APPLY e ACCEPT?

👉 Clássico:

RECEIVE → carrega
APPLY → instala (TARGET)
ACCEPT → oficializa (DLIB)

💥 Dica:

APPLY muda o ambiente
ACCEPT muda o futuro


💀 3. Posso dar APPLY direto em produção?

👉 Pode…

👉 Mas também pode:

  • quebrar sistema
  • gerar incidente
  • trabalhar de madrugada 😄

💡 Regra:

sempre APPLY CHECK + ambiente clone


🔁 4. O que faz o RESTORE?

👉 Volta para versão anterior usando DLIB

💡 Tradução:

botão “desfazer desastre”


🧩 5. O que é SYSMOD?

👉 Tudo que entra no SMP/E

Tipos:

  • PTF → correção
  • APAR → bug
  • FUNCTION → produto
  • USERMOD → custom

🧠 6. O que é CSI?

👉 Banco de dados do SMP/E

Guarda:

  • o que está instalado
  • histórico
  • dependências

💀 Sem CSI:

você está cego


🧬 7. O que são FMID, RMID e UMID?

👉 Controle de versão real:

  • FMID → origem
  • RMID → última substituição
  • UMID → updates

💡 SMP/E sabe mais do sistema do que você 😄


⚠️ 8. O que é HOLDDATA?

👉 Bloqueio de instalação

Tipos:

  • ERROR
  • SYSTEM
  • USER

💥 Ignorar HOLD:

pedir problema


🔗 9. Por que o APPLY falha?

👉 90% dos casos:

  • dependência (PRE/REQ)
  • HOLDDATA
  • zone errada
  • FMID incorreto

🧠 10. O que é ++VER?

👉 A linha mais importante do SYSMOD

Define:

  • onde instalar
  • dependências
  • compatibilidade

💡 Se der erro:

começa por aqui


🏗️ 11. O que é JCLIN?

👉 “manual de montagem” do load module

💡 Não executa… mas ensina o SMP/E


📦 12. Onde o SMP/E roda?

👉 Dentro do z/OS

Interfaces:

  • ISPF (tela)
  • JCL (produção)

❌ não é HMC


⚙️ 13. SMP/E automatiza manutenção?

👉 Sim (e deveria)

Com:

  • REXX
  • RECEIVE ORDER
  • scripts

💣 14. Por que meu COBOL mudou comportamento?

👉 Possíveis causas:

  • novo PTF
  • alteração de load module
  • mudança no runtime

💀 não foi seu código


🧠 15. Como evitar problemas com SMP/E?

👉 Checklist:

✔ APPLY CHECK
✔ validar dependências
✔ analisar HOLDDATA
✔ testar em clone
✔ só depois produção


🔥 BÔNUS — VERDADE FINAL

💀 “o erro raramente está no COBOL…
está no que mudou ao redor dele”