Translate

terça-feira, 10 de março de 2020

🔥 VSAM NA VIDA REAL: O segredo NÃO está no DEFINE… está nos parâmetros que quase ninguém entende

 

Bellaocsa Mainframe como calcular os parametros de um dataset VSAM

🔥 VSAM NA VIDA REAL: O segredo NÃO está no DEFINE… está nos parâmetros que quase ninguém entende

A maioria dos problemas de performance de VSAM começa aqui:

DEFINE CLUSTER(...)

💣 O problema?

Muita gente:

  • copia JCL antigo
  • usa RECsz “qualquer”
  • coloca CI 4096 em tudo
  • ignora FREESPACE
  • nunca calcula crescimento

E depois pergunta:

“por que meu KSDS virou um moedor de CPU?”


🧠 O PRINCÍPIO MAIS IMPORTANTE DO VSAM

👉 VSAM é engenharia de I/O

Você NÃO está criando:

  • “um arquivo”

Você está definindo:

  • layout físico
  • estratégia de acesso
  • comportamento de crescimento
  • padrão de lock
  • eficiência de CPU
  • uso de DASD
  • quantidade de splits

🎯 PRINCIPAIS PARÂMETROS


🔹 RECSZ(average maximum)

RECSZ(avg max)

Define:

  • tamanho médio
  • tamanho máximo do registro

🧠 Como o VSAM usa isso

O VSAM calcula:

  • quantidade de registros por CI
  • espaço interno
  • buffer efficiency
  • split probability

💥 ERRO clássico

RECSZ(80 32760)

para registros de:

  • 120 bytes

👉 Resultado:

  • desperdício
  • CI subutilizado
  • mais I/O

🎯 Melhor prática

Fórmula Bellacosa 😄

AVG = média real
MAX = pior caso + margem

🔹 FREESPACE(CI CA)

FREESPACE(10 5)

Reserva espaço:

  • dentro do CI
  • dentro do CA

🧠 Objetivo

Evitar:

  • CI splits
  • CA splits

💣 REGRA DE OURO

🔥 Muito insert aleatório?

Use:

FREESPACE(20 10)

🔥 Dataset quase estático?

Use:

FREESPACE(0 0)

💥 O que acontece se errar

ProblemaResultado
pouco freespacemuitos splits
freespace excessivodesperdício DASD
CA pequenofragmentação

🔹 CISZ(number)

CISZ(4096)

Define tamanho do:

  • Control Interval

🧠 O parâmetro MAIS importante do VSAM

Ele impacta:

  • CPU
  • I/O
  • cache
  • buffering
  • throughput

🎯 REGRA prática

Tipo de workloadCI ideal
OLTP/CICS4096
Batch sequencial8192 ou 16384
Muito insert4096
LDS/DB28192+

💣 ERRO clássico

CI enorme em CICS:

CISZ(32768)

👉 Resultado:

  • lock maior
  • mais wait
  • pior latência

🔹 KEYS(length offset)

KEYS(20 0)

Somente:

  • KSDS
  • AIX

🧠 Explicação

ItemSignificado
lengthtamanho da chave
offsetposição da chave

Exemplo COBOL

01 REG.
05 ID PIC X(10).
05 NOME PIC X(40).

👉 então:

KEYS(10 0)

💥 Dica Bellacosa

Nunca use:

  • chave enorme
  • chave variável
  • chave não seletiva

👉 índice explode
👉 CPU sobe


🔹 READPW / UPDATEPW

Proteção antiga VSAM.

Hoje:

  • RACF domina tudo

👉 raramente usado.


🔹 FOR(days) / TO(date)

Retention period.


Exemplo

FOR(30)

Mantém dataset:

  • protegido 30 dias

🔹 REUSE / NOREUSE


REUSE

Permite reutilização do cluster:

REUSE

Muito usado em:

  • arquivos temporários
  • batch diário

NOREUSE

Requer DELETE/DEFINE.

Mais seguro.


🚀 ALGORITMO REAL DE DEFINIÇÃO VSAM

