domingo, 5 de junho de 2011

☕🍂 Wabi-Sabi: o debug espiritual que o Japão fez na vida perfeita

 

Bellacosa Mainframe em momento wabi-sabi colocando miniaturas

☕🍂 Wabi-Sabi: o debug espiritual que o Japão fez na vida perfeita

 

Se tem um conceito japonês que eu considero um ABEND cultural necessário, esse conceito é o Wabi-Sabi. Ele é o oposto absoluto do mundo polido, plastificado, otimizado e “certinho” em que vivemos hoje. É como se o Japão tivesse olhado para a existência humana e dito: “isso aqui nunca vai compilar perfeito — e tá tudo bem.”

🌿 Origem: quando o erro virou virtude

O Wabi-Sabi nasce lá atrás, no Zen Budismo, principalmente entre os séculos XIV e XV, muito ligado à cerimônia do chá. Enquanto a elite buscava porcelanas chinesas caríssimas e impecáveis, os monges zen começaram a valorizar tigelas simples, rústicas, tortas, com rachaduras e marcas do tempo.

Wabi vem da simplicidade, da vida modesta, do pouco.
Sabi vem do tempo, da pátina, do envelhecimento bonito.

Traduzindo para o dialeto mainframeiro:
👉 dataset antigo, meio remendado, mas confiável e rodando há 30 anos em produção.

🍵 O famoso easter egg: Kintsugi

Aqui entra um dos meus easter eggs favoritos: Kintsugi.
Quando uma cerâmica quebra, ao invés de jogar fora, os japoneses colam os pedaços com laca misturada com ouro. As rachaduras ficam visíveis e valorizadas.

Isso é Wabi-Sabi puro.

Não é esconder o erro.
É dizer: “isso quebrou, sobreviveu e agora vale mais.”

Quem nunca viu um programa COBOL feio, cheio de IF aninhado, comentário em caixa alta, mas que salva a empresa todo dia às 3 da manhã, não entendeu o Wabi-Sabi ainda.

🧠 Como entender o Wabi-Sabi (sem filosofar demais)

Eu costumo explicar assim:

  • Nada é permanente

  • Nada é completo

  • Nada é perfeito

Aceitar isso traz uma paz absurda.
O Wabi-Sabi não pede que você melhore tudo. Ele pede que você observe, aceite e cuide.

É viver sabendo que:

  • O tempo vai passar

  • As coisas vão desgastar

  • As pessoas vão mudar

  • E você também

E tudo isso faz parte da beleza.

🛠️ Wabi-Sabi na prática (vida real)

Alguns exemplos simples:

  • Uma mesa de madeira cheia de marcas de copo ☕

  • Um caderno usado, amarelado 📓

  • Uma casa antiga com rangido no assoalho

  • Um bairro simples, sem glamour, mas cheio de história

  • Uma amizade longa, com silêncios confortáveis

Nada disso seria “instagramável”.
Mas tudo isso tem alma.

🗾 Importância do Wabi-Sabi para o Japão

O Japão é um país que convive com:

  • Terremotos

  • Tsunamis

  • Incêndios históricos

  • Reconstruções constantes

O Wabi-Sabi ensina que perder faz parte, que recomeçar é normal, que o transitório é a regra.

Talvez por isso o japonês respeite tanto:

  • Estações do ano

  • Folhas caindo

  • Flores que duram poucos dias (olá, sakura 🌸)

  • Objetos antigos

  • Profissões tradicionais

😏 Fofoquices filosóficas

Wabi-Sabi é o terror de:

  • Influencer de lifestyle perfeito

  • Coach de produtividade tóxica

  • Cultura do “sempre melhorando” sem parar

Ele sussurra no ouvido:
👉 “Calma… você já é suficiente.”

📌 Dicas Bellacosa Mainframe

  • Não jogue fora tudo que é velho

  • Repare mais do que substitua

  • Valorize histórias, não só resultados

  • Aceite suas falhas como parte da arquitetura

  • Nem tudo precisa de refactor agora

🧘 Conclusão

Wabi-Sabi não é tristeza.
Não é resignação.
Não é desistência.

É maturidade.

