Translate

Mostrar mensagens com a etiqueta performance tuning. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta performance tuning. Mostrar todas as mensagens

segunda-feira, 11 de maio de 2026

🔥💣 “O MAINFRAME NÃO FICOU CARO — VOCÊ É QUE DEIXOU O 4HRA VIRAR UM INCÊNDIO” ☕💾

 

Bellacosa Mainframe e o custo medio de uso do mainframe 4HRA

🔥💣 “O MAINFRAME NÃO FICOU CARO — VOCÊ É QUE DEIXOU O R4HA VIRAR UM INCÊNDIO” ☕💾

Rolling 4HRA no IBM Z: A Verdade Brutal que Todo Sysprog Junior Descobre Quando o CPU Começa a Derreter

Padawan…

Existe um momento sombrio na vida de todo SYSprog junior.

Um momento em que:

  • o CPU começa a subir,

  • o RMF vira filme de terror,

  • o DBA começa a suar frio,

  • o gerente pergunta sobre custos,

  • e alguém pronuncia uma sigla maldita dentro da sala de guerra:

🚨 R4HA

Ou:

🔥 Rolling 4-Hour Average

Nesse instante…

Você deixa de ser apenas “o cara que olha JES2 e IPL”.

E começa a entender a realidade brutal do mundo IBM Z moderno:

O maior inimigo do mainframe não é a falta de potência.

É workload mal otimizado queimando MSU como se CPU fosse lenha.


☕ O GRANDE MITO: “MAINFRAME É CARO”

Padawan…

O IBM Z não ficou caro por acaso.

O problema é que muita empresa roda:

  • SQL desastroso,

  • batch sem controle,

  • SORT monstruoso,

  • loops infinitos,

  • CICS mal desenhado,

  • e workloads completamente desequilibrados.

Depois olha para a conta mensal e diz:

  • “o mainframe custa caro”.

É como culpar a usina elétrica porque alguém deixou um forno industrial ligado dentro da garagem.


🔥 O QUE É O ROLLING 4HRA?

O Rolling 4HRA é:

  • uma média móvel de consumo de CPU/MSU das últimas 4 horas.

Mas dizer só isso é simplificar demais.

Na prática ele é:

💀 O SENSOR FINANCEIRO DO DATACENTER

Porque ele mede:

  • consumo sustentado,

  • pressão operacional,

  • tendência de carga,

  • risco financeiro,

  • e eficiência arquitetural do ambiente.


💾 O MAINFRAME NÃO TEM MEDO DE PICOS

Esse é o detalhe genial do modelo IBM Z.

O sistema foi construído para absorver:

  • explosões de workload,

  • fechamento bancário,

  • Black Friday,

  • processamento massivo,

  • milhões de transações.

O problema nunca foi:

  • o pico curto.

O problema é:

🔥 O INCÊNDIO CONTÍNUO

É aí que o R4HA entra.


☕ A FILOSOFIA POR TRÁS DO R4HA

Imagine um motor Ferrari.

Uma acelerada rápida:

  • não destrói o motor.

Mas manter:

  • giro máximo,

  • temperatura extrema,

  • pressão contínua,

  • por horas…

Aí o sistema começa a sofrer.

O Rolling 4HRA existe justamente para medir:

  • desgaste sustentado.


🚨 POR QUE A IBM USA ISSO?

Porque seria injusto cobrar:

  • pelo pico de alguns minutos.

Então o ecossistema IBM criou:

  • média móvel de 4 horas.

Isso suaviza:

  • explosões temporárias,

  • spikes pequenos,

  • ruídos operacionais.

Mas também revela:

  • workloads persistentemente ruins.


🔥 E É AQUI QUE O SYSprog PADAWAN ACORDA PARA A VIDA

Você percebe que:

  • CPU não é apenas CPU.

Ela virou:

  • dinheiro,

  • licensing,

  • SLA,

  • capacidade,

  • reputação operacional.

No IBM Z moderno:

💰 MSU = DINHEIRO


💣 QUANDO O DESASTRE COMEÇA

Tudo parece normal.

Até que alguém sobe:

  • um SQL sem índice,

  • um tablespace scan monstruoso,

  • um batch paralelo sem controle,

  • um SORT insano,

  • um COBOL looping,

  • um CICS runaway task.

Aí…

O CPU começa a subir.

Mas o verdadeiro terror ainda nem começou.


☕ O “EFEITO VENENO” DO R4HA

Esse conceito separa:

  • o junior do veterano.

Porque mesmo depois de corrigir o problema:

  • o R4HA continua alto.

E o padawan pergunta:

“Mas já cancelamos o job… por que continua ruim?”

Porque o Rolling 4HRA:

  • ainda está carregando o histórico do desastre.


🔥 O R4HA TEM MEMÓRIA

Ele funciona como:

  • uma onda de calor.