Agora vem a parte de sysprog senior 👊


🟢 KSDS (OLTP/CICS)

Características

  • insert aleatório
  • update
  • alta concorrência

Fórmula recomendada

CI = 4096
FREESPACE = 20 10

Algoritmo

1. calcular tamanho médio
2. calcular inserts/dia
3. calcular crescimento mensal
4. estimar splits
5. reservar freespace
6. ajustar buffers

🔵 ESDS

Características

  • append-only
  • sequencial

Melhor configuração

FREESPACE(0 0)
CISZ(8192)

Por quê?

👉 Não existe insert interno.


🟡 RRDS

Características

  • slots fixos
  • acesso relativo

Melhor configuração

RECSZ fixo
CI alinhado com quantidade de slots

Fórmula

CI = slot_size × quantidade ideal por CI

🟠 VRRDS

Mais complexo.


Melhor prática

FREESPACE(15 10)

Porque:

  • registros crescem

🟣 LDS

Sem registros.


Melhor configuração

CISZ(8192 ou 16384)

Porque DB2 gosta disso?

👉 melhor throughput sequencial


⚫ VSAMDB / NoSQL VSAM

(CouchDB-like engines, key-value engines, híbridos)


Melhor prática

CI grande
buffer agressivo
freespace moderado

🧠 O VERDADEIRO SEGREDO

A melhor configuração depende de:

FatorImpacto
padrão de insertsplits
concorrêncialock
tamanho do registroCI
crescimentoCA
batch vs onlinebuffers
DASD/cachethroughput

💥 EXEMPLO REAL (CICS bancário)

DEFINE CLUSTER -
(NAME(BANK.CLIENT.KSDS)) -
RECSZ(300 500) -
KEYS(20 0) -
CISZ(4096) -
FREESPACE(20 10) -
SHAREOPTIONS(3 3)

👉 otimizado para:

  • alta concorrência
  • update intenso
  • baixo split

🚨 SINAIS DE VSAM MAL DEFINIDO

✔ muitos CI splits
✔ aumento de EXCP
✔ CPU crescendo
✔ buffer hit ratio ruim
✔ CA fragmentation
✔ batch lento
✔ CICS wait


🎯 REGRA FINAL DO BELLACOSA MAINFRAME 😄

“VSAM rápido não nasce no COBOL.
Ele nasce no DEFINE CLUSTER.”


 

segunda-feira, 9 de março de 2020

🧪 LAB CICS : 🧠 CICS — O que é (sem enrolação)

 

Bellacosa Mainframe em primeiros passos no mundo CICS Mainframe

🧠 CICS — O que é (sem enrolação)

O IBM CICS Transaction Server é o coração transacional do mainframe.

👉 Pense assim:

  • Batch (JCL) = processamento em lote (fila, previsível)
  • CICS = processamento online em tempo real

📌 Ele gerencia:

  • Transações simultâneas (milhares!)
  • Sessões de usuários (terminais, web, APIs)
  • Integridade (commit/rollback)
  • Integração com DB2, MQ, VSAM

💥 Tradução prática:

Se o usuário apertou ENTER e quer resposta na hora → tem CICS por trás.


🏗️ Arquitetura mental (modo operador)


Você não precisa decorar tudo — mas precisa entender o jogo:

🔹 Região CICS

  • É como um “mini sistema operacional” dentro do z/OS
  • Tem memória, tarefas e controle próprio

🔹 Transações

  • Código de 4 letras (ex: CEMT, CECI)
  • Entrada do usuário

🔹 Programas

  • Normalmente em COBOL
  • Executados sob controle do CICS

🔹 Recursos

  • Arquivos (VSAM)
  • Bancos (DB2)
  • Filas (MQ)

🎮 Primeiros comandos (sobrevivência no CICS)

Esses aqui são o kit de sobrevivência do operador:

🔹 CEMT — o canivete suíço

CEMT I TASK
CEMT I TRANS
CEMT I FILE

👉 Serve para:

  • Ver tarefas rodando
  • Ver transações ativas
  • Checar arquivos

