| Bellacosa Mainframe apresenta SMP/E Execition Requirements |
SMP/E for z/OS Workshop – Execution Requirements
O dia em que o SMP/E acorda para trabalhar ☕🖥️
Quem já administrou SMP/E sabe: ele não roda sozinho. Antes de qualquer RECEIVE, APPLY ou ACCEPT, existe um ritual sagrado chamado Execution Requirements. É aqui que muita gente tropeça, cria JCL quilométrico ou passa a madrugada brigando com DD statement faltando.
Neste post, vamos destrinchar como o SMP/E é executado, quais datasets ele exige, e por que a alocação dinâmica é um divisor de águas, tudo no melhor estilo Bellacosa Mainframe: prático, direto e com dicas que salvam produção.
🧭 Formas de invocar o SMP/E
O SMP/E pode ser iniciado de duas formas clássicas:
1️⃣ Diálogos ISPF
Painéis interativos
Geram JCL automaticamente
Ideais para aprendizado e tarefas pontuais
2️⃣ Batch (JCL direto)
Total controle do ambiente
Essencial para automação e produção
Base para procedures catalogadas
💡 Dica Bellacosa: ISPF ensina, batch sustenta produção.
⚙️ O coração da execução: GIMSMP
Toda execução do SMP/E passa por ele:
//EXEC PGM=GIMSMP
Ou por uma procedure catalogada que, no fundo, também chama o GIMSMP.
Parâmetros importantes no EXEC
| Parâmetro | Função |
|---|---|
| CSI | Dataset do Global Zone |
| DATE | Timestamp das entradas no CSI |
| LANGUAGE | Idioma das mensagens (default EN) |
| PROCESS | WAIT ou END quando recurso não está disponível |
📌 Erro comum: esquecer o CSI e confiar que o SMP/E vai “adivinhar”. Ele não adivinha.
📦 Os datasets primários do SMP/E
O SMP/E trabalha com 10 datasets primários, variando conforme o comando:
| DDNAME | Função |
|---|---|
| SMPPTS | Temporary storage de SYSMOD |
| SMPMTS | Temporary storage de macros |
| SMPSTS | Temporary storage de source |
| SMPLTS | Temporary storage de load modules |
| SMPSCDS | Save control datasets |
| SMPLOG | Log do SMP/E |
| SMPCSI | VSAM cluster do Global Zone |
| Target Zones | Controle do target |
| DLIB Zones | Controle de distribuição |
🚨 SMPPTS: pequeno no físico, gigante no impacto
SMPPTS é PDS
PDS = um único volume físico
Limitação real em ambientes grandes
A solução moderna: SMPPTS Spill
SMPPTS
SMPPTS1
SMPPTS2
...
SMPPTS99
🔧 Pode ser definido via:
DD statements
DDDEFs em todas as zones (GZONE, TZONE, DZONE)
💡 Dica Bellacosa: Se esquecer de definir spill em uma zone, o erro aparece só quando dói.
🗂️ Zones e alocação automática
SMPCSI aponta para o Global Zone
Zone Index no GZONE permite alocação dinâmica de:
Target Zones
Distribution Zones
📌 Se não houver DD explícito, o SMP/E consulta o Zone Index.
📥 RECEIVE: datasets clássicos
| DDNAME | Conteúdo |
|---|---|
| SMPPTFIN | SYSMOD input (CBPDO, ESO, CUM) |
| SMPHOLD | ++HOLD / ++RELEASE |
📼 Curiosidade raiz:
CBPDO: SMPPTFIN costuma ser o 5º file
HOLDDATA geralmente o 3º file
🔧 APPLY / ACCEPT: quem entra em cena
TXLIB / LKLIB → texto de modificação
SYSLIB → concatenação de macros, objetos e loads
SMPJCLIN → leitura estrutural de SYSGEN / GENERATE
📌 Sem SMPJCLIN bem definido, o SMP/E fica cego para a estrutura do sistema.
🧾 Controle, parâmetros e saída
Comando SMP/E
SMPCNTL → comandos
SMPPARM → customização
Saídas principais
| DDNAME | Conteúdo |
|---|---|
| SMPLIST | LIST output |
| SMPRPT | Reports |
| SMPOUT | Mensagens SMP/E |
| SYSPRINT | Saída de utilities |
| SMPSNAP | Dump em erro severo |
| SMPPUNCH | Unload, BUILDMCS |
🌐 SMP/E e HFS (Network Install)
SMPDIR define diretórios HFS
Necessário para RECEIVE FROMNETWORK
DDDEF não define arquivo, apenas diretório
📌 Use DD para arquivos, DDDEF para diretórios.
🎯 O problema: DD demais
Resultado clássico:
Procedures enormes
Duplicadas por zone
Difíceis de manter
A solução profissional: Alocação Dinâmica
🔄 Dynamic Allocation: o pulo do gato
O SMP/E busca informações nesta ordem:
1️⃣ DD statements no JCL
2️⃣ Parâmetros EXEC (CSI)
3️⃣ Zone Index do Global Zone
4️⃣ DDDEFs da zone atual
5️⃣ GIMDDALC (SMPPARM)
6️⃣ Defaults
Quando encontra, para a busca.
🏆 Vantagens reais da alocação dinâmica
1️⃣ Override fácil
Precisa mudar algo pontual?
Basta um DD no JCL
2️⃣ Mesmo DDNAME, datasets diferentes por zone
Teste ≠ Produção
Sem procedures duplicadas
3️⃣ Menos enqueue, mais controle
Dataset liberado a cada SET
Não fica preso ao JOB STEP inteiro
💡 Bellacosa Truth: Uma boa estratégia de DDDEF reduz 80% da dor operacional.
📊 File Allocation Report
Gerado para todo comando exceto SET
Gravado no SMPRPT
Lista DDNAME → dataset físico
Inclui HFS e links simbólicos
📌 Ferramenta essencial para auditoria e troubleshooting.
🧠 Conclusão Bellacosa
SMP/E não é difícil. Difícil é entender quem manda em quem.
Quando você domina:
execução via GIMSMP
papel de cada dataset
alocação dinâmica
…o SMP/E deixa de ser um monstro e vira um mordomo extremamente exigente.
No próximo capítulo do workshop, entramos no RECEIVE e REJECT, o primeiro passo real da cadeia de instalação.
🚀 Continue firme. Mainframe não perdoa, mas recompensa quem estuda.
Sem comentários:
Enviar um comentário