Mesmo após apagar o incêndio:

  • o ambiente continua quente.

Isso gera:

  • impacto financeiro,

  • impacto operacional,

  • pressão no capacity planning.


💾 O ERRO CLÁSSICO DOS JUNIORS

Confundir:

  • CPU instantânea
    com

  • Rolling 4HRA.

São coisas completamente diferentes.

Você pode ter:

  • CPU baixa AGORA,

  • mas R4HA altíssimo.

Porque a média móvel ainda está contaminada pelas horas anteriores.


🚨 O QUE MAIS INCENDIA O R4HA?

🔥 DB2

Aqui mora um dos maiores vilões do datacenter.

Um único SQL ruim pode:

  • destruir cache,

  • explodir SORT,

  • aumentar GETPAGE,

  • saturar CPU,

  • gerar scan absurdo.

E tudo isso:

  • alimenta o R4HA.


🔥 CICS

Quando mal desenhado:

  • vira um triturador de MSU.

Problemas clássicos:

  • pseudo-conversational ruim,

  • polling excessivo,

  • loops de transação,

  • runaway tasks,

  • filas gigantes.


🔥 BATCH

O batch mal otimizado é um clássico.

Especialmente:

  • DFSORT gigantesco,

  • JOINKEYS abusivo,

  • I/O thrashing,

  • múltiplos jobs concorrentes.

O resultado:

💀 tempestade de CPU


☕ O WLM TENTA SALVAR O AMBIENTE

O WLM funciona como:

  • o maestro do caos.

Ele tenta:

  • priorizar workloads,

  • proteger online,

  • equilibrar recursos,

  • manter SLA.

Mas quando:

  • tudo começa a consumir demais…

Nem o WLM faz milagre.


🔥 SOFT CAPPING: A FACA DE DOIS GUMES

Então alguém diz:

“Vamos limitar MSU!”

Aí nasce o:

💣 Soft Capping

Objetivo:

  • evitar explosão financeira.

Mas se configurado errado:

  • batch atrasa,

  • online degrada,

  • filas explodem,

  • SLA morre.


💾 O PARADOXO DO SYSprog

Se libera CPU:
💰 custo explode.

Se limita demais:
💀 produção explode.

Esse equilíbrio delicado é uma das artes mais difíceis do IBM Z.


🚨 O QUE O SYSprog EXPERIENCED APRENDE

Ele aprende que performance tuning não é:

  • “deixar rápido”.

É:

🔥 impedir o datacenter de sangrar dinheiro


☕ O MAINFRAME MODERNO É UMA MÁQUINA DE EFICIÊNCIA

O IBM Z moderno:

  • processa milhões de TPS,

  • roda bancos inteiros,

  • suporta cloud híbrida,

  • executa IA,

  • integra APIs,

  • conversa com Kubernetes,

  • roda Linux massivamente.

O hardware é absurdamente poderoso.

O problema normalmente está:

  • no workload.


💣 O MAINFRAME NÃO ESTÁ LENTO

Na maioria dos casos:

  • o ambiente está sendo sabotado por software ruim.

E o Rolling 4HRA:

  • apenas revela isso de forma cruel.


🔥 O DIA EM QUE O PADAWAN EVOLUI

A evolução acontece quando ele entende:

tuning não é estética

Não é:

  • “ganhar benchmark”.

É:

  • sobrevivência financeira,

  • estabilidade operacional,

  • sustentabilidade do ambiente.


☕ RMF: O ORÁCULO DO IBM Z

O SYSprog veterano aprende a ler:

  • RMF,

  • SMF 70,

  • SMF 72,

  • OMEGAMON,

  • MXG,

  • IntelliMagic.

Porque nesses relatórios está:

  • a verdade do ambiente.

O R4HA conta uma história.

E essa história normalmente aponta:

  • quem está incendiando CPU.


🔥 O MAINFRAME CONTINUA SENDO O REI

E aqui está a ironia maravilhosa.

Mesmo sob caos:

  • milhões de transações continuam funcionando,

  • ATM continua online,

  • PIX continua passando,

  • cartão continua autorizando,

  • folha continua fechando.

Enquanto isso…

  • o IBM Z aguenta pancada absurda silenciosamente.


💾 A GRANDE VERDADE

O problema nunca foi:

  • a potência do mainframe.

O problema é:

  • arquitetura ruim,

  • SQL ruim,

  • falta de governança,

  • tuning inexistente,

  • e desconhecimento sobre workload management.


☕ LIÇÃO FINAL DO PADAWAN IBM Z

Quando você olha um Rolling 4HRA:

  • você não está vendo apenas CPU.

Você está vendo:

  • comportamento do ambiente,

  • disciplina operacional,

  • maturidade técnica,

  • eficiência arquitetural,

  • e o custo real das decisões ruins.


🔥 FRASE FINAL ESTILO BELLACOSA MAINFRAME