🔹 CECI — laboratório interativo

CECI

👉 Executa comandos CICS manualmente
👉 Perfeito para testes sem programa


🔹 CESN / CESF — login/logout

CESN (sign on)
CESF (sign off)

🧪 LAB 1 — “Primeiro contato com a Força”

🎯 Objetivo: entender o que está rodando no CICS

Passo a passo:

  1. Acesse o terminal (TSO ou emulador)
  2. Entre no CICS
  3. Digite:
CEMT I TASK

👉 Observe:

  • TASK NUMBER
  • STATUS
  • CPU TIME

💡 Insight Bellacosa:

Cada linha ali é alguém usando o sistema agora — isso é produção viva!


🧪 LAB 2 — Investigando transações

CEMT I TRANS

👉 Veja:

  • Transações habilitadas/desabilitadas
  • Status (ENABLED / DISABLED)

🔥 Teste:

CEMT SET TRANS(xxxx) DISABLED

⚠️ Cuidado:

Você pode derrubar sistema se fizer isso em produção!


🧪 LAB 3 — Teste controlado com CECI

CECI

Execute:

EXEC CICS ASSIGN

👉 Veja:

  • USERID
  • TERMINAL
  • TASK

💥 Isso é introspecção do ambiente


🧪 LAB 4 — Arquivos (VSAM na veia)

CEMT I FILE

👉 Veja:

  • OPEN / CLOSED
  • ENABLED / DISABLED

Teste (ambiente controlado!):

CEMT SET FILE(xxxx) CLOSED

🧭 Mentalidade de Produção (o diferencial)

Aqui está o pulo do gato 🧠

🔥 Você NÃO é desenvolvedor — você é guardião do runtime

Você precisa pensar em:

  • Sistema está lento?
  • Travou?
  • Loop infinito?
  • Recurso indisponível?

👉 Ferramentas-chave:

  • CEMT
  • CEDF (debug de transação)
  • SMF / logs
  • dumps (abend)

⚠️ Erros clássicos de iniciante

❌ Rodar comando sem saber impacto
❌ Derrubar FILE em produção
❌ Desabilitar TRANS crítica
❌ Ignorar mensagens do CICS

💥 Regra de ouro:

“Se você não sabe o efeito → NÃO execute”


🧠 Mapa mental resumido

  • CICS = tempo real
  • TRANS = entrada
  • TASK = execução
  • PROGRAM = lógica
  • FILE/DB = dados

🚀 Próximos passos (nível Jedi)

Se quiser evoluir, recomendo:

  1. Criar sua primeira transação COBOL
  2. Aprender EXEC CICS READ/WRITE
  3. Entender COMMIT/ROLLBACK
  4. Trabalhar com TSQ/TDQ
  5. Explorar integração com APIs (CICS Web Services)

O IBM CICS Transaction Server é o coração transacional do mainframe.

👉 Pense assim:

  • Batch (JCL) = processamento em lote (fila, previsível)
  • CICS = processamento online em tempo real

📌 Ele gerencia:

  • Transações simultâneas (milhares!)
  • Sessões de usuários (terminais, web, APIs)
  • Integridade (commit/rollback)
  • Integração com DB2, MQ, VSAM

💥 Tradução prática:

Se o usuário apertou ENTER e quer resposta na hora → tem CICS por trás.


🏗️ Arquitetura mental (modo operador)


Você não precisa decorar tudo — mas precisa entender o jogo:

🔹 Região CICS

  • É como um “mini sistema operacional” dentro do z/OS
  • Tem memória, tarefas e controle próprio

🔹 Transações

  • Código de 4 letras (ex: CEMT, CECI)
  • Entrada do usuário

🔹 Programas

  • Normalmente em COBOL
  • Executados sob controle do CICS

🔹 Recursos

  • Arquivos (VSAM)
  • Bancos (DB2)
  • Filas (MQ)

🎮 Primeiros comandos (sobrevivência no CICS)

Esses aqui são o kit de sobrevivência do operador:

🔹 CEMT — o canivete suíço

CEMT I TASK
CEMT I TRANS
CEMT I FILE

👉 Serve para:

  • Ver tarefas rodando
  • Ver transações ativas
  • Checar arquivos

🔹 CECI — laboratório interativo

CECI

👉 Executa comandos CICS manualmente
👉 Perfeito para testes sem programa


🔹 CESN / CESF — login/logout

CESN (sign on)
CESF (sign off)

🧪 LAB 1 — “Primeiro contato com a Força”

🎯 Objetivo: entender o que está rodando no CICS

Passo a passo:

  1. Acesse o terminal (TSO ou emulador)
  2. Entre no CICS
  3. Digite:
CEMT I TASK

👉 Observe:

  • TASK NUMBER
  • STATUS
  • CPU TIME

💡 Insight Bellacosa:

Cada linha ali é alguém usando o sistema agora — isso é produção viva!


🧪 LAB 2 — Investigando transações

CEMT I TRANS

👉 Veja:

  • Transações habilitadas/desabilitadas
  • Status (ENABLED / DISABLED)

🔥 Teste:

CEMT SET TRANS(xxxx) DISABLED

⚠️ Cuidado:

Você pode derrubar sistema se fizer isso em produção!


🧪 LAB 3 — Teste controlado com CECI

CECI

Execute:

EXEC CICS ASSIGN

👉 Veja:

  • USERID
  • TERMINAL
  • TASK

💥 Isso é introspecção do ambiente


🧪 LAB 4 — Arquivos (VSAM na veia)

CEMT I FILE

👉 Veja:

  • OPEN / CLOSED
  • ENABLED / DISABLED

Teste (ambiente controlado!):

CEMT SET FILE(xxxx) CLOSED

🧭 Mentalidade de Produção (o diferencial)

Aqui está o pulo do gato 🧠

🔥 Você NÃO é desenvolvedor — você é guardião do runtime

Você precisa pensar em:

  • Sistema está lento?
  • Travou?
  • Loop infinito?
  • Recurso indisponível?

👉 Ferramentas-chave:

  • CEMT
  • CEDF (debug de transação)
  • SMF / logs
  • dumps (abend)

⚠️ Erros clássicos de iniciante

❌ Rodar comando sem saber impacto
❌ Derrubar FILE em produção
❌ Desabilitar TRANS crítica
❌ Ignorar mensagens do CICS

💥 Regra de ouro:

“Se você não sabe o efeito → NÃO execute”


🧠 Mapa mental resumido

  • CICS = tempo real
  • TRANS = entrada
  • TASK = execução
  • PROGRAM = lógica
  • FILE/DB = dados

🚀 Próximos passos (nível Jedi)

Se quiser evoluir, recomendo:

  1. Criar sua primeira transação COBOL
  2. Aprender EXEC CICS READ/WRITE
  3. Entender COMMIT/ROLLBACK
  4. Trabalhar com TSQ/TDQ
  5. Explorar integração com APIs (CICS Web Services)

domingo, 8 de março de 2020

🏛️ O Estoicismo e o Mainframe da Alma

 


🏛️ O Estoicismo e o Mainframe da Alma

Entre Marco Aurélio e o JCL da existência


“Não é o que acontece com você, mas como você reage ao que acontece que importa.”
— Epicteto


☕ Introdução – O Kernel da Tranquilidade

Vivemos plugados em sistemas cada vez mais instáveis: redes sociais, emoções voláteis, ciclos econômicos e timelines saturadas.
Mas enquanto o mundo grita “Reaja!”, o estoico responde: “Observe.”

O Estoicismo é a filosofia dos engenheiros da alma.
Surgido em Atenas por volta de 300 a.C., com Zenão de Cítio, foi aperfeiçoado em Roma por Sêneca, Epicteto e Marco Aurélio.
Eles foram os primeiros a entender que o caos é inevitável — mas o crash não é obrigatório.


🧩 A Arquitetura Estoica – OS da Razão

