segunda-feira, 3 de agosto de 2009

🔄 COBOL Batch no Mainframe: Checkpoint, Reprise e o Restart que salva a madrugada

 

Bellacosa Mainframe fala sobre restart em programa cobol mainframe

🔄 COBOL Batch no Mainframe: Checkpoint, Reprise e o Restart que salva a madrugada

“Batch não cai. Batch desmaia… e você tem que acordar ele do jeito certo.” ☕🧾🕒

No mundo distribuído, o povo reinicia “do zero” e chama isso de solução.
No Mainframe, isso é quase uma confissão de pecado técnico.

Quando dá ruim em batch, a pergunta não é “por que parou?” — isso é assunto pro pós-mortem.
A pergunta certa, ainda na especificação, é:

👉 Como eu reinicio?
👉 De onde eu reinicio?
👉 E o que eu garanto que não vai duplicar / corromper / relançar?

Bem-vindo ao trio de respeito:
checkpoint
reprise (restart)
reposicionamento (arquivo/DB2)


🧠 Checkpoint: o “save game” do batch (só que aqui vale dinheiro)

Checkpoint não é “vamos salvar porque sim”. É um ponto de consistência.

Ele serve pra:

  • memorizar onde o processamento estava (fase/etapa)

  • guardar posições de leitura (arquivos sequenciais, VSAM, cursores/chaves DB2)

  • fechar uma unidade lógica consistente (commit/rollback bem amarrado)

  • permitir retomada sem retrabalho e sem “efeito duplicado”

📌 Tradução Bellacosa:

Checkpoint é onde você consegue provar pro auditor que não inventou saldo no escuro.

⚠️ O pecado mortal: checkpoint mal posicionado

Checkpoint ruim é pior que nada, porque ele te dá uma falsa sensação de segurança.

Não coloque checkpoint:

  • no meio de uma atualização crítica

  • antes de terminar uma consistência lógica

  • em cada registro “porque sim” (CPU chorando, log estourando, IRLM te olhando feio)

Coloque checkpoint:

  • depois de um bloco lógico fechado (ex.: lote de N registros com commit)

  • quando “o mundo faz sentido” (estado consistente)

  • antes de uma parte custosa, mas não no meio da cirurgia


♻️ Reprise (Restart): o batch voltando “com memória”

Reprise é o batch saber voltar sem refazer o que já foi feito e sem duplicar o que não pode duplicar.

Ela é necessária especialmente quando:

  • o batch é longo (madrugada inteira)

  • tem DB2 update (conta, saldo, lançamento, baixa, contabilização)

  • o negócio não aceita “roda de novo e vê no que dá”

  • existe risco de duplicidade (dois lançamentos iguais = fogo no parquinho)

📌 Restart não é só “rodar outra vez”.
Restart é retomar a transação do negócio, com rastreabilidade.


🧷 Reposicionamento: o detalhe que separa homem de menino

Restart sem reposicionamento é “restart de brincadeira”.

Você precisa voltar exatamente:

  • no registro correto do arquivo

  • na chave correta do VSAM

  • no ponto certo do cursor DB2 (na prática: reiniciar lógica por chave/estado salvo)

🎯 O batch tem que saber:

  • qual fase estava executando

  • qual registro/chave estava sendo processado

  • qual unidade de commit já foi confirmada

  • qual parte não pode repetir


🧩 Arquitetura clássica de batch com reprise “de respeito”

Um ciclo bem resolvido (a operação agradece):

  1. Inicialização / parâmetros

  2. Validações

  3. Detecta reprise (rodada normal ou restart?)

  4. Carrega checkpoint (fase + posição + chaves)

  5. Reposiciona entradas (arquivo/DB2)

  6. Loop principal

    • regra de negócio

    • atualização (DB2/arquivos)

    • commit por unidade lógica

    • checkpoint em pontos definidos

  7. Finalização

  8. “Checkpoint final” (término normal)

📌 Easter egg de produção:

Se você não tem “checkpoint final de sucesso”, vai ter madrugada com restart de batch que já terminou — e ninguém acredita até acontecer.


🧨 O vilão silencioso: duplicidade

O inferno do batch não é “parar”.
O inferno é parar depois de atualizar metade.

