quinta-feira, 16 de janeiro de 2014

SMP/E na prática – SYSMOD Packaging sem medo

 

Bellacosa Mainframe apresenta smp/e sysmod packaging

SMP/E na prática – SYSMOD Packaging sem medo



🧠 Introdução – SMP/E não é bicho‑papão

Quem trabalha com z/OS cedo ou tarde se depara com ele: SMP/E. Para alguns, um monstro antigo. Para outros, um mal necessário. A verdade é simples:

SMP/E é só método, disciplina e leitura correta das MCS.

Neste post vamos direto ao ponto: SYSMOD Packaging, ou seja, como os produtos, correções e USERMODs são empacotados, entregues e entendidos pelo SMP/E.

Sem marketing. Sem misticismo. Só mainframe raiz.


📦 O que é um SYSMOD de verdade?

Todo SYSMOD é composto por duas partes inseparáveis:

  1. Conteúdo

    • módulos

    • macros

    • source

    • dados

    • HFS / JAR

  2. MCS – Modification Control Statements

    • instruções que dizem ao SMP/E como, onde e quando instalar

👉 Durante o RECEIVE, o SMP/E lê primeiro as MCS, cria as MCS entries e armazena tudo no SMPPTS.

Se as MCS estiverem erradas… não há santo que salve o APPLY.


🧾 Regras de ouro das MCS (decore isso)

  • Todas começam com ++

  • Colunas 1–2 obrigatórias

  • Terminam com ponto final (.)

  • Continuação de linha só se não houver ponto antes da coluna 73

  • Colunas 73–80 são ignoradas

📌 Erro clássico: esquecer o ponto final. Resultado? SMP/E surtando.


🪪 HEADER – identidade do SYSMOD

Toda SYSMOD começa com:

++HEADER

É aqui que o SMP/E descobre:

  • o tipo do SYSMOD

  • o SYSMOD‑ID

Tipos clássicos

  • FUNCTION – produto base

  • PTF – correção testada

  • APAR – correção de problema

  • USERMOD – correção local

Sem HEADER correto, não existe SYSMOD.


🧬 FMID – quem é o dono do código

O FMID (Function Modification ID):

  • tem 7 caracteres

  • identifica qual função é dona do elemento

  • aparece normalmente no ++VER

📌 Em FUNCTION SYSMOD, o FMID é o próprio SYSMOD‑ID.

Erro comum em prova e produção: FMID errado = APPLY recusado.


🔗 ++VER – o cérebro do SMP/E

O ++VER é obrigatório e define:

  • releases suportados

  • pré‑requisitos

  • co‑requisitos

  • supersedes

Principais operandos:

  • SREL – release do sistema

  • FMID – função dona

  • PRE – pré‑requisito

  • REQ – co‑requisito

  • SUP – supersede

👉 Sem ++VER, o SMP/E não confia em você.


🚦 ++HOLD – bloqueios controlados

Existem três HOLDs clássicos:

  • ERROR – correção com problema

  • SYSTEM – ação manual necessária

  • USER – regra local

O HOLD pode vir:

  • dentro do SYSMOD

  • ou separado em HOLDDATA

📌 HOLD não é erro. HOLD é controle.


🏗️ ++JCLIN – a planta da casa

O ++JCLIN descreve:

  • como o load module deve ser montado

  • quais objetos entram

  • qual link‑edit será usado

⚠️ JCLIN não executa JCL.

Ele apenas documenta a estrutura, permitindo RESTORE e rebuild corretos.

Sem JCLIN, o SMP/E fica cego.


🧩 MCS de elementos – o que realmente instala

Alguns exemplos:

  • ++MOD – módulo

  • ++SRC – source

  • ++MAC – macro

  • ++DATA – dados

  • ++HFS – arquivo Unix

  • ++JAR – JAR inteiro

  • ++JARUPD – update parcial

  • ++ZAP – patch binário

📌 ZAP e UPD alteram partes. DATA e HFS sempre substituem tudo.


☕ JAR no SMP/E (onde muita gente erra)

  • ++JAR → substituição total

  • ++JARUPD → update parcial

O SMP/E usa comandos do JDK para manipular o conteúdo.

Sim, Java também é mainframe.


📦 Técnicas de empacotamento SYSMOD

1️⃣ Relative File (tape)

  • clássico IBM

  • MCS em um arquivo

  • elementos em arquivos seguintes

  • usa RELFILE

Muito comum em FUNCTION SYSMOD.


2️⃣ Inline

  • MCS e conteúdo juntos

  • registros fixos de 80 bytes

  • simples e direto

⚠️ Dados variáveis exigem GIMDTS.


3️⃣ Indirect Library

  • MCS no SMPPTS

  • conteúdo fora (PDS indicado no APPLY)

  • comum em USERMOD

Flexível e perigoso se mal documentado.


4️⃣ GIMZIP Archive (Shopz / Internet)

  • entrega moderna

  • tudo compactado

  • inclui MCS, conteúdo e HOLDDATA

Base do RECEIVE FROMNETWORK.


❌ Pegadinhas clássicas (anota aí)

  • ++MOD não é o último MCS

  • Inline com RELFILE

  • FMID inexistente

  • SREL inválido

  • falta de ponto final

👉 Todas já derrubaram produção algum dia.


🧠 Conclusão – SMP/E é método

RECEIVE entende
APPLY constrói
ACCEPT congela

Quando você entende SYSMOD Packaging, o SMP/E deixa de ser mistério e vira aliado.

Mainframe não é velho.
Velho é não saber o que está rodando.


💾 Até o próximo post. Porque mainframe bom é mainframe bem documentado.

Sem comentários:

Enviar um comentário