O estoico divide o mundo em duas partições:

  1. O que está sob nosso controle.
    Pensamentos, atitudes, juízos, ações.

  2. O que não está sob nosso controle.
    O tempo, os outros, a política, a morte, a IA que alucina, o cliente que liga às 18h de sexta-feira.

O segredo da serenidade é simples — mas exige disciplina digna de sysprog:
focar na primeira partição e ignorar a segunda.

“A tranquilidade vem quando você para de tentar controlar o que não depende de você.”
— Marco Aurélio


⚙️ O Código-Fonte da Virtude

O Estoicismo não é religião, nem teoria — é prática.
Seu “mainframe moral” roda sobre quatro instruções básicas:

  • Sabedoria: discernir o que é certo.

  • Coragem: agir mesmo com medo.

  • Justiça: tratar o outro como igual.

  • Temperança: não exagerar — nem no prazer, nem na dor.

Essas são as macros universais do comportamento humano.
Todo resto é ruído de log.


🧠 Filosofia para tempos de CPU em 100%

O estoico não foge do mundo — ele o processa com eficiência emocional.
Para ele, cada erro é um abend natural do sistema humano.
Você analisa o dump, corrige o código e sobe o job novamente — sem drama.

Exemplo Bellacosa:

Seu chefe é um tirano, o mercado é cruel, o amor é bugado —
nada disso está sob seu controle.
Mas sua resposta, seu tom de voz, sua serenidade…
isso é 100% seu código-fonte.


🏛️ Os Quatro Grandes do Estoicismo

FilósofoOcupaçãoLegado
Zenão de CítioFundadorCriou a escola do Pórtico (Stoa Poikilé)
SênecaConselheiro de NeroCartas morais sobre sabedoria e política
EpictetoEscravo libertoDefiniu a filosofia prática do domínio interior
Marco AurélioImperador romanoEscreveu Meditações, um diário de autocontrole e humanidade

🧭 O Estoico no Século XXI – Manual do Sobrevivente Digital

O estoico contemporâneo não usa toga — usa fone de ouvido com cancelamento de ruído.
Ele vive entre o scroll infinito e a reunião eterna, mas aprendeu a recompilar a mente antes de travar.

Mandamentos estoicos da era digital:

  • 🌿 Desinstale o ego: o like não define seu valor.

  • 🧘‍♂️ Faça checkpoint emocional: antes de reagir, respire.

  • 💾 Faça backup do bom humor: ele é seu firewall contra o absurdo.

  • ⚡ Atualize a empatia: todo mundo está sobrecarregado.

  • 🕰️ Pratique o “agora”: o passado é log, o futuro é job em espera.


🔥 Dicas de Leitura Bellacosa

  1. “Meditações” – Marco Aurélio
    O diário do imperador que governava um império e a própria alma.

  2. “Manual de Vida” – Epicteto
    O resumo mais direto e funcional da filosofia estoica.

  3. “Cartas a Lucílio” – Sêneca
    Um clássico epistolar que parece escrito para quem vive de deadlines.


💡 Curiosidades Filosóficas

  • Epicteto nasceu escravo e tornou-se mestre — símbolo máximo da autossuficiência interior.

  • Marco Aurélio escrevia seus pensamentos em campanha militar, cercado de inimigos e tédio.

  • O termo “estoico” vem de stoa, o pórtico onde Zenão ensinava — o equivalente helênico a um coworking filosófico.

  • Sêneca, apesar de pregar simplicidade, era milionário — um paradoxo que o próprio reconhecia com ironia.


☕ Epílogo Bellacosa – O Mainframe da Serenidade

No fundo, o Estoicismo é o RACF da mente: controla o acesso às suas emoções.
Não impede o caos externo, mas garante que ninguém logue na sua alma sem permissão.

Entre o ruído digital, o drama político e o tédio existencial, o estoico caminha como um sysadmin da própria vida:
calmo, lógico, humano.

“O tempo é um recurso não renovável. Use-o bem.”
— Bellacosa Mainframe, inspirado em Marco Aurélio 2.0