Por isso, todo batch com reprise tem que decidir:

  • vou garantir idempotência? (rodar de novo não duplica)

  • vou garantir commit controlado? (unidades fechadas)

  • vou guardar marcador de processado? (chave/flag/tabela de controle)

✅ Padrões usados:

  • Tabela de controle com status por chave/lote

  • Commit a cada N registros (N definido por volume, log, tempo)

  • Chave de negócio + verificação (“já processei isso?”)

  • Writes “safe” (criar saída nova e só no final fazer swap/rename)


📂 “Nem todo batch precisa de reprise” (mas todo batch precisa de juízo)

Batch que só:

  • lê arquivo

  • gera relatório

  • faz sorting

  • produz uma saída recriável

…muitas vezes reexecutar resolve.

Só que:

  • nunca reexecute “por cima” de saída velha sem estratégia

  • garanta limpeza/geração atômica (work datasets → output final)

📌 Dica prática:

Use datasets temporários e só “promova” pro nome final no fim. Batch que morre não deixa meia saída fingindo que tá certa.


🧾 Dicas Bellacosa de restart que evitam velório

  • Checkpoint = fase + posição + contexto. Não guarde só o número do registro; guarde o porquê.

  • Mensagem clara no log: “RESTART AT STEP X / KEY Y / FILE POS Z”. Operação ama isso.

  • Commit e checkpoint têm que conversar: checkpoint sem commit consistente é cilada.

  • Se atualiza DB2, trate o restart como requisito de negócio, não “extra”.

  • Testar restart é obrigatório: simule abend no meio e valide se volta certo.


☕ Fechando no estilo madrugada

No Mainframe, reprise é arquitetura, checkpoint é disciplina, e restart é respeito.

Batch sem reprise em processo crítico é igual:

“depois eu vejo”
só que o “depois” geralmente é 03:17 com telefone tocando e gente jurando que “nunca aconteceu antes”.


domingo, 2 de agosto de 2009

🧠☕ Product Vision no Estilo Bellacosa Mainframe

 

Bellacosa Mainframe apresenta product vision com elevator pitch


🧠☕ Product Vision no Estilo Bellacosa Mainframe

Ou: por que até produto moderno precisa de disciplina de mainframe


🧭 Pergunta raiz (a.k.a. “JOB card do Produto”)

The most effective Product Vision format uses what methodology?
Resposta curta, direta e sem IF ELSE desnecessário:

👉 Elevator Speech (ou Elevator Pitch)

Agora segura esse commit, porque vamos explicar como um conceito de produto moderno conversa diretamente com a mentalidade do mainframe — com história, fofoca, easter eggs e aquele tempero “El Jefe” ☕💼.


🏛️ Origem & História (ou: nada nasce em microserviços)

🎤 Elevator Speech

O Elevator Speech nasce no mundo corporativo americano, décadas atrás, com uma premissa simples:

“Se você tivesse apenas o tempo de um elevador para convencer alguém importante, o que você diria?”

📦 Normalmente: 30 a 60 segundos
📌 Público: executivo, investidor, sponsor, board
🎯 Objetivo: clareza absoluta + impacto imediato

👉 No mundo de Product Vision, ele virou padrão porque:

  • Força foco

  • Elimina ruído

  • Obriga o time a saber o que NÃO é o produto

📢 Mainframe feelings:
É o mesmo princípio de explicar um sistema core bancário em 3 frases antes da diretoria mandar “vamos para o próximo assunto”.


🧪 Comparando os formatos (como um bom JCL COMMENT)

❌ Laconic Speech

  • Curto demais

  • Soa vago

  • Parece RACF mal documentado
    📉 “Não dá contexto, só slogan”

❌ Crisp Presentation

  • Bom para slides

  • Ruim para alinhar visão estratégica

  • Vira PowerPoint bonito sem alma
    📉 “Muito SHOW, pouco JOB”

❌ Brief Report

  • Denso

  • Técnico

  • Mata a inspiração
    📉 “É o SMF record do produto”

✅ Elevator Speech (O CAMPEÃO)

  • Simples

  • Direto

  • Memorável

  • Replicável pelo time inteiro
    📈 “Todo mundo consegue repetir no café”


🧩 Estrutura clássica do Elevator Speech (a “COPYBOOK” da Product Vision)

Modelo mais famoso (Geoffrey Moore):