É olhar para a vida como um sistema legado:
cheio de gambiarras, histórias, remendos…
mas ainda funcionando, entregando valor e carregando memória.

E no fim das contas, meu amigo,
isso é lindo pra caramba 🍂☕

sábado, 4 de junho de 2011

🔥 DB2 Buffer Pool e a Família de Pools – Onde o DB2 Guarda o Cérebro (e a Paciência) 🔥

 

Bellacosa Mainframe apresenta o Db2 e seus pools

🔥 DB2 Buffer Pool e a Família de Pools – Onde o DB2 Guarda o Cérebro (e a Paciência) 🔥

 


Se o DB2 fosse um organismo vivo, o buffer pool seria o cérebro de curto prazo.
Não é onde o dado nasce.
Não é onde o dado mora definitivamente.
Mas é onde tudo passa antes de fazer sentido.

Quem entende buffer pool:

  • entende performance

  • entende CPU

  • entende por que “não mexemos nisso em produção”

E quem não entende…
culpa o SQL.


🕰️ Um Pouco de História – Quando Disco Era Lento de Verdade

No DB2 antigo (e não tão antigo assim):

  • disco era caro

  • I/O era lento

  • memória era luxo

A IBM fez o óbvio (e genial):
👉 ler do disco uma vez e reutilizar o máximo possível.

Assim nasceu o buffer pool:

  • páginas lidas do tablespace

  • mantidas em memória

  • reutilizadas enquanto fizer sentido

💡 Resultado:
Menos I/O.
Mais performance.
Menos gritos no plantão.


🧠 O Que é um Buffer Pool, na Prática?

Buffer pool é uma área de memória onde o DB2 mantém:

  • páginas de dados

  • páginas de índice

Antes de ir ao disco, o DB2 pergunta:

“Isso já está no buffer?”

Se estiver:
🚀 rápido
Se não estiver:
🐢 I/O físico

💡 Regra Bellacosa:
DB2 rápido = buffer pool feliz.


📦 Tipos de Buffer Pool no DB2

🔹 BP0 – O Histórico

O buffer pool default, o “pai de todos”.

💡 Fofoquinha:
Ambiente que só tem BP0 geralmente tem performance “misteriosa”.


🔹 Buffer Pools Customizados (BP1, BP2, …)

Criados para separar:

  • dados críticos

  • índices quentes

  • tabelas gigantes

  • tabelas raramente acessadas

💡 Boa prática:
Índice quente em buffer pool separado = ganho imediato.


🔹 Buffer Pools Especiais

  • BP32K → tabelas com page size 32K

  • BP8K / BP16K → workloads específicos

🥚 Easter egg:
Criar BP32K sem necessidade é desperdício elegante de memória.


📊 Page Size – O Detalhe que Muda Tudo

Page size define:

  • quanto dado cabe por página

  • quantas linhas por I/O

Page SizeQuando usar
4KOLTP clássico
8KÍndices largos
16KLOB leve
32KLOB pesado

💡 Dica Bellacosa:
Page grande = menos I/O
Mas também = menos páginas no buffer pool.


🔄 Outros Pools Importantes no DB2 (Além do Buffer Pool)

🧾 EDM Pool (Environmental Descriptor Manager)

Guarda:

  • SQL dinâmico

  • Planos preparados

  • Descrições de objetos

💡 EDM pequeno = SQL recompilando toda hora.


🧠 Sort Pool

Usado para:

  • ORDER BY

  • GROUP BY

  • DISTINCT

💡 Comentário:
Sort indo para disco = SQL chorando.


🧵 RID Pool

Controla:

  • listas de RIDs para acesso indireto

💡 RID pool insuficiente = access path ruim sem aviso claro.


📥 Log Buffer

Onde o DB2 guarda logs antes de gravar no disco.

💡 Dica de guerra:
Log buffer pequeno = commit lento = aplicação reclamando.


🧰 Utility Pool

Usado por:

  • LOAD

  • REORG

  • RUNSTATS

💡 Ambiente sem utility pool dedicado sofre em batch pesado.


🔥 Buffer Pool e Performance – Onde os Adultos Conversam

