| Bellacosa Mainframe apresenta SMP/E Restore |
SMP/E for z/OS Workshop
RESTORE: quando o Apply deu ruim e você precisa voltar no tempo (sem desligar a produção)
Se APPLY é instalar e ACCEPT é oficializar, RESTORE é o botão de “desfaz” do SMP/E.
Mas não se engane: RESTORE não é CTRL+Z. Ele exige entendimento profundo de dependências, níveis de serviço e do que está no target versus no distribution.
Vamos destrinchar isso no melhor estilo Bellacosa Mainframe: sem romantismo, com realidade de produção.
O que é o comando RESTORE no SMP/E?
O RESTORE permite remover um ou mais SYSMODs aplicados no target, reinstalando o nível existente nos DLIBs (distribution libraries) de volta para as target libraries.
📌 Ponto-chave
RESTORE só funciona para SYSMODs que foram APPLIED e ainda NÃO ACCEPTED.
Na prática:
-
Algo foi aplicado
-
Quebrou, gerou erro, impacto funcional ou regressão
-
Você precisa voltar o código para o último nível aceito
RESTORE entra em ação.
Onde o RESTORE atua?
RESTORE é sempre direcionado a um Target Zone:
Esse target zone:
-
Identifica as target libraries
-
Mapeia qual distribution zone (DZONE) contém o backup válido
-
Será atualizado com os metadados corretos após o restore
📦 O SMP/E não inventa código
Ele reinstala exatamente o que está nos DLIBs.
O que o RESTORE realmente faz?
Durante o processamento, o SMP/E:
✔ Substitui os elementos do target pelos elementos do DLIB
✔ Reexecuta link-edit se necessário
✔ Copia FMID, RMID e UMID do DZONE para o TZONE
✔ Atualiza o CSI
✔ Remove registros do SYSMOD restaurado (dependendo das opções)
Ou seja:
O target volta a refletir o último nível oficialmente aceito.
RESTORE vs APPLY – parecem iguais, mas não são
| APPLY | RESTORE |
|---|---|
| Usa SMPPTS | Usa DLIBs |
| Entrada: Global Zone + SMPPTS | Entrada: DZONE + DLIBs |
| Instala novo código | Reinstala código anterior |
| Avança nível | Retrocede nível |
👉 Ambos atualizam Target Libraries e Target Zone, mas com propósitos opostos.
Inline JCLIN e SMPCDS: o detalhe que derruba gente experiente
Se o SYSMOD a ser restaurado possui inline JCLIN, o SMP/E precisa do SMPCDS.
Por quê?
Porque o SMPCDS contém:
-
Backup da estrutura do TZONE
-
Informações necessárias para restaurar corretamente macros, source e datasets
Sem isso, o RESTORE pode:
-
Falhar
-
Ou deixar o ambiente inconsistente
O comando RESTORE na prática
Exemplo básico:
Operandos importantes
🔹 SELECT (obrigatório)
Define quais SYSMODs você quer remover.
🔹 GROUP (a parte traiçoeira)
No RESTORE, o GROUP funciona ao contrário do APPLY.
-
APPLY: GROUP busca pré-requisitos ausentes
-
RESTORE: GROUP busca SYSMODs que DEPENDEM do selecionado
👉 Se um SYSMOD depende do que você quer remover, ele também precisa ser restaurado.
🔹 CHECK (sempre use!)
CHECK:
-
Não altera nada
-
Analisa dependências
-
Mostra mensagens do tipo GIM35922I
📌 Dica Bellacosa:
Raramente o primeiro RESTORE CHECK resolve tudo.
Rode, leia os relatórios, ajuste o SELECT, rode de novo.
Exemplo clássico de dependências (vida real)
Temos 7 PTFs aplicados:
Somente UP00001 foi ACCEPTED.
🎯 Objetivo: restaurar UP00003
Pergunta clássica de prova e produção:
Posso restaurar só o UP00003?
❌ Não.
Você também precisa restaurar:
-
UP00005
-
UP00007
Porque dependem diretamente dele.
Onde descobrir isso sem chutar?
1️⃣ Mensagens SMP/E (ex: GIM35922I)
2️⃣ SYSMOD Status Report
3️⃣ CAUSER SYSMOD SUMMARY REPORT ← o mais importante
Esse relatório explica:
-
Por que o RESTORE falhou
-
Quais SYSMODs estão bloqueando
-
O que falta no SELECT
O que o SMP/E remove após um RESTORE bem-sucedido?
Se NOREJECT = OFF:
-
Remove entrada do SYSMOD no Global Zone
-
Remove MCS do SMPPTS
-
Remove SMPTLIBs (se existirem)
⚠️ HOLD DATA NÃO É REMOVIDA
Se NOREJECT = ON:
-
Remove apenas APPID do Target Zone
RESTORE não é simples (e nunca foi)
RESTORE pode se tornar complexo quando:
-
Muitos PTFs aplicados
-
DLIB muito atrás do Target
-
Cadeias longas de dependência
👉 É comum rodar:
Até fechar todo o quebra-cabeça.
Conclusão Bellacosa Mainframe
RESTORE é:
-
Uma ferramenta poderosa
-
Um salva-produção
-
Um teste de maturidade do system programmer
Quem domina RESTORE:
✔ Entende dependências
✔ Entende níveis de serviço
✔ Não entra em pânico quando APPLY quebra
APPLY instala. ACCEPT oficializa. RESTORE ensina humildade.
No próximo módulo, o foco sai do SMP/E operacional e entra no product build — onde o código nasce antes de virar SYSMOD.