For (target customer)
Who (statement of the need)
The (product name)
Is a (product category)
That (key benefit)
Unlike (primary competitor)
Our product (key differentiator)

📌 Isso é Product Vision executável, não poesia.


🧠 Exemplo prático (com cheiro de datacenter)

For grandes bancos brasileiros
Who precisam processar milhões de transações críticas por segundo
The CorePay Z
Is a plataforma de processamento financeiro
That garante alta disponibilidade, segurança e integridade dos dados
Unlike soluções distribuídas instáveis
Our product roda em IBM Z com confiabilidade de décadas

💥 Se o diretor entendeu isso, o produto vive.


🧨 Fofoca corporativa (porque Bellacosa conta bastidor)

👀 Muitas empresas:

  • Dizem que têm Product Vision

  • Mas na prática só têm roadmap de features

💣 Resultado?

  • Produto sem identidade

  • Squad puxando para lados diferentes

  • “Retrabalho” (o famoso RESTART STEP=) eterno

📌 Times maduros sempre começam com Elevator Speech antes do Jira.


🥚 Easter Eggs (para os atentos)

  • Elevator Speech ≈ Mensagem inicial de um dump

  • Se não explica em 1 minuto, nem o operador vai entender

  • Jeff Bezos proibiu PowerPoint → preferia narrativas curtas e claras

  • Mainframe já fazia isso nos anos 70:

    “Este sistema liquida operações bancárias nacionais com consistência e disponibilidade 24x7”

👑 Isso é Product Vision raiz.


🧠 Comentário “El Jefe”

❝ Se você não consegue explicar seu produto em um elevador,
você não tem um produto — só um monte de código rodando. ❞


🧷 Dicas práticas (para aplicar amanhã)

✔️ Crie o Elevator Speech antes do backlog
✔️ Todo dev deveria saber recitar a visão
✔️ Se cada pessoa descreve diferente → ABEND de visão
✔️ Revise a Product Vision a cada grande mudança estratégica


🏁 Conclusão (RETURN CODE 0)

📌 A metodologia mais efetiva para Product Vision é o Elevator Speech, porque:

  • Cria alinhamento

  • Força clareza

  • Evita desperdício

  • Funciona do board ao data center

☕ E como diria o Bellacosa Mainframe:

Produto bom é aquele que até o mainframe entenderia.


sábado, 1 de agosto de 2009

🧩SMP/E: USERMOD na prática

 

Bellacosa Mainframe apresenta IBM SMP/E

🧩 USERMOD na prática

Poder absoluto nas mãos erradas (ou a salvação do sysprog)

“USERMOD é liberdade.
USERMOD sem controle é tragédia.”


🧠 O que é USERMOD (sem romantizar)

USERMOD é um SYSMOD criado pelo próprio cliente, não pela IBM.

Ele permite:

  • Ajustes locais

  • Correções temporárias

  • Customizações específicas

  • Patches emergenciais

👉 Em Bellacosa claro:

USERMOD é mexer no z/OS sem a IBM te segurar a mão.


🕰️ Origem do USERMOD

USERMOD nasceu da necessidade real:

  • A IBM não entrega tudo pronto

  • Ambientes são únicos

  • Nem toda correção pode esperar um PTF oficial

📌 Mas a IBM sempre deixou claro:

USERMOD é por sua conta e risco.


🧩 Quando USERMOD faz sentido

✔ Ajuste emergencial
✔ Correção temporária
✔ Customização local
✔ Teste de solução
✔ Mitigação até PTF oficial

❌ Substituir manutenção IBM
❌ “Resolver rápido” sem documentação
❌ Correção definitiva


⚠️ Riscos reais do USERMOD

  • Conflito com PTF futuro

  • Perda de suporte IBM

  • Dificuldade em upgrades

  • Dependências invisíveis

  • Esquecimento (o pior de todos)

👉 USERMOD mal documentado vira fantasma.


🧠 USERMOD e SMP/E

USERMOD:

  • É tratado como SYSMOD

  • Tem MCS

  • Usa RECEIVE/APPLY/ACCEPT

  • Entra no CSI

📌 Se não está no SMP/E, não existe.


🧾 Estrutura básica de um USERMOD

Exemplo simples

++USERMOD(UM0001). ++VER(Z038) FMID(HJES770). ++MOD(JES2MOD).