Indicadores clássicos:

  • Hit ratio alto

  • Read I/O baixo

  • Write eficiente

💡 Fofoquinha séria:
Hit ratio alto não garante bom desempenho.
Às vezes o dado certo está fora do pool certo.


🧪 Buffer Pool vs Lock – O Drama Oculto

Buffer pool cheio:

  • mantém páginas sujas

  • segura lock mais tempo

  • aumenta contenção

💡 Dica Bellacosa:
Performance não é só memória.
É equilíbrio.


⚠️ Erros Clássicos que Todo Mundo Já Viu

  • Tudo no BP0

  • Índice crítico no mesmo pool que tabela fria

  • BP gigante sem uso real

  • BP pequeno para workload OLTP pesado

🥚 Easter egg de produção:
“Mudamos só o buffer pool” já causou tanto incidente quanto ALTER TABLE.


🧠 Buffer Pool no Mundo Moderno (DevOps & Observabilidade)

Hoje monitoramos:

  • hit ratio por pool

  • read/write por objeto

  • aging de páginas

  • comportamento por workload

💡 Regra moderna:
Tune sem métrica é chute elegante.


🗣️ Fofoquices de Sala-Cofre

  • “DB2 está lento hoje” → buffer pool cheio

  • “Nunca mexemos nisso” → por isso mesmo

  • “É só aumentar memória” → nem sempre


🧠 Pensamento Final do El Jefe

Buffer pool não é detalhe técnico.
É arquitetura viva.

Quem entende pool:

  • evita I/O

  • reduz CPU

  • ganha previsibilidade

Quem ignora:

  • otimiza SQL errado

  • culpa o hardware

  • trabalha de madrugada

🔥 Regra final Bellacosa Mainframe:
No DB2,
o dado pode morar no disco…
mas a performance mora na memória. 💾🧠

quinta-feira, 2 de junho de 2011

🔥 Different Types of RETURN Statements no CICS

 


🔥 Different Types of RETURN Statements no CICS

 


☕ Midnight Lunch, ENTER pressionado e… RETURN errado

13h07.
Usuário pressiona ENTER.
A tela some.
Nada acontece.

No fundo da sala alguém pergunta, com medo:

“Esse RETURN tá certo… né?”

Hoje vamos falar de um comando pequeno na sintaxe, mas gigante no impacto:
o EXEC CICS RETURN e suas variações.

Porque no CICS, retornar errado é desaparecer da aplicação.


🏛️ História: o retorno como base do online

Desde o início do CICS, o RETURN é o ponto onde:

  • A task termina

  • O controle volta para o CICS

  • A transação decide se continua ou morre

Muito antes de frameworks web, o CICS já dominava o request/response.

📌 RETURN é o “commit emocional” da transação.


🧠 Conceito essencial (grave isso)

RETURN não é só sair do programa.
É decidir o destino da transação.

Cada tipo de RETURN muda o comportamento do sistema.


🔁 Tipos de RETURN no CICS

Vamos aos principais, sem enrolação.


1️⃣ RETURN simples – fim da linha

O que faz?

  • Encerra o programa

  • Finaliza a task

  • Nenhuma continuação

EXEC CICS RETURN END-EXEC.

📌 Usado quando:

  • Processamento acabou

  • Nenhuma tela a exibir

  • Nenhuma navegação

⚠️ Usado errado → usuário perdido.


2️⃣ RETURN com TRANSID – chama outra transação

O que faz?

  • Finaliza a task atual

  • Inicia nova transação

  • Novo task number

EXEC CICS RETURN TRANSID('TRN2') END-EXEC.

📌 Ideal para:

  • Navegação controlada

  • Separação de fluxos

  • Segurança transacional


3️⃣ RETURN com COMMAREA – estado preservado

O que faz?

  • Finaliza a task

  • Preserva dados para a próxima

EXEC CICS RETURN TRANSID('TRN2') COMMAREA(WS-COMMAREA) LENGTH(LEN) END-EXEC.

📌 Base do pseudo-conversacional.


4️⃣ RETURN com CHANNEL – o jeito moderno

O que faz?

  • Mesmo conceito da COMMAREA

  • Muito mais flexível