“O IBM Z não cobra caro por existir.
Ele apenas expõe, em MSU e R4HA, todas as decisões ruins que alguém colocou em produção.” ☕💾🔥



🔥 Rollinf 4HRA

 O Rolling 4HRA (Rolling 4-Hour Average) é a média móvel de consumo de capacidade do mainframe IBM Z durante as últimas quatro horas. Ele mede o uso sustentado de CPU e MSU, sendo utilizado pelo WLM, RMF e modelos de licenciamento IBM para calcular custos e avaliar performance do ambiente. Diferente do uso instantâneo de CPU, o 4HRA continua elevado mesmo após um pico terminar, refletindo impactos anteriores no workload. Por isso, SQL ruim, batch pesado e loops podem aumentar custos significativamente.

 

sábado, 9 de maio de 2026

🔥☕ “O MAINFRAME NÃO ESTÁ LENTO — SEU SQL É QUE ESTÁ INCENDIANDO A CPU DO IBM Z” 💾🚨

 

Bellacosa Mainframe mergulhando em performance e custo de query db2 no Mainframe

🔥☕ “O MAINFRAME NÃO ESTÁ LENTO — SEU SQL É QUE ESTÁ INCENDIANDO A CPU DO IBM Z” 💾🚨

A Verdade Brutal que Todo Sysprog Júnior Descobre Quando Entra no Mundo Real do DB2 for z/OS

Por Bellacosa Mainframe


Existe um momento na vida de todo sysprog júnior…

aquele instante mágico, traumático e inesquecível…

quando ele percebe que:

💣 O problema não era o CICS.

💣 Não era o z/OS.

💣 Não era o storage.

💣 Nem o “mainframe velho”.

Era um único SQL.

Sim.

Uma linha aparentemente inocente:

SELECT *
FROM CLIENTES
WHERE CPF = '12345678900'

…destruindo CPU, queimando MIPS, elevando MSU, congestionando buffer pool e transformando a LPAR num inferno termonuclear digital.

Bem-vindo ao mundo real do DB2 for z/OS.


☕ O DIA EM QUE O PADAWAN DESCOBRE QUE CPU NO MAINFRAME = DINHEIRO

No universo distribuído moderno, quando falta performance, a resposta costuma ser:

  • sobe mais VM

  • coloca Kubernetes

  • aumenta cluster

  • escala horizontalmente

No mainframe?

HAHAHAHA.

Aqui a conversa é outra.

Aqui:

CPU = LICENSING

CPU = MLC

CPU = 4HRA

CPU = FATURA MILIONÁRIA

Um SQL ruim não deixa apenas o sistema “mais lento”.

Ele:

  • aumenta custo mensal

  • afeta SLA

  • derruba throughput

  • impacta batch

  • congestiona CICS

  • aumenta I/O

  • cria lock contention

  • vira incidente de produção

E o mais assustador?

Muitas vezes tudo começa com um programador dizendo:

“Mas é só um SELECT…”


🏛️ O MAINFRAME NÃO PENSA COMO VOCÊ

O sysprog júnior normalmente imagina que o DB2 executa SQL exatamente como foi escrito.

Não.

O DB2 é muito mais sofisticado.

Quando você envia um SQL, o DB2 chama uma entidade quase mística:

🔥 O OPTIMIZER

Ele analisa:

  • estatísticas

  • cardinalidade

  • índices

  • distribuição de dados

  • filtros

  • joins

  • sort

  • predicates

  • paralelismo

  • buffer access

E então decide:

“Qual será o caminho menos custoso para encontrar esses dados?”

Esse caminho se chama:

☕ ACCESS PATH

E é aqui que nascem:

  • os heróis

  • os vilões

  • os incêndios de CPU

  • e os DBA traumatizados.


💣 O TABLESPACE SCAN — O DEMÔNIO QUE ASSOMBRA PRODUÇÃO

Imagine uma tabela com:

  • 900 milhões de linhas

  • 14 TB

  • milhões de acessos diários

Agora imagine um SQL sem índice adequado:

SELECT *
FROM CLIENTES
WHERE CPF = '12345678900'

Sem índice…

o DB2 pode precisar ler:

  • página por página

  • bloco por bloco

  • segmento por segmento

Isso se chama:

🚨 TABLESPACE SCAN

Ou seja:

o DB2 sai varrendo o oceano inteiro para encontrar um peixinho.

Resultado:

  • GETPAGE explode

  • CPU dispara

  • synchronous I/O aumenta

  • elapsed cresce

  • batch atrasa

  • CICS sofre

E o sysprog júnior começa a ouvir palavras assustadoras no war room:

  • “buffer pool saturation”

  • “RID failure”

  • “class 2 CPU”

  • “dynamic statement cache”

  • “DSNZPARM”

  • “DSNDB07 lotado”


☕ O PODER SOBRENATURAL DE UM ÍNDICE