👉 Tradução:

  • USERMOD UM0001

  • Para JES2

  • Modificando módulo específico


🔎 Boas práticas de MCS em USERMOD

Sempre usar:

  • ++VER → versão correta

  • ++IF → controle condicional

  • ++HOLD → alertar risco

  • Comentários claros

💡 Dica Bellacosa:

“USERMOD sem ++VER é roleta russa.”


🧪 APPLY CHECK é obrigatório

Nunca aplique USERMOD direto:

APPLY CHECK.

Avalie:

  • Impacto

  • Conflitos

  • Pré-requisitos

  • PTFs existentes


🔄 USERMOD x PTF futuro

Quando um PTF oficial sai:

  • Ele pode sobrescrever o USERMOD

  • Ele pode falhar por causa do USERMOD

  • Ele pode exigir remoção do USERMOD

📌 Processo saudável:

  1. Identificar USERMOD afetado

  2. RESTORE USERMOD

  3. APPLY PTF

  4. Descartar USERMOD


📦 ACCEPT de USERMOD: pense duas vezes

❗ ACCEPT de USERMOD é perigoso.

Só faça se:

  • For permanente

  • For bem documentado

  • For aprovado formalmente

👉 ACCEPT grava na história.


🧠 Caso real (Bellacosa clássico)

USERMOD criado em 2014
Ninguém lembra por quê
Upgrade falha em 2025
PTF não aplica

📌 Moral:

USERMOD esquecido custa caro.


🎓 Como aprender USERMOD com segurança

  • Estudar MCS

  • Praticar em laboratório

  • Simular conflito

  • Ler Redbooks

  • Usar SMP/E Workshop


🧠 Curiosidades Bellacosa

  • USERMOD já salvou sistemas críticos

  • USERMOD já derrubou produção

  • USERMOD nunca deve ser invisível


🧾 Comentário final – USERMOD

USERMOD é bisturi, não martelo.
Use com precisão.
Documente tudo.

🧩💾🔥


domingo, 5 de julho de 2009

🧠 Padawan, aproxime-se do console… hoje o assunto é: Monitoramento de Disco no IBM Mainframe

 
Bellacosa Mainframe apresenta storage no ZOS

🧠 Padawan, aproxime-se do console… hoje o assunto é: Monitoramento de Disco no IBM Mainframe

(ou: como não deixar o DASD virar o Lado Sombrio da Força)


📜 Um pouco de história (porque no mainframe nada nasce ontem)

Antes de existir storage definido por software, cloud ou “é só aumentar o volume”, já existia DASDDirect Access Storage Device.
Nos primórdios, isso significava discos gigantes, barulhentos, caríssimos e venerados 🛐.

👉 O mainframe sempre tratou disco como recurso nobre.
Nada de “joga log fora depois a gente vê”.

E aí entra o lendário…


IBM Mainframe unidade de disco 

💿 DASD – Direct Access Storage Device

No mundo z/OS, disco não é disco, é DASD.
E DASD tem personalidade, etiqueta e hierarquia.

Tipos clássicos

  • 📀 3380 – Jurassic Park (ainda aparece em livro antigo)

  • 💿 3390 – O padrão ouro (e nosso foco)

  • 🧠 EAV / EAS – Extended Address Volumes (para os discos gigantes de hoje)


Unidade de disco 3390 antiga

🧱 O mito do 3390

📦 O que é um 3390?

Um modelo lógico de disco, não importa se o storage físico é:

  • DS8K

  • Flash

  • NVMe disfarçado de DASD

👉 Para o z/OS, continua sendo um 3390, com:

  • 📐 Trilhas

  • 📊 Cylinders

  • 🧮 Extents

Tamanhos clássicos

TipoCylinders
3390-11.113
3390-33.339
3390-910.017
3390-2732.760
EAVmilhões 😈

🧠 Easter Egg:

Mesmo em storage 100% flash, o z/OS ainda “pensa” em trilhas.
Legacy não morre, evolui.


👀 Por que monitorar DASD, Padawan?

Porque disco cheio não avisa com carinho.
Ele derruba job, trava aplicação e chama gerente.

Riscos clássicos

  • 🚨 Volume acima de 85%

  • 🚨 Fragmentação absurda

  • 🚨 Catálogo estourado

  • 🚨 Extents demais por dataset

  • 🚨 Sorts falhando sem espaço temporário