EXEC CICS RETURN TRANSID('TRN2') CHANNEL('CHN01') END-EXEC.

📌 Padrão moderno. Escalável. Elegante.


5️⃣ RETURN IMMEDIATE – sem passar pelo fluxo normal

O que faz?

  • Termina a task agora

  • Ignora pseudo-conversacional

EXEC CICS RETURN IMMEDIATE END-EXEC.

📌 Use com cuidado:

  • Emergência

  • Erro crítico

  • Saída forçada


🥊 RETURN vs XCTL vs LINK (mini comparativo)

ComandoRetorna?Nova task?Uso típico
RETURNNãoDependeEncerrar
XCTLNãoNãoTroca de fluxo
LINKSimNãoSub-rotina

📌 Confundir isso gera bug fantasma.


🛠️ Passo a passo Bellacosa (antes do RETURN)

1️⃣ O usuário precisa ver outra tela?
2️⃣ Preciso preservar estado?
3️⃣ Nova transação ou mesma?
4️⃣ COMMAREA ou CHANNEL?
5️⃣ Estou encerrando cedo demais?

📌 RETURN é decisão arquitetural.


⚠️ Erros clássicos (easter eggs)

🐣 RETURN sem TRANSID em fluxo pseudo-conversacional
🐣 COMMAREA com tamanho errado
🐣 RETURN antes de liberar lock
🐣 Misturar XCTL e RETURN sem lógica
🐣 Esquecer canal ativo

📌 Todo sumiço de tela começa aqui.


📚 Guia de estudo para mainframers

Para dominar RETURN:

  • Pseudo-conversational design

  • Program Control

  • COMMAREA vs CHANNEL

  • Transaction lifecycle

  • Error handling

📖 Manual essencial: CICS Application Programming Guide


🤓 Curiosidades de boteco mainframe

🍺 RETURN existe desde os primeiros CICS
🍺 RETURN IMMEDIATE já salvou produção quebrada
🍺 Muitos “bugs de tela” são RETURN errado
🍺 Web frameworks copiaram o modelo sem saber


💬 Comentário El Jefe Midnight Lunch

“No CICS, voltar é escolha.
Sumir é consequência.”


🚀 Aplicações reais hoje

  • Sistemas de atendimento

  • Core bancário

  • Sistemas governamentais

  • Aplicações híbridas CICS + API


🎯 Conclusão Bellacosa

O EXEC CICS RETURN parece simples.
Mas ele define:

  • Fluxo

  • Estado

  • Experiência do usuário

🔥 RETURN não é sair. É decidir o futuro.


quarta-feira, 1 de junho de 2011

📜 Crônicas da Rua Ultrecht – Volume “Novo Horizonte”

 


📜 Crônicas da Rua Ultrecht – Volume “Novo Horizonte”
Ao estilo Bellacosa Mainframe, para os leitores fiéis deste escriba desorganizado e feliz

Há memórias que chegam como dump de sistema: fragmentadas, desalinhadas, registros misturados, datas colidindo como timestamps descompassados num JES2 atolado.
Mas, no meio desse caos mental, há sempre um bloco consistente, um dataset íntegro: Novo Horizonte, interior de São Paulo.
Fim dos anos 1970, início dos anos 1980.
Antes da pré-escola, antes da alfabetização, antes do Dandan — ou depois, quem sabe. A cronologia é um JCL mal comentado. Mas a lembrança, essa sim, é vívida.



🌽 Novo Horizonte — O Parêntese da Infância

Aqueles meses (ou seria um ano?) em Novo Horizonte foram como um fork no meu sistema de vida.
Meu pai, fotógrafo, resolveu tentar sorte na cidade dos primos.
E ali reencontrei três figuras lendárias:

  • Sidney

  • Marcele

  • Duzinho

Filhos de Eduardo e Cleuza, parentes do meu pai e operadores oficiais da oficina técnica da vida real, especializada em tratores, caminhonetes e utilitários rurais.
Era um mundo de graxa, ferro, escapamentos quentes, parafusos, barulho e cheiro de óleo queimado — um parque de diversões para qualquer criatura diabinha em formação.