Agora veja a mesma consulta com índice:

CREATE INDEX IXCPF
ON CLIENTES (CPF)

O cenário muda completamente.

Agora o DB2:

  • acessa diretamente o valor

  • evita scan massivo

  • reduz GETPAGE

  • diminui I/O

  • baixa CPU

O que levava:

  • 40 minutos

passa a levar:

  • 2 segundos

Sem exagero.

No mundo IBM Z isso acontece TODOS OS DIAS.


🔥 O ERRO MAIS COMUM DOS PROGRAMADORES COBOL

Padawan…

grave isso na alma:

“O COBOL não mata CPU sozinho.”

“O SQL dentro dele mata.”

Um clássico infernal:

PERFORM VARYING WS-I FROM 1 BY 1
   EXEC SQL
      SELECT ...
   END-EXEC
END-PERFORM

Parabéns.

Você acabou de criar:

☠️ O APOCALIPSE DO ROW-BY-ROW PROCESSING

Também conhecido como:

  • slow by slow

  • chatty SQL

  • cursor abuse

O programa funciona.

Mas em produção:

  • executa milhões de SQLs

  • congestiona DB2

  • aumenta context switch

  • explode CPU

O júnior acha:

“Funcionou no teste.”

O veterano olha e já sente dor física.


🧠 O MITO DO “SELECT *”

Outra heresia clássica:

SELECT *

Isso é praticamente um ritual proibido em ambientes críticos.

Porque talvez você precise:

  • 2 colunas

Mas o DB2 entrega:

  • 180 colunas

  • LOBs

  • dados inúteis

  • mais I/O

  • mais buffer

  • mais sort

  • mais CPU

O correto:

SELECT NOME, CPF

No mainframe:

eficiência é religião.


☕ RUNSTATS — O ALIMENTO DO OPTIMIZER

O optimizer do DB2 depende de estatísticas.

Sem elas:

ele fica cego.

RUNSTATS informa:

  • quantidade de linhas

  • distribuição

  • cardinalidade

  • clustering

  • seletividade

Sem RUNSTATS atualizada…

o DB2 toma decisões absurdas.

Exemplo real:

Tabela cresceu de:

  • 10 milhões
    para

  • 800 milhões linhas

Mas estatística continua antiga.

O optimizer acredita que a tabela ainda é pequena.

Escolhe nested loop inadequado.

Resultado:

💣 CPU 100x maior


🔥 EXPLAIN — O RAIO-X DA ALMA DO SQL

Veterano de DB2 não confia em “achismo”.

Ele usa:

EXPLAIN PLAN

Porque EXPLAIN revela:

  • índice usado

  • join method

  • scans

  • sorts

  • custo estimado

  • stage 1 / stage 2

  • parallelism

É literalmente:

a anatomia do pensamento do DB2.


☕ STAGE 2 — O CEMITÉRIO DA INDEXABILITY

Veja isso:

WHERE SUBSTR(NOME,1,3) = 'MAR'

Parece elegante.

Mas pode impedir uso eficiente de índice.

Outro clássico:

WHERE YEAR(DATA) = 2025

Muito bonito.

Muito moderno.

Muito destrutivo.

Melhor:

WHERE DATA BETWEEN '2025-01-01'
              AND '2025-12-31'

Porque agora:

  • o índice pode respirar

  • o optimizer consegue navegar melhor


🔥 GETPAGE — A PALAVRA QUE FAZ DBA SUAR FRIO

No DB2 z/OS:

GETPAGE = acesso à página de dados.

Muito GETPAGE:

  • mais CPU

  • mais latch

  • mais memória

  • mais I/O

Veteranos monitoram:

  • GETPAGE

  • sync read

  • class 1

  • class 2

  • lock wait

  • RID list

como cardiologista monitorando ECG.


☕ “RÁPIDO” NÃO SIGNIFICA “BARATO”

Essa é uma das maiores lições do mainframe.

Às vezes:

  • elapsed time está ótimo

MAS:

  • CPU está monstruosa.

O usuário acha:

“Nossa, ficou rápido!”

O financeiro vê:

💸🔥💸🔥💸🔥

Porque no IBM Z:

CPU custa dinheiro real.


🤖 A ERA DA IA NO TUNING DB2

Hoje ferramentas modernas analisam:

  • SQLs problemáticos

  • regressão de access path

  • mudanças após REBIND

  • índices ausentes

  • scans perigosos

  • CPU anomalies

E algumas usam IA para:

  • prever degradação

  • sugerir rewrite

  • detectar padrões tóxicos

  • identificar SQLs assassinos

O futuro do tuning DB2 já começou.


🏛️ O QUE O SYSprog JÚNIOR PRECISA ENTENDER URGENTEMENTE

Mainframe não é:

  • “computador velho”

  • “COBOL antigo”

  • “legado ultrapassado”