🛠️ Ferramentas nativas (sem gastar um centavo)

📟 SDSF

Seu sabre de luz inicial.

Comandos úteis:

DA

ou

/D U,DASD,ONLINE

Você vê:

  • Volume

  • Device Type (3390)

  • Online/Offline

  • Uso geral


🧾 IDCAMS – O velho sábio

LISTCAT LEVEL(SYS1) ALL

Ou para volumes:

LISTCAT VOLUME(VOL001)

📌 Mostra:

  • Quantos datasets

  • Extents

  • Fragmentação

  • Catálogo

🧠 Easter Egg:

LISTCAT mal interpretado já causou pânico desnecessário em muito CPD.


🧪 DFSMS – O cérebro invisível

Se você usa:

  • SMS

  • Storage Groups

  • Management Classes

Então o monitoramento precisa olhar:

  • Storage Group cheio

  • Pool desbalanceado

  • Volumes quentes vs frios

Comandos:

D SMS,SG D SMS,VOL

🧙‍♂️ Ferramentas corporativas (o lado premium da Força)

  • IBM Tivoli / OMEGAMON

  • BMC MainView

  • Broadcom SYSVIEW

Essas ferramentas:

  • Alertam antes do caos

  • Criam gráficos bonitos

  • Salvam operadores de madrugadas ruins ☕😵‍💫


📐 Métricas que todo Padawan deve decorar

🔢 Uso de volume

  • 🟢 Até 70% → zen

  • 🟡 70–85% → atenção

  • 🔴 > 85% → reunião marcada

🧩 Fragmentação

  • Muitos extents = performance ruim

  • VSAM sofre mais que sequential

🧮 Extents

  • Dataset com 200+ extents é pedido de REORG

  • Antigamente: limite era dor e sofrimento


🧪 Exemplo real (história de guerra)

“O batch sempre rodou… até hoje.”

Motivo?

  • Volume temporário (SORTWK) com 92%

  • Job falha com:

IEC070I 112-112

Solução?

  • Monitoramento

  • Alocação dinâmica

  • Limpeza automática

📌 Moral: disco cheio não falha… ele se vinga.


🧠 Curiosidades & Fofoquices de CPD

  • 🔍 Muitos ambientes ainda usam um único volume SYSRES

  • 🧓 Dataset criado em 1998 ainda rodando em produção

  • 😅 Volume “temporário” com dados críticos

  • 📦 Flash moderno, mas pensado como 3390-3


🧭 Dicas Bellacosa Mainframe™️

✔️ Nunca confie em volume acima de 80%
✔️ Monitore tendência, não só foto do momento
✔️ Volume “barato” é o que causa outage caro
✔️ Documente storage group (ninguém faz, todo mundo sofre)
✔️ Ensine o Padawan antes que ele vire Operador às 3h da manhã


🧩 Encerrando…

Monitorar DASD no mainframe não é só técnica —
é filosofia, história viva e respeito à máquina.

💬 “No mainframe, disco não acaba… ele avisa.
O problema é quando ninguém está ouvindo.”

sexta-feira, 3 de julho de 2009

🔷 RUNSTATS no DB2: Mantendo Estatísticas Sempre Frescas

 

Bellacosa Mainframe apresenta IBM Mainframe DB2 Runstats

🔷 RUNSTATS no DB2: Mantendo Estatísticas Sempre Frescas

No DB2 para IBM z/OS, RUNSTATS é a ferramenta que mantém o otimizador de consultas informado sobre os dados. Sem estatísticas precisas, o DB2 não consegue criar planos de execução eficientes, e suas queries podem ficar lentas ou pesadas.


🕰️ História e Origem

  • Nos anos 80, com bancos de dados relacionais massivos da IBM, surgiu a necessidade de coletar informações sobre o volume e distribuição dos dados.

  • O DB2 precisava de uma forma de “aprender” sobre tabelas e índices:

    • Quantas linhas existem

    • Quantas páginas são ocupadas

    • Distribuição dos valores em colunas

  • Assim nasceu o RUNSTATS, permitindo que o otimizador de consultas escolha o melhor caminho de acesso.

Pense no RUNSTATS como alimentar o cérebro do DB2 para que ele saiba onde estão os dados e como acessá-los mais rápido.


⚙️ O que o RUNSTATS faz?