🌭 O Hot Dog da Iluminação Química

Foi lá que eu vivi minha primeira epifania gastronômica.

Até então, na minha casa, “hot dog” era:

  • pão

  • salsicha

  • molho de tomate caseiro

Delicioso, mas… doméstico.
Quase artesanal.

Então veio o evento.
A mordida.
A descoberta.

Hot dog com ketchup.

Meu Deus.
O choque cultural.
A explosão industrial.
O sabor químico, doce, artificial, processadíssimo — e absolutamente perfeito.

Era como sair de fita magnética e entrar no SSD.
Como trocar gloops de tinta por polímeros sintéticos de primeira geração.
Como sair de CP/M e descobrir mainframe z/OS.

Até hoje — até hoje — quando provo ketchup, uma pequena cena pós-créditos sobe na minha mente:
eu, pequenino, segurando um hot dog e pensando:
o que é esse néctar das fábricas?



⚠️ Epic Fail Nº 271 — A Piscina de Óleo Queimado

Mas nenhuma lembrança supera o grande mergulho.

Na oficina do Edu, havia um reservatório aberto no chão — um fosso pouco profundo onde se acumulava óleo queimado de lubrificação.
Preto.
Denso.
Pegajoso.
Cheiro forte.
Aquele tipo de resíduo que hoje teria uns 47 alertas ambientais e umas cinco multas da CETESB.

Eis que, num momento de inspiração duvidosa, Sidney, provavelmente com a inocência (ou malícia) típica dos primos mais velhos, comenta:

“Olha ali… a piscina!”

Eu, crédulo, aspirante a passarinho, criatura ainda sem firmware de autopreservação, pensei:

“Piscina = pular.”

E pulei.

Sim.
Eu pulei dentro do óleo.



🛢️ O Batismo Petrolífero

Subi do fosso como um personagem bugado de jogo 8-bit:

  • inteiramente preto,

  • grudento,

  • escorrendo óleo,

  • com a roupa condenada,

  • e com a alma impregnada de hidrocarbonetos.

Minha mãe quase teve um AVC.
Meu pai não sabia se brigava ou fotografava.
E eu, no auge da inocência, estava mais curioso do que arrependido.

Hoje, quando vejo fotos de derramamento de crude no mar, aves cobertas de petróleo, tartarugas lutando para mexer a nadadeira…
me bate uma solidária pontada no peito.

Eu sei.
Eu sei o que é viver isso.

Sou praticamente um sobrevivente de derramamento ambiental, versão infantil.


🎞️ Novo Horizonte — O Episódio Perdido da Série

Essas memórias não têm ordem, não têm lógica, não seguem calendário.
São como blocks jogados pelo tempo, soltos na memória, prontos para serem reorganizados por algum futuro arqueólogo digital.

Mas elas existem.
Pulam do passado como aquele hot dog vermelho, aquele pulo no poço, aquele abraço da infância simples.

terça-feira, 12 de abril de 2011

🌸 Sakura — A flor que o Japão usa para lembrar que tudo é temporário

 

Sakura a beleza efemera do Japão

🌸 Sakura — A flor que o Japão usa para lembrar que tudo é temporário

Se você já viu anime, dorama, filme japonês ou mesmo um wallpaper bonito demais pra ser verdade, já trombou com elas: as sakuras, as famosas flores de cerejeira.

Mas sakura não é só flor bonita para Instagram, não.
Ela é filosofia, memória, despedida, começo e bug emocional tudo ao mesmo tempo.


🌸 O que é Sakura, tecnicamente falando

Sakura (桜 / さくら) é a flor da cerejeira japonesa.
Ela floresce por pouquíssimos dias, normalmente entre março e abril, dependendo da região.

Ou seja: nasce linda, explode em beleza… e cai rápido.
Nada mais japonês do que isso.


um parque japones e suas sakura

🏯 Origem histórica (job antigo, mas estável)

O culto à sakura vem de mais de mil anos, lá do período Heian (794–1185).
A aristocracia japonesa se reunia para contemplar as flores, escrever poemas e beber saquê.

Com o tempo, isso virou o Hanami:

  • Hana = flor

  • Mi = observar