Mainframe é:

engenharia extrema de throughput.

E DB2 for z/OS é:

um dos motores transacionais mais eficientes já criados pela humanidade.

Ele processa:

  • bancos

  • cartões

  • bolsa

  • aviação

  • seguros

  • governo

  • PIX

  • ATM

  • clearing financeira

Em escala absurda.


☕ A GRANDE VERDADE FINAL

O mundo moderno fala:

  • cloud

  • containers

  • microservices

  • IA

Mas nos bastidores…

existe um IBM Z executando milhões de transações por segundo…

e um DBA desesperado tentando descobrir:

🔥 “QUAL SQL ESTÁ QUEIMANDO A CPU?” 🔥

Porque no fim…

o COBOL processa o negócio…

o CICS coordena as transações…

mas:

💾 É O ACCESS PATH DO DB2 QUE DECIDE QUANTO CUSTA MANTER O MUNDO FUNCIONANDO. ☕🔥

sábado, 11 de abril de 2026

💣 VSAM LENTO? NÃO É O MAINFRAME — É O SEU TUNING! 🔥 Os Segredos de Performance que Ninguém Te Conta

 

Bellacosa Mainframe VSAM lento tuning IDCAMS e outros segredinhos

💣 VSAM LENTO? NÃO É O MAINFRAME — É O SEU TUNING! 🔥 Os Segredos de Performance que Ninguém Te Conta

🧠 1) Escolha o tipo correto de arquivo VSAM

📌 Tradução

O VSAM suporta quatro tipos principais de datasets:

  • ESDS (Entry-Sequenced Data Set) → acesso sequencial
  • KSDS (Key-Sequenced Data Set) → acesso por chave
  • RRDS (Relative Record Data Set) → acesso direto por número relativo
  • LDS (Linear Data Set) → armazenamento bruto (usado por DB2, etc.)

Cada tipo possui características diferentes e deve ser escolhido conforme o padrão de acesso aos dados.


💬 Comentário Bellacosa

Aqui está o primeiro erro clássico de projeto:

❌ “Vou usar KSDS pra tudo porque é mais completo”

👉 Resultado: I/O desnecessário, split, CI/CA fragmentation, e performance indo pro ralo.


🧪 Exemplo prático

✔ Caso ideal:

  • Batch sequencial (ex: faturamento diário)
    ESDS ganha disparado
  • Sistema online CICS com lookup por chave
    KSDS obrigatório
  • Tabela indexada por posição fixa
    RRDS simplifica tudo

🚀 Dica avançada (pouco falada)

Se seu acesso for altamente randômico:

👉 Combine:

  • KSDS
    • SMB + ACCBIAS=DO (Direct Optimized)

Isso muda o jogo de performance.


🧠 2) Otimização de buffers

📌 Tradução

Buffers são áreas de memória usadas para armazenar dados temporariamente durante operações VSAM.

  • Poucos buffers → excesso de I/O
  • Muitos buffers → desperdício de CPU/memória

💬 Comentário Bellacosa

Aqui mora um dos maiores gargalos invisíveis:

VSAM não é lento…
VSAM mal bufferizado é lento.


🧪 Exemplo prático (JCL)

//DD1 DD DSN=SEU.VSAM.KSDS,
// AMP=('BUFND=20','BUFNI=10')
  • BUFND → buffers de dados
  • BUFNI → buffers de índice

🧠 Regra de ouro

Tipo de acessoAjuste
SequencialBUFND alto
RandômicoBUFNI mais importante

🚀 Nível PRO (SMB tuning)

AMP=('ACCBIAS=DO','SMB')
  • DO → acesso randômico otimizado
  • SO → sequencial
  • SW/DW → dinâmico

💣 Isso pode reduzir I/O drasticamente.


🧠 3) Minimizar tamanho de registro

📌 Tradução

O tamanho do registro influencia diretamente:

  • Quantidade de blocos
  • Uso de buffer
  • Transferência de dados

💬 Comentário Bellacosa

Esse é clássico de legado:

“Ah, deixa esse campo aqui... vai que um dia usam”

👉 Resultado:

  • Records inflados
  • CI mal aproveitado
  • Mais EXCP

🧪 Exemplo

❌ Ruim:

Cliente:
- Nome (100 bytes)
- Código (10)
- 20 campos não usados

✔ Melhor:

Cliente:
- Nome (40)
- Código (10)

🚀 Técnicas avançadas

  • Compressão de dados
  • REDEFINES em COBOL
  • Uso de campos variáveis (spanned records com cuidado)

💣 Trade-off real

Registro pequenoRegistro grande
+ menos I/O+ menos splits
- desperdício de espaço- mais dados por I/O

🧠 4) Ajuste da configuração de I/O

📌 Tradução

A configuração de I/O inclui:

  • Tipo de device
  • Velocidade
  • Canais
  • Pathing
  • Alocação