O RUNSTATS coleta estatísticas sobre tabelas e índices, incluindo:

  1. Número de linhas

  2. Número de páginas (clusters e extent)

  3. Distribuição de valores em colunas (histogramas)

  4. Número de valores distintos

  5. Estatísticas de índice

Essas informações são usadas pelo otimizador DB2 para criar o plano de execução mais eficiente para SELECTs, JOINs e outras operações.


🔹 Sintaxe básica

RUNSTATS TABLESPACE nome_tabela TABLE(nome_tabela) AND INDEXES ALL;
  • TABLE(nome_tabela) → a tabela alvo

  • INDEXES ALL → coleta estatísticas de todos os índices da tabela

  • Pode ser executado em batch ou online, dependendo da criticalidade


🔹 Opções comuns

  • ON ALL COLUMNS → coleta histograma de todas as colunas

  • ON COLUMNS (col1, col2) → coleta histograma apenas de colunas importantes

  • WITH DISTRIBUTION ON → útil para colunas usadas em joins ou WHERE


💡 Dicas Bellacosa

  1. Rodar periodicamente → especialmente depois de grandes INSERTs/UPDATEs/DELETEs

  2. Priorizar colunas usadas em WHERE/JOIN → reduz custo de coleta de estatísticas

  3. Evite RUNSTATS durante pico de produção → pode causar I/O extra

  4. Use COPY + RUNSTATS em DB2 online → mantém performance sem travar aplicações

  5. Sempre verifique os planos de execução → o RUNSTATS influencia diretamente o EXPLAIN PLAN.


🔍 Curiosidades e Easter Eggs

  • O RUNSTATS não altera dados, apenas coleta informações.

  • Alguns DBAs brincam que “RUNSTATS é como fazer checkup anual no seu banco de dados” — sem ele, você dirige no escuro.

  • Se você fizer uma reorganização (REORG) e não rodar RUNSTATS, DB2 pode subestimar ou superestimar linhas → queries lentas.


📈 Impacto na Performance

  • Consultas mais rápidas → otimizador tem informações precisas

  • JOINs e filtros eficientes → DB2 escolhe índices corretos

  • Sem RUNSTATS → DB2 pode fazer table scan em vez de index scan, desperdiçando CPU e I/O

  • Em ambientes grandes (milhões de linhas), RUNSTATS planejado e incremental é crucial


🧪 Exemplo prático

Suponha que você tenha a tabela ORDERS no DB2 z/OS:

RUNSTATS TABLESPACE ORDSPACE TABLE(ORDERS) ON ALL COLUMNS AND INDEXES ALL;
  • DB2 coleta estatísticas de todas as colunas da tabela e de todos os índices.

  • Agora, quando você rodar:

SELECT CUSTOMERID, COUNT(*) FROM ORDERS WHERE ORDERDATE BETWEEN '2025-01-01' AND '2025-12-31' GROUP BY CUSTOMERID;
  • O otimizador usará estatísticas precisas para escolher o melhor índice e evitar full table scan.


🔑 Resumo Bellacosa

ConceitoDetalhe
O que éComando para coletar estatísticas sobre tabelas e índices
SintaxeRUNSTATS TABLESPACE ... TABLE(...) AND INDEXES ALL
Quando usarApós grandes mudanças nos dados, ou periodicamente
ImpactoMelhora planos de execução e performance de queries
Dicas BellacosaPriorize colunas usadas em WHERE/JOIN, evite horários de pico, combine com REORG

💡 Easter Egg:

Mesmo que você tenha todos os índices perfeitos, DB2 sem RUNSTATS é como ter mapas sem GPS — o otimizador pode escolher caminhos ruins e atrasar seu batch.

quinta-feira, 2 de julho de 2009

⚔️ Quando o Mundo Colidiu: Terços Espanhóis vs Samurais (1582)

 

Bellacosa Mainframe apresenta a batalha dos terços espanhois versus o samurais do periodo sengoku

⚔️ Quando o Mundo Colidiu: Terços Espanhóis vs Samurais (1582)

Uma lição de sistemas, disciplina e cultura — muito antes do mainframe existir

Se você acha que globalização começou com a internet, APIs ou cloud híbrida, sinto informar: em 1582 o mundo já rodava integrado, só que em modo batch marítimo, com latência de meses e documentação escrita à pena.

