| Bellacosa Mainframe apresenta smp/e sysmod packaging |
📦 SMP/E for z/OS – SYSMOD Packaging
Entendendo MCS e técnicas de empacotamento sem dor de cabeça
🧠 Ideia central (em uma frase)
SYSMOD = conteúdo + instruções (MCS)
O como, onde e quando instalar é decidido pelas MCS.
🧩 O que existe dentro de um SYSMOD?
Todo SYSMOD tem duas coisas:
-
Texto de modificação
-
módulos
-
macros
-
source
-
dados
-
HFS / JAR
-
-
MCS – Modification Control Statements
-
instruções para o SMP/E
-
dizem onde, quando e em que ordem instalar
-
📌 Durante o RECEIVE, o SMP/E:
-
lê primeiro as MCS
-
grava tudo no SMPPTS
-
cada SYSMOD vira uma MCS entry
🧱 Tipos de elementos em DLIB / TLIB
| Tipo | O que é |
|---|---|
| Module | Código compilado/ligado |
| Macro | Fonte reutilizável |
| Source | Código fonte |
| Data | CLIST, PARM, PROC etc |
| HFS | Arquivos Unix |
| JAR | Java Archive |
🧾 Regras básicas das MCS (cai em prova)
-
Todas começam com
++ -
Colunas 1–2 →
++ -
Terminam com ponto (.)
-
Podem continuar linha se não houver ponto antes da coluna 73
-
Colunas 73–80 são ignoradas
🪪 HEADER e identificação do SYSMOD
++HEADER
-
identifica o tipo do SYSMOD
-
define o SYSMOD-ID
Tipos de SYSMOD
| Tipo | Para quê |
|---|---|
| FUNCTION | Introduz produto |
| PTF | Correção testada |
| APAR | Correção de problema |
| USERMOD | Correção local |
🧬 FMID — quem “é dono” do código
-
FMID = Function Modification ID
-
7 caracteres
-
identifica a função dona do elemento
-
em FUNCTION, o FMID é o próprio SYSMOD-ID
📌 Todo SYSMOD exceto base FUNCTION usa FMID no ++VER.
🔗 ++VER — relacionamento e dependências
O ++VER é o cérebro da compatibilidade
Regras:
-
Obrigatório
-
Deve vir logo após o HEADER
-
Define:
-
release suportado (SREL)
-
dependências
-
pré-requisitos
-
co-requisitos
-
supersedes
-
Operandos importantes
| Operando | Função |
|---|---|
| SREL | Release do sistema |
| FMID | Função dona |
| PRE | Pré-requisito |
| REQ | Co-requisito |
| SUP | Supersede |
🚦 ++HOLD — bloqueios controlados
Existem 3 tipos:
| Tipo | Quando usar |
|---|---|
| ERROR | PTF com erro |
| SYSTEM | Ação manual necessária |
| USER | Regra local |
📌 HOLD impede APPLY/ACCEPT até ser resolvido
📌 Pode vir no SYSMOD ou em HOLDDATA separado
🏗️ MCS estruturais – como o sistema é montado
++JCLIN
-
descreve como o load module é ligado
-
não executa, apenas é analisado
-
grava estrutura no TZONE
Sem JCLIN → SMP/E não sabe reconstruir load modules.
🧩 MCS de elemento (o que será instalado)
| MCS | O que instala |
|---|---|
| ++MOD | Módulo |
| ++SRC | Source |
| ++MAC | Macro |
| ++DATA | Dados |
| ++HFS | Arquivo Unix |
| ++JAR | JAR inteiro |
| ++ZAP | Patch binário |
| ++SRCUPD | Update de source |
| ++MACUPD | Update de macro |
| ++JARUPD | Update parcial de JAR |
📌 ZAP / UPD = alteração parcial
📌 DATA / HFS = sempre substituição total
☕ JAR no SMP/E (pegadinha comum)
-
++JAR→ substitui o JAR inteiro -
++JARUPD→ atualiza arquivos internos -
SMP/E usa comandos do JDK (jar x / jar u)
📦 Técnicas de empacotamento SYSMOD
Como o conteúdo chega até o SMP/E
1️⃣ Relative File (tape)
📼 Clássico IBM
-
MCS em um arquivo
-
elementos em arquivos seguintes
-
usa
RELFILE
✔️ Muito usado em FUNCTION SYSMOD
2️⃣ Inline
📄 Tudo junto
-
MCS + conteúdo no mesmo arquivo
-
registros fixos de 80 bytes
-
simples, direto
⚠️ Dados variáveis precisam de GIMDTS
3️⃣ Indirect Library
📚 USERMOD raiz
-
MCS no SMPPTS
-
conteúdo fica fora (PDS indicado no APPLY)
-
usa
TXLIB,LKLIB
✔️ Ideal para USERMOD
4️⃣ GIMZIP Archive
🌐 Moderno / rede
-
arquivo compactado no HFS
-
inclui:
-
MCS
-
elementos
-
HOLDDATA
-
-
usa:
-
GIMZIP
-
GIMUNZIP
-
RECEIVE FROMNETWORK
-
✔️ Base do Shopz / Internet delivery
❌ “What’s wrong with this picture?” (clássico de prova)
Erros comuns:
-
++MOD não é o último MCS
-
Inline com RELFILE
-
FMID ausente
-
Falta ponto final
-
SREL inválido (2038 ≠ Z038)
🧠 Resumo final (para memorizar)
🔑 RECEIVE lê MCS
🔑 APPLY instala no target
🔑 ACCEPT congela no DLIB
🔑 ++VER controla dependências
🔑 JCLIN explica como montar
🔑 Packaging define onde está o conteúdo
Sem comentários:
Enviar um comentário