Ferramentas recomendadas:

  • SMF
  • RMF

💬 Comentário Bellacosa

Aqui entramos no território dos sysprogs 🔥

Às vezes o problema NÃO é o VSAM
👉 é o storage, canal ou concorrência


🧪 Exemplo real

Problema:

  • VSAM lento

Análise SMF:

  • Alta contenção em volume

Solução:

  • Redistribuir datasets
  • Melhorar striping
  • Ajustar cache

🚀 Dica ninja

  • Use LSR (Local Shared Resources) em CICS
  • Use RLS (Record Level Sharing) para concorrência

💣 Isso muda completamente o comportamento do VSAM online


🧠 5) Considerações extras (parte mais rica!)

💬 Expansão Bellacosa

Aqui entram os segredos que poucos documentam 👇


🔥 CI SIZE (Control Interval)

  • Sequencial → CI maior (ex: 32K)
  • Randômico → CI menor (ex: 4K ou 8K)

🔥 CA SIZE (Control Area)

  • Afeta splits e performance
  • CA maior → menos splits

🔥 FREESPACE

FREESPACE(20 10)
  • 20% no CI
  • 10% no CA

👉 Reduz splits (ESSENCIAL em KSDS)


🔥 Secondary Allocation

Evite muitos extents:

SPACE=(CYL,(100,50))

🔥 Split (o vilão silencioso)

Quando ocorre:

  • CI Split
  • CA Split

💣 Consequência:

  • Mais I/O
  • Fragmentação
  • Queda brutal de performance

🧪 LAB PRÁTICO (nível Bellacosa 😎)

🎯 Objetivo:

Comparar performance com tuning vs sem tuning


Cenário 1 (ruim)

  • KSDS
  • CI pequeno
  • Sem buffer tuning
  • Sem FREESPACE

Cenário 2 (otimizado)

  • KSDS
  • CI adequado
  • FREESPACE(20 10)
  • SMB + ACCBIAS
  • BUFND/BUFNI ajustado

🔍 Métrica:

  • EXCP count
  • Tempo de execução
  • SMF 64/42

💥 Resultado esperado:

👉 Redução de I/O de 30% a 80% (sim, acontece!)


🏁 Conclusão estilo Bellacosa

VSAM não é velho…
VSAM é mal compreendido.

Quando bem tunado:

💣 Ele compete com banco moderno
💣 Ele escala
💣 Ele é absurdamente eficiente



quinta-feira, 5 de fevereiro de 2026

🔥 VOCÊ PROGRAMA EM COBOL… MAS NÃO FAZ IDEIA DO MONSTRO QUE ESTÁ RODANDO POR TRÁS 😳

 

Bellacosa Mainframe apresenta o Hardware Mainframe 

🔥 VOCÊ PROGRAMA EM COBOL… MAS NÃO FAZ IDEIA DO MONSTRO QUE ESTÁ RODANDO POR TRÁS 😳

O guia que separa quem “codifica” de quem realmente ENTENDE o z/OS

Se você é dev COBOL e acha que seu programa “roda sozinho”…
👉 já começa errado.

O que você chama de execução é, na verdade, um balé absurdo entre hardware, sistema operacional e estruturas invisíveis que decidem se seu job vive… ou morre 💀

Esse artigo é o mapa mental que o curso da IBM tenta te dar — mas agora no estilo Bellacosa Mainframe raiz.


🧠 O MÓDULO INTRODUTÓRIO (o verdadeiro objetivo)

O curso não quer te ensinar comando.

Ele quer te ensinar a pensar assim:

“Se algo deu errado… quem está envolvido por trás?”

Segundo o próprio material do curso, a ideia é te dar uma visão conectada do sistema, não isolada


🔥 Tradução direta:

Você deixa de ser:

  • 👶 Dev que roda JOB

E vira:

  • 🧠 Engenheiro que entende o ecossistema

⚙️ O QUE VOCÊ PRECISA SABER ANTES (pré-requisitos reais)

Se você quer extrair valor desse curso, precisa de base em:

🧩 Conceitos obrigatórios:

  • Address space
  • Multiprocessing
  • Virtual storage
  • Interrupts
  • Dispatcher
  • SVC

👉 Tudo isso é citado como base necessária


💡 E o segredo que ninguém te conta:

Você NÃO precisa dominar tudo…

Mas precisa entender quem manda em quem.


🧬 O MAPA DO UNIVERSO MAINFRAME

Vamos simplificar o que o curso espalha em vários vídeos:

z/Architecture → define regras
z System → implementa hardware
z/OS → controla execução
Seu COBOL → obedece tudo isso

🔥 Frase pra tatuar na testa:

“COBOL não executa… ele é executado.”


🧠 z/Architecture — O DNA DO SISTEMA

A arquitetura define:

  • instruções da CPU
  • registradores
  • interrupções
  • modelo de memória