E foi nesse cenário que aconteceu algo que parece roteiro de anime histórico:
👉 soldados dos Terços espanhóis enfrentando guerreiros samurais no Japão feudal.

Não é lenda. Não é fanfic. É história.


🌍 O mundo antes do “isolamento japonês”

O Japão do século XVI estava longe de ser um sistema fechado. Durante o Período Sengoku, o país vivia guerras internas constantes, com senhores feudais (daimyōs) disputando poder como se fossem LPARs concorrentes pelo mesmo hardware.

Enquanto isso:

  • Portugueses já haviam chegado ao Japão (1543)

  • Jesuítas circulavam livremente

  • Armas de fogo europeias eram fabricadas localmente

  • Espanhóis dominavam as Filipinas

Ou seja: o Japão estava conectado ao mundo, testando novas “features” militares.


🛡️ Terços Espanhóis: o sistema mais estável da época

Os Terços eram a elite militar da Europa. Eles dominaram campos de batalha por mais de um século graças a algo simples e poderoso:

👉 integração de componentes.

  • Piqueiros protegiam arcabuzeiros

  • Arcabuzeiros davam suporte de fogo

  • Disciplina rígida

  • Cadeia de comando clara

  • Treinamento contínuo

No mundo mainframe?

Os Terços eram um Sysplex humano: cada unidade falhava pouco, mas o conjunto era quase imbatível.

Eles não dependiam de heróis individuais.
Dependiam do processo.


⚔️ Samurais: excelência individual e adaptação rápida

O samurai real — não o romantizado — era um profissional da guerra:

  • Mestre em katana, arco e lança

  • Usuário experiente de armas de fogo (tanegashima)

  • Treinado desde jovem

  • Guiado por códigos de honra, mas também por pragmatismo

O Japão adotou armas de fogo mais rápido que muitos países europeus.
Sim, isso quebra vários mitos de anime.

No paralelo tecnológico:

O samurai era o engenheiro sênior raiz: domina tudo, resolve no braço, mas brilha mesmo quando bem integrado ao time.


💥 O confronto de 1582: menos Hollywood, mais realidade

O encontro entre Terços (ou soldados ibéricos ligados às Filipinas) e samurais ocorreu em um contexto de tensões locais, missões diplomáticas e confrontos armados pontuais.

Não foi uma batalha campal épica.
Foi um choque real de doutrinas militares.

Relatos da época mostram:

  • Europeus impressionados com a ferocidade e técnica japonesa

  • Japoneses atentos à eficiência das formações europeias

  • Ambos entendendo que o inimigo não era “atrasado”

Resultado?
👉 Aprendizado mútuo, não aniquilação.


🧠 O que esse episódio ensinou ao mundo

Esse encontro ajudou a moldar decisões importantes:

  • O Japão aperfeiçoou o uso de armas de fogo

  • A disciplina coletiva ganhou mais valor

  • Mais tarde, o xogunato Tokugawa restringiria armas não por ignorância, mas por controle social

Ou seja:

Às vezes você não elimina a tecnologia — você a governa.

Soa familiar, mainframer?


🥚 Easter eggs históricos (porque todo bom sistema tem)

  • Samurais usavam arcabuzes em larga escala

  • O Japão produzia armas com qualidade europeia

  • Terços só perderam protagonismo no século XVII

  • Animes como Drifters e Samurai Champloo exploram esse choque cultural

  • Parece isekai? Mas é documentação histórica


🧩 A lição final (para quem vive entre COBOL e anime)

O confronto entre Terços e samurais deixa um recado claro:

O futuro não pertence ao mais forte, nem ao mais honrado.
Pertence a quem integra tradição com inovação.

No nosso mundo:

  • COBOL + APIs

  • Mainframe + Cloud

  • Cultura antiga + tecnologia nova

Exatamente como em 1582.


☕ Comentário final estilo El Jefe

Enquanto muita gente ainda discute se o mainframe “vai acabar”, vale lembrar:
os sistemas que sobrevivem são aqueles que se adaptam sem perder identidade.

Os Terços caíram.
Os samurais mudaram.
O Japão se transformou.

E o mainframe?
Segue firme, silencioso, processando o mundo.

END-OF-JOB
RC=0

quarta-feira, 1 de julho de 2009