Ou seja: parar tudo para olhar flor caindo.
Produtividade zero, significado 100%.


sakura a flor de cerejeira

🌸 Significado profundo (a parte que aperta o coração)

Sakura simboliza:

  • 🌱 Impermanência da vida

  • 💔 Beleza passageira

  • 🌬️ Aceitação da morte

  • 🌸 Renovação e recomeço

É o famoso conceito japonês do mono no aware:

A consciência de que tudo passa — e justamente por isso é bonito.

A flor não luta contra o tempo.
Ela floresce… e aceita cair.


🎌 Importância cultural no Japão

  • Marca o início do ano letivo

  • Marca o início do ano fiscal

  • Marca mudanças de fase

  • Marca despedidas e novos caminhos

Basicamente: quando a sakura floresce, o Japão dá F5 na vida.


📺 Sakuras nos animes (Easter Eggs)

Se você vê sakura caindo em anime, algo importante está acontecendo:

  • Final de arco

  • Despedida

  • Novo começo

  • Amor não correspondido

  • Trauma desbloqueado 😅

🎥 Exemplos:

  • Your Name

  • 5 Centimeters per Second

  • Naruto (óbvio)

  • Clannad

  • AnoHana

Sakura caindo = emocional damage garantido.


🤫 Fofoquices & bastidores

  • Todo ano o Japão tem a previsão oficial da floração, tipo boletim meteorológico emocional

  • Pessoas viajam o país só para ver a flor

  • Parques lotam mais que metrô em horário de pico

  • Empresas fazem piqueniques corporativos sob as árvores (sim, até o chefe vira humano por um dia)


💡 Dicas Bellacosa Mainframe para o leitor

✔ Não confunda sakura com cerejeira frutífera — não dá cereja
✔ Não arranque flores (crime cultural)
✔ Se vir pétala caindo num anime, prepare o lenço
✔ Sakura não é sobre durar — é sobre marcar memória


🧠 Conclusão — modo reflexão ativado

A sakura ensina algo que a gente vive esquecendo:

Nada precisa durar para ser importante.

Ela floresce rápido, encanta todo mundo e vai embora sem pedir desculpa.
Deixa saudade, deixa aprendizado, deixa silêncio.

Talvez por isso o Japão ame tanto a sakura.
Ela lembra que viver é um evento temporário — e lindo exatamente por isso.

🌸

segunda-feira, 11 de abril de 2011

🖥️✨ O que torna o Mainframe mágico para você?

 

Homenagem aqueles que partiram, mas foram grandes mainframers

🖥️✨ O que torna o Mainframe mágico para você?



Muita gente responde rápido:
👉 poder
👉 confiabilidade
👉 escalabilidade
👉 estabilidade de carreira

Tudo isso é verdade.
E, sinceramente? Tudo isso é irrelevante.

Porque o que torna o mainframe realmente mágico não aparece em benchmark, SLA ou relatório de capacidade.

O mainframe concede algo raro na história da tecnologia:
🧠 uma forma de imortalidade.


🕯️ Quando o Código Sobrevive ao Autor

Imaginar que existem codigos em produção criados na decada de 1980, 1990, 2000, muitas dessas pessoas estão aposentadas, algumas até faleceram e nem imaginam, que seu codigo continua rodando em algum processo Batch da vida, aquelas 4 linhas de comentarios, durando mais tempo que a propria existencia.

Demos adeus a antigos colegas, pessoas que dividiram momentos na criação e codificação. Mas há um pensamento — estranho, profundo e ao mesmo tempo reconfortante — que só quem vive o mainframe entende:

👉 o código dele ainda está rodando.

24 horas por dia.
7 dias por semana.
Em data centers espalhados pelo mundo.
E provavelmente continuará rodando por décadas.


🧬 Health Checker for z/OS – Um Guardião Invisível

Outra grande ferramenta o  IBM Health Checker for z/OS.

Vivemos tempos loucos, pressão total, desmembramento de equipes, terceirização, quarteirização, precarização total, antigos guerreiros que geraram lucros, hoje demitidos como se fossem trapos, jogados na lixeira.