👉 É o contrato entre hardware e software


🧨 Curiosidade (Easter Egg #1)

Você pode rodar código de 1965 (System/360) hoje.

👉 Isso mesmo.

Backward compatibility absurda.


🖥️ z Systems — A MÁQUINA MONSTRA

Aqui entra o hardware de verdade (ex: z16):

  • até 40 TB de memória
  • centenas de processadores
  • AI dentro do chip 😳

🤖 Easter Egg #2

O z16 tem IA rodando dentro do processador.

👉 Seu COBOL pode estar rodando lado a lado com inferência de IA.


⚡ Processadores (isso cai em prova e vida real)

Não existe só CPU:

  • CP → geral
  • zIIP → offload (DB2, XML)
  • IFL → Linux
  • SAP → I/O

👉 Performance no mainframe é distribuição, não clock.


🧠 z/OS — O CÉREBRO QUE MANDA EM TUDO

O z/OS é:

  • scheduler
  • gerenciador de memória
  • gerenciador de I/O
  • segurança
  • rede

👉 Ele decide:

  • quem roda
  • quando roda
  • por quanto tempo

💀 Easter Egg #3

Seu programa pode estar pronto…

👉 mas fica parado porque o dispatcher não liberou CPU.


🧱 CONTROL BLOCKS — O VERDADEIRO SISTEMA

Aqui está o segredo mais importante de todos:

O z/OS não confia em código… ele confia em estruturas.

Exemplos:

  • TCB → task
  • ASCB → address space
  • PSA → base do sistema

🔥 Regra de ouro:

“Se não está em um control block… não existe.”


⚡ INTERRUPTS — O QUE REALMENTE CONTROLA O FLUXO

Tudo no sistema muda por interrupção:

  • I/O terminou
  • erro aconteceu (S0C4 👀)
  • tempo acabou

💡 Tradução Bellacosa:

Interrupt é o “plot twist” do sistema.


🔍 COMO UM DEV COBOL DEVE ESTUDAR ISSO?

Aqui entra o ouro.


🚀 PASSO 1 — Pare de pensar só no código

Quando rodar um programa, pergunte:

  • em qual address space estou?
  • quem é meu TCB?
  • estou em WAIT ou RUN?

🔥 PASSO 2 — Comece pelo visível

Ferramentas:

  • SDSF → ver jobs
  • ISPF → ambiente
  • JES → fila

🧠 PASSO 3 — Evolua pro invisível

  • IPCS (dump)
  • control blocks
  • PSW / registers

💀 PASSO 4 — Aprenda com erro

Nada ensina mais que:

  • S0C4
  • S0C7
  • loops infinitos

🧨 DICAS DE OURO (nível Bellacosa)

💡 Dica 1

Quando travar:

não pergunte “o que meu código fez?”
pergunte “o que o sistema fez com meu código?”


💡 Dica 2

Aprenda registradores:

  • R13 → cadeia
  • R14 → retorno
  • R15 → entrada

💡 Dica 3

Leia dump mesmo sem entender tudo.

👉 Com o tempo, você começa a “enxergar o sistema”.


🤯 CURIOSIDADES QUE EXPLODEM A MENTE

🧨 1. Seu programa não controla nada

Tudo é mediado pelo z/OS.


🧨 2. I/O é mais importante que CPU

Mainframe é I/O-driven.


🧨 3. Rede pode nem existir

Com HiperSockets, comunicação é memória ↔ memória.


🧨 4. Segurança é hardware

Criptografia roda direto no chip.


🎯 RESUMO FINAL

Se você entendeu isso, você mudou de nível:

✔ Código é só uma parte

✔ Sistema decide tudo

✔ Hardware influencia tudo

✔ Control blocks são a verdade

✔ Interrupts mandam no fluxo


💥 FRASE FINAL (pra fechar com estilo)

“Você não programa em COBOL…
você negocia com o z/OS pra ele deixar seu programa existir.”

 

sábado, 27 de dezembro de 2025

💥 CEMT NÃO É COMANDO — É PODER: O Guia Definitivo de CICS para Dev COBOL que Quer Dominar Produção

 

Bellacosa Mainframe apresenta o CICS CEMT

💥 CEMT NÃO É COMANDO — É PODER: O Guia Definitivo de CICS para Dev COBOL que Quer Dominar Produção

Se você ainda vê CICS só como “onde seu COBOL roda”, você está usando 10% do potencial.
O restante — os outros 90% — está nos comandos CEMT, onde você controla, diagnostica e salva produção em tempo real.

Este artigo é um mergulho completo: história, prática, cenários reais, pegadinhas de prova e segredos de produção.


🧠 1. De onde vem o CEMT (e por que ele existe)

O CICS (Customer Information Control System) nasceu nos anos 60 para resolver um problema que ainda existe hoje:

“Como processar milhares de transações simultâneas com consistência?”

A resposta foi:

  • Transações online
  • Controle de recursos
  • Gerenciamento de concorrência

E para operar tudo isso… nasceu o CEMT (CICS Master Terminal).

👉 Pense nele como:

  • o kubectl do mainframe
  • o console root do CICS

⚙️ 2. O DNA do CEMT (grave isso!)

CEMT I → INQUIRE (ver)
CEMT S → SET (alterar)
CEMT P → PERFORM (executar)

💡 Esse trio resolve 90% dos incidentes reais.


🔍 3. INQUIRE — enxergando o CICS por dentro

🎯 Comandos essenciais

CEMT I TASK
CEMT I UOWENQ
CEMT I FILE
CEMT I TRA
CEMT I CONN
CEMT I TER

💣 Cenário real: “Sistema travado”

CEMT I TASK

Você encontra:

TASK 1234 TRAN PAY1 STATUS RUNNING TIME 999999

💥 Loop detectado.

👉 Easter egg:

TASK com tempo “absurdo” quase sempre é loop ou espera infinita.


🔒 4. ENQUEUE — o assassino silencioso

CEMT I UOWENQ

Você vê:

RESOURCE ACCOUNT
HELD BY TASK 0020
WAITING TASK 0032

💥 Clássico:

  • 32 sofre
  • 20 é o culpado 😈

👉 Curiosidade:

80% dos “CICS lentos” são lock (e não CPU).


💣 5. SET — o poder de intervenção


🔹 Transações

CEMT S TRA(PAY1) DIS
CEMT S TRA(PAY1) ENA

💡 Uso real:

  • bug em produção → DIS
  • fix aplicado → ENA

🔹 Files

CEMT S FI(CLIENTE) OPEN
CEMT S FI(CLIENTE) ENA

👉 Easter egg:

ENABLED ≠ OPEN (isso derruba muita gente!)


🔹 Tasks

CEMT S TASK(1234) PURGE

💥 Isso:

  • mata loop
  • libera lock
  • salva produção

🔹 Connections

CEMT S CONN(MRO2) INS

💡 Quando usar:

  • integração entre regiões caiu
  • terminal “não conecta”

🧨 6. PERFORM — ações pesadas


🔻 Shutdown

CEMT P SHUT
CEMT P SHUT I
CEMT P SHUT FORCE
TipoQuando usar
SHUTnormal
SHUT Itravou
FORCEcaos

👉 Easter egg:

FORCE = “puxar o cabo da tomada”


📦 Dump

CEMT P DUMP TITLE('ERRO COBOL')

💡 Isso é:

  • snapshot da memória
  • base para análise no IPCS

🔬 Trace

CEMT S AUX STA

👉 Liga o auxiliary trace
👉 Usado para bugs intermitentes


🚀 7. Startup & Shutdown (vida e morte do CICS)

🔻 Shutdown

F CICSTS62,CEMT P SHUT

🚀 Startup

S CICSTS62

Você verá no log:

Control is being given to CICS

💥 Esse é o “CICS ONLINE”


💣 8. Performance tuning (o que realmente importa)

👉 Não é CPU.

👉 É:

  • Lock (ENQUEUE)
  • DB2
  • I/O
  • Commit

🔍 Diagnóstico rápido

CEMT I TASK
CEMT I UOWENQ
CEMT I FILE

👉 Curiosidade real:

Se o CICS está lento, 80% de chance é DB2 segurando lock.


🔥 9. CICS + DB2 (onde mora o problema sério)

O DB2 usa o IRLM para controlar locks.

Cenário clássico:

Task A → UPDATE → lock X
Task B → WAIT
Task C → WAIT

💥 fila cresce → sistema trava


🧠 10. Dump analysis (nível especialista)

Você gera:

CEMT P DUMP TITLE('ASRA')

Analisa no IPCS:

  • PSW → onde caiu
  • Call stack → quem chamou
  • Storage → dados corrompidos

👉 Easter egg:

S0C7 quase sempre é dado inválido vindo de input


⚠️ 11. Pegadinhas de prova (e da vida)

ErradoCerto
FILEFI
TRANSACTIONTRA
ENABLEDENA
INSERVICEINS

👉 E às vezes:

ENA → vira só E 😈

🧨 12. Fluxo real de incidente

Usuário reclama

CEMT I TASK

CEMT I UOWENQ

Identificar culpado

PURGE

Corrigir recurso

Validar

🏆 13. O que separa um dev COBOL comum de um especialista

DevEspecialista
escreve códigoresolve incidente
espera suportevira suporte
conhece COBOLdomina ambiente

💣 FRASE FINAL (GUARDA ESSA)

“COBOL executa…
mas quem manda no ambiente é o CEMT.”


🚀 Se você chegou até aqui…

Você já está:

  • acima de 90% dos devs
  • preparado para produção
  • pronto para falar com sysprog