🛡️ SMP/E e Segurança: Quando manutenção vira proteção (ou vulnerabilidade)

 

Bellacosa Mainframe apresenta IBM SMP/E

🛡️ SMP/E e Segurança

Quando manutenção vira proteção (ou vulnerabilidade)

“No mainframe, segurança não começa no RACF.
Começa no SMP/E.”


🧠 Por que SMP/E é parte da segurança?

SMP/E controla o que entra no sistema operacional.

Quem controla:

  • Código

  • Versões

  • Dependências

  • Histórico

…controla superfície de ataque.

👉 Um PTF não aplicado é uma brecha.
👉 Um PTF mal aplicado é um risco maior ainda.


🔓 O maior mito

“Segurança é só RACF, ACF2 ou TopSecret.”

✅ Verdade:

  • RACF protege acesso

  • SMP/E protege integridade do código

📌 Sem SMP/E bem gerenciado:

  • Módulos vulneráveis continuam rodando

  • Correções críticas não entram

  • Auditoria reprova


🚨 PTF de segurança: prioridade máxima

A IBM libera PTFs que:

  • Corrigem falhas exploráveis

  • Atendem compliance (PCI, SOX, LGPD)

  • Eliminam vetores de ataque

Esses PTFs geralmente vêm com:

  • ++HOLD(SECURITY)

  • Texto explicativo detalhado

👉 Não aplicar é decisão de risco.


🔍 ++HOLD(SECURITY): leia com atenção

O que significa?

++HOLD(SECURITY)

Indica:

  • Impacto direto em segurança

  • Mudança de comportamento

  • Possível quebra de compatibilidade

📌 Normalmente envolve:

  • Autorização

  • Criptografia

  • Controle de acesso

  • SMF / auditoria


Dica Bellacosa

Ignore um HOLD de segurança e o auditor vai encontrar.


🔥 ++ERROR e segurança

Um ++ERROR em PTF de segurança é crítico:

  • Pode corrigir parcialmente a falha

  • Pode introduzir outro risco

  • Pode exigir mitigação adicional

👉 Decisão nunca é automática.

📌 Boas ações:

  • Ler APAR

  • Avaliar CVE

  • Consultar IBM

  • Planejar superseding PTF


🔐 Controle de acesso ao SMP/E

Quem deve ter acesso?

  • System Programmers

  • Pouquíssimas pessoas

  • Com segregação clara

📌 Proteger:

  • CSI datasets

  • SMP/E libraries

  • JCL de manutenção


Boas práticas de RACF

  • UACC=NONE

  • Acesso mínimo necessário

  • LOG de alterações

  • Perfis específicos para SMP/E

👉 Quem mexe no SMP/E mexe no sistema inteiro.


🧾 Auditoria e compliance

Auditores adoram perguntar:

  • Quais PTFs estão aplicados?

  • Quando?

  • Por quem?

  • Por quê?

👉 SMP/E responde tudo isso.

📌 CSI é prova documental.


🧪 APPLY CHECK como ferramenta de segurança

APPLY CHECK ajuda a:

  • Identificar impacto

  • Prever conflitos

  • Avaliar risco antes da mudança

💡 Dica Bellacosa:

“APPLY CHECK é auditoria preventiva.”


🔄 Manutenção atrasada = risco ativo

  • PTF antigo = CVE ativo

  • Função obsoleta = ataque conhecido

  • Versão desatualizada = não conformidade

👉 Segurança também é disciplina de manutenção.


🧠 Caso real (estilo Bellacosa)

Falha crítica corrigida por PTF
PTF não aplicado por medo de IPL
Exploração acontece
Auditor pergunta: “Por quê?”

📌 Resposta errada:

“Porque sempre funcionou assim.”


🎓 Como aprender SMP/E focado em segurança

  • Ler PTFs de segurança

  • Analisar HOLDS

  • Estudar CVEs

  • Participar de workshops

  • Integrar SMP/E com gestão de risco


🧠 Curiosidades Bellacosa

  • SMP/E já fazia secure supply chain antes do termo existir

  • Código assinado é inútil se não for aplicado

  • Auditor confia mais no CSI do que em planilha


🧾 Comentário final – SMP/E e Segurança

Segurança não é só impedir acesso.
É garantir que o código certo esteja rodando.

E isso…
👉 é trabalho do SMP/E.

🛡️💾🔥