Tempos modernos extranhos, onde o profissional perde valor e é demitido por ser antigo, por ter uma folha salarial mais alta, nunca o salario daqueles que dirigem para aqueles que produzem foi tão alto. Equipes desmobilizadas, para passado alguns meses recontrarem como terceirizados, ganhando metade do que ganhavam.

Pessoas que não fazem ideia do que acontecem na Tela Verde, cortam, riscam, demitem e depois descobrem que fizeram caquinha. Muitos nem ficam muito tempo, pulando para o proximo galho, usando o cargo para fazer curriculum.

Enquanto bancos liquidam bilhões,
aviões decolam,
hospitais processam dados,
governos funcionam…

O código Heath verifica silenciosamente se os sistemas estão saudáveis.
Protegendo o que sustenta a economia global.

💡 Ironia dolorosa:
O sistema verifica a saúde de tudo —
menos a saúde mental daqueles de quem o escreveu.


🟢 O Verde da Tela como Portal

Para muitos, o green screen é velho.
Para quem sabe olhar, ele é um portal.

Cada programa COBOL, cada comentário, cada decisão estranha às 2h da manhã carrega:

  • personalidade

  • humor

  • cansaço

  • genialidade

  • humanidade

🥚 Easter egg emocional:
Comentários em código antigo não são documentação.
São mensagens no tempo.

Ali estão pessoas que já se aposentaram.
Pessoas que mudaram de área.
Pessoas que já não estão mais aqui.

Mas o pensamento delas… continua executando.


🧠 A Imortalidade que Ninguém Vende no PowerPoint

O mainframe não é mágico porque não cai.
Ele é mágico porque lembra.

Enquanto outras plataformas descartam, reescrevem e esquecem, o mainframe:

  • preserva

  • respeita

  • carrega legado

💡 Dica Bellacosa (humana, não técnica):
Leia comentários antigos com respeito.
Ali existe alguém que confiou que outro ser humano estaria ali no futuro.

Você é esse futuro.


🗣️ Fofoquices de Sala-Cofre (as que não viram incidente)

  • “Esse código é estranho, mas funciona há 30 anos”

  • “Não mexe, foi o Fulano que escreveu”

  • “Isso aqui tem história”

  • "Tenho até dor de barriga, só em pensar em mexer no programa A"

  • Uauu isso é uma carta a Julieta, que programa imenso.

  • Esse programa é tão bonito, que até estou emocionado.

Essas frases não são medo técnico.
São respeito ancestral.


🕊️ Rest in Peace, Programador eternizado nos comentarios

Graças ao mainframe,
os pensamentos,
as decisões,
o cuidado
de muitas pessoas que partiram
estão permanentemente codificados.

O mundo segue funcionando, em parte, por causa dele.

E isso… isso é mágico.


🧠 Pensamento Final do El Jefe

Dizem por aí:

“O mainframe está morto.”

Mas toda vez que um programa escrito há décadas executa corretamente,
toda vez que um comentário explica algo essencial,
toda vez que um sistema continua em pé…

🔥 o mainframe prova que está mais vivo do que nunca.

Porque enquanto houver código rodando,
ninguém que escreveu para ele é totalmente esquecido.

🖥️
O mainframe é eterno.
Longa vida ao mainframe.


domingo, 10 de abril de 2011

🔥 Multi Tasking vs Multi Threading no Mainframe CICS

CICS Multi Tasking versus Multi Threading no Mainframe


🔥 Multi Tasking vs Multi Threading no Mainframe CICS

 


☕ Midnight Lunch, 500 usuários logados e o CICS impassível

13h11.
Fila cheia no atendimento.
Centenas de usuários pressionando ENTER ao mesmo tempo.
E o CICS… tranquilo. 😎

Alguém novo pergunta:

“Isso é multi-threading, né?”

O veterano sorri, toma um gole de café e responde:

“Não. Isso é multi-tasking de verdade.”

Vamos acertar essa confusão de uma vez por todas.


🏛️ História: concorrência antes de virar buzzword

Muito antes de:

  • Java threads

  • pthreads

  • containers

  • Kubernetes

o mainframe já executava milhares de unidades de trabalho simultâneas.

O CICS nasceu para isso:

  • Processar milhares de transações

  • Compartilhar recursos

  • Garantir integridade

📌 Concorrência não é novidade. É herança.


🧠 Conceito essencial (guarde isso)

Multi-tasking = várias tarefas concorrentes
Multi-threading = vários fluxos dentro de uma tarefa

No CICS, isso muda tudo.


🔄 O que é Multi-Tasking no CICS?

Definição

Multi-tasking é a capacidade do CICS de:

  • Executar múltiplas tasks (transações) ao mesmo tempo

  • Cada uma com seu próprio contexto

  • Compartilhando a mesma região

Cada ENTER do usuário = uma task CICS.


Características

✔ Cada task é independente
✔ Isolamento de contexto
✔ Escalonamento pelo dispatcher
✔ Altíssima escalabilidade

📌 O CICS vive de multi-tasking.


Exemplo mental Bellacosa

1000 usuários → 1000 tasks
Cada uma:

  • Seu COMMAREA/CHANNEL

  • Seus locks

  • Seu tempo de CPU

🔥 Tudo rodando em harmonia.


🧵 O que é Multi-Threading no CICS?

Definição

Multi-threading é quando:

  • Um mesmo programa pode ser executado

  • Simultaneamente

  • Por várias tasks

📌 Atenção:
No CICS, thread ≠ task como no mundo distribuído.


Como o CICS lida com isso?

  • Programas devem ser reentrantes

  • Não podem depender de storage estático

  • Precisam ser “thread-safe”

📌 O CICS não cria threads. Ele compartilha programas.


🥊 Task vs Thread (comparação raiz)

ConceitoTask (CICS)Thread (conceito geral)
UnidadeTransaçãoFluxo interno
ControleCICS DispatcherRuntime
IsolamentoAltoMédio
UsoUsuáriosExecução interna

📌 Confundir task com thread é erro de formação.


🧠 Reentrância: o coração do multi-threading no CICS

O que é?

Um programa reentrante:

  • Pode ser executado por várias tasks

  • Ao mesmo tempo

  • Sem interferência

Regras de ouro

✔ Nada de storage estático mutável
✔ Use WORKING-STORAGE dinâmico
✔ Use COMMAREA / CHANNEL
✔ Trate recursos compartilhados

📌 Programa não reentrante em CICS é bomba relógio.


⚠️ Erros clássicos (easter eggs)

🐣 Variável global alterada
🐣 WORKING-STORAGE assumido como exclusivo
🐣 TSQ compartilhada sem controle
🐣 READ UPDATE segurando lock
🐣 “Funciona em teste, quebra em carga”

📌 Todo bug concorrente nasce aqui.


🛠️ Passo a passo Bellacosa (como pensar concorrência)

1️⃣ Cada usuário = uma task
2️⃣ Programas são compartilhados
3️⃣ Dados nunca são exclusivos
4️⃣ Locks devem ser mínimos
5️⃣ Storage deve ser limpo

📌 Concorrência se projeta, não se improvisa.


📚 Guia de estudo para mainframers

Domine estes tópicos:

  • CICS Task lifecycle

  • Dispatcher e TCBs

  • Program reentrancy

  • Storage management

  • ENQ/DEQ

📖 Manual essencial: CICS Application Programming Guide


🤓 Curiosidades de boteco mainframe

🍺 CICS roda milhares de tasks em um único endereço
🍺 “Thread-safe” nasceu no mainframe
🍺 Programas não reentrantes já derrubaram regiões
🍺 Java copiou conceitos do CICS sem admitir


💬 Comentário El Jefe Midnight Lunch

“O mundo descobriu concorrência.
O mainframe sempre viveu dela.”


🚀 Aplicações reais hoje

  • Core bancário

  • Sistemas de pagamento

  • Governo

  • Seguradoras

  • Ambientes híbridos (CICS + APIs)


🎯 Conclusão Bellacosa

No CICS:

  • Multi-tasking é nativo

  • Multi-threading é disciplina

  • Reentrância é obrigatória

🔥 Concorrência não é luxo. É fundamento.