Translate

Mostrar mensagens com a etiqueta aciD. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta aciD. Mostrar todas as mensagens

domingo, 7 de dezembro de 2025

💥 O SISTEMA QUE NUNCA PODE PARAR: CICS TS no IBM z17 e o Segredo das Transações que Movem o Mundo

 

Bellacosa Mainframe explorando o CICS TS

💥 O SISTEMA QUE NUNCA PODE PARAR: CICS TS no IBM z17 e o Segredo das Transações que Movem o Mundo

Se você é um dev COBOL sênior e ainda escuta que seu código é “legado”… já passou da hora de virar o jogo.

Porque a verdade é outra:

💎 Você trabalha na plataforma que move bancos, governos e bilhões de transações por dia — o CICS Transaction Server rodando em IBM Z (como o z17).

Este artigo não é básico.
É uma visão de quem quer entender de verdade o coração do processamento transacional.


🏛️ Um pouco de história (e um choque de realidade)

CICS nasceu nos anos 60.

Sim… mais antigo que muita linguagem moderna.

Mas aqui está o plot twist:

👉 Ele nunca parou de evoluir.

Hoje o CICS:

  • Fala REST/JSON
  • Roda Java e Node.js
  • Integra com cloud
  • Expõe APIs
  • Suporta milhões de usuários simultâneos

Enquanto muita tecnologia “moderna” luta para resolver problemas que o CICS resolve há décadas.


⚡ O que é CICS TS (sem romantizar)

💎 CICS é um Transaction Processing Monitor (TP Monitor)

Traduzindo:

👉 Um sistema que garante que operações críticas aconteçam com segurança, velocidade e consistência.


🧠 O papel real do CICS

Ele é responsável por:

  • Executar programas (COBOL, Java, etc.)
  • Gerenciar milhares de usuários simultâneos
  • Controlar acesso a dados
  • Garantir integridade (ACID)
  • Coordenar commits e rollbacks
  • Recuperar falhas automaticamente

👉 Você escreve lógica de negócio.
👉 O CICS garante que ela não quebre o mundo.


💳 O conceito mais importante: TRANSAÇÃO

Uma transação é:

💎 Uma unidade lógica de trabalho que deve ser executada completamente ou não executada


🏦 Exemplo clássico (mas real)

Transferência de R$ 1.000:

  1. Debitar conta A
  2. Creditar conta B

Simples? Só na superfície.


💥 Se algo falhar no meio?

Sem CICS:

❌ Dinheiro some
❌ Sistema inconsistente

Com CICS:

👉 Tudo é desfeito (rollback)


⚖️ ACID no CICS — onde o jogo fica sério

🔹 Atomicidade

Tudo ou nada.

🔹 Consistência

Regras nunca são violadas.

🔹 Isolamento

Concorrência controlada.

🔹 Durabilidade

Após commit → permanente.


💡 Easter egg profissional:

“CICS não garante que sua transação vai terminar.
Ele garante que seu sistema nunca ficará inconsistente.”


🧩 Transaction vs Task vs Unit of Work (o trio que derruba entrevistas)

🏷️ Transaction

O pedido (ex: TRANSFERIR)

🧑‍💻 Task

A execução real para um usuário

🧩 Unit of Work

O conjunto de operações que devem ser concluídas juntas


🧠 Forma de lembrar

👉 Transaction = intenção
👉 Task = execução
👉 UOW = integridade


🔄 Passo a passo de uma transação CICS

Vamos simular algo real:

💳 Compra com cartão

1️⃣ Request chega (API, terminal, app)

2️⃣ CICS cria uma TASK

3️⃣ Programa COBOL é carregado

4️⃣ Locks são aplicados

5️⃣ DB2/VSAM são acessados

6️⃣ Logs são gravados

7️⃣ Syncpoint (commit ou rollback)

8️⃣ Resposta enviada

Tudo isso em milissegundos.


🔒 Concorrência — onde o CICS brilha

Milhões de usuários simultâneos?

Sem problema.


⚡ Multitasking

👉 Várias tasks rodando ao mesmo tempo


🧵 Multithreading

👉 Mesmo programa sendo usado por vários usuários


💎 Reentrância

👉 Código único + dados isolados

Sem isso, o mainframe colapsaria.


💥 Deadlock — quando o sistema entra em “briga”

🧠 Cenário clássico

Transação A segura recurso X e quer Y
Transação B segura Y e quer X

👉 Impasse total


🧯 Solução do CICS

  • Detecta o deadlock
  • Cancela uma transação
  • Libera recursos
  • Preserva integridade

💡 Curiosidade:

Deadlock não é erro — é efeito natural da concorrência.


🏗️ CICS como “SO dentro do SO”

Você não chama o z/OS diretamente.

Você chama o CICS:

EXEC CICS READ FILE(...)
EXEC CICS WRITEQ TS(...)
EXEC CICS LINK PROGRAM(...)

👉 O CICS fala com o sistema por você.


🌐 CICS moderno — muito além do 3270

Se você ainda pensa em tela verde, está atrasado.

Hoje o CICS:

  • Expõe APIs REST via z/OS Connect
  • Roda Java (Liberty JVM)
  • Executa Node.js
  • Integra com cloud
  • Participa de arquiteturas híbridas

📱 Exemplo real moderno

App mobile → API → z/OS Connect → CICS → DB2

Usuário nem imagina que existe um mainframe ali.


☁️ Cloud + CICS

Sim, isso existe.

CICS hoje suporta:

  • Bundles de aplicação
  • Deploy automatizado
  • Políticas de recursos
  • CICSPlex para escala

👉 Conceitos de cloud dentro do mainframe.


🧠 Curiosidades que poucos sabem

💡 CICS pode processar milhões de transações por segundo
💡 Muitos bancos nunca desligam CICS (uptime absurdo)
💡 Grande parte das transações financeiras globais passam por CICS
💡 Node.js roda dentro do CICS (sim, JavaScript no mainframe 😄)
💡 Seu COBOL pode virar API REST sem reescrever nada


🔥 Insight final (nível arquiteto)

💎 CICS não é legado — é infraestrutura invisível da economia mundial

Ele resolve problemas que arquiteturas modernas ainda tentam resolver:

  • Consistência forte
  • Alta concorrência
  • Recuperação automática
  • Baixa latência
  • Escala absurda

🚀 Conclusão — para dev COBOL sênior

Se você domina CICS:

👉 Você não é “dev legado”
👉 Você é especialista em sistemas de missão crítica

quarta-feira, 23 de fevereiro de 2022

SQL versus NoSQL: A Guerra que Nunca Existiu (e por que todo Programador COBOL deveria entender os dois)

 

Bellacosa Mainframe numa guerra que nunca existiu sql versus nosql

☕ Um Café no Bellacosa Mainframe

SQL versus NoSQL: A Guerra que Nunca Existiu (e por que todo Programador COBOL deveria entender os dois)

"A tecnologia muda. Os princípios permanecem."

Imagine que você acabou de entrar em uma grande empresa. É seu primeiro emprego como programador COBOL. Você acabou de aprender JCL, já conseguiu fazer seu primeiro programa rodar no z/OS, descobriu o que é um Job, um Dataset e finalmente conseguiu fazer um SELECT sem esquecer o END-EXEC.

Então alguém da equipe comenta durante uma reunião:

"Estamos integrando o Mainframe com MongoDB."

Cinco minutos depois outro colega fala:

"Os dados vão para Redis."

Na sequência o arquiteto comenta:

"O Neo4j será usado para análise de fraude."

Você pensa:

"Mas... eu aprendi SQL... o que aconteceu? Agora existem quatro bancos diferentes?"

Bem-vindo ao desenvolvimento moderno.

Hoje vamos conversar sobre uma das maiores dúvidas de quem está começando:

SQL ou NoSQL?

Spoiler...

A resposta é muito diferente do que a internet costuma vender.

Pegue seu café.

Vamos conversar.


O mito da guerra

Existe uma narrativa que aparece em vídeos, blogs e redes sociais dizendo que:

SQL morreu.

Ou então:

NoSQL veio substituir os bancos relacionais.

Nada poderia estar mais distante da realidade.

Na verdade, SQL nunca esteve tão vivo.

E NoSQL nunca tentou matá-lo.

Os dois nasceram para resolver problemas completamente diferentes.

É como comparar:

  • um caminhão

  • um avião

Qual é melhor?

Depende.

Você quer transportar cimento entre cidades?

Ou cruzar o oceano?

A pergunta está errada.

Da mesma forma:

A pergunta nunca foi SQL versus NoSQL.

A pergunta correta sempre foi:

Qual tecnologia resolve melhor ESTE problema?


Uma pequena viagem no tempo

Imagine que estamos em 1970.

Os computadores ocupavam salas inteiras.

Não existia internet.

Não existia smartphone.

Nem notebook.

Muito menos Cloud.

Os bancos de dados funcionavam quase como arquivos gigantes.

Era preciso conhecer exatamente onde cada informação estava gravada.

Era complicado.

Foi então que um pesquisador da IBM chamado Edgar Frank Codd publicou um artigo que mudaria para sempre a computação:

A Relational Model of Data for Large Shared Data Banks

Esse trabalho apresentou uma ideia brilhante.

Em vez de pensar em ponteiros físicos...

Vamos pensar em relações.

Assim nasceram:

  • tabelas

  • linhas

  • colunas

  • chaves

  • relacionamentos

Nascia o Modelo Relacional.

Poucos anos depois, a própria IBM desenvolveu o System R, um projeto experimental que introduziu a linguagem SQL (Structured Query Language). A ideia mostrou tanto potencial que outras empresas passaram a investir no modelo, surgindo plataformas como Oracle, Informix, SQL Server, PostgreSQL, MySQL e, naturalmente, o Db2, um dos pilares do universo IBM Mainframe.


Por que o SQL fez tanto sucesso?

Porque ele resolveu um problema gigantesco.

Imagine um banco.

Existem milhões de clientes.

Cada cliente possui:

  • conta corrente

  • poupança

  • investimentos

  • cartões

  • empréstimos

Tudo isso precisa estar relacionado.

Se João mudar de endereço...

Não faz sentido atualizar vinte lugares diferentes.

O SQL organiza essas informações em tabelas relacionadas, reduzindo redundâncias e garantindo consistência.

Esse conceito recebe o nome de normalização.

Parece um detalhe.

Na prática...

Economizou bilhões de dólares em armazenamento ao longo da história.


ACID: o superpoder invisível

Existe um conceito que todo programador júnior deveria decorar.

ACID.

Não porque cai em entrevista.

Mas porque explica por que bancos confiam tanto em SQL.

Imagine transferir R$ 500 de uma conta para outra.

São duas operações:

  • retirar da Conta A

  • adicionar na Conta B

E se faltar energia exatamente no meio?

ACID garante que isso não aconteça.

Ou tudo acontece...

Ou nada acontece.

Isso é chamado de Atomicidade.

Depois temos:

Consistência

Os dados permanecem válidos.

Isolamento

Milhares de pessoas podem operar simultaneamente sem "atropelar" umas às outras.

Durabilidade

Depois do COMMIT...

Mesmo que o servidor desligue...

Os dados continuam lá.

É por isso que bancos, seguradoras e bolsas de valores continuam confiando em bancos relacionais.


Onde entra o Mainframe?

Agora vem uma curiosidade que muita gente desconhece.

Grande parte do dinheiro que circula diariamente no mundo passa por Mainframes.

Cartões.

PIX.

TED.

DOC.

Compras internacionais.

Folha de pagamento.

Seguros.

Tudo isso frequentemente passa por sistemas COBOL utilizando Db2 for z/OS.

Quando você escreve:

EXEC SQL

SELECT SALDO

INTO :WS-SALDO

FROM CONTAS

WHERE NUMERO = :WS-CONTA

END-EXEC.

O SQL não está apenas buscando dados.

Existe todo um universo trabalhando por trás:

  • Pré-compilador SQL

  • DBRM

  • Package

  • Bind

  • Plan

  • Otimizador

  • Buffer Pools

  • Logging

  • Locking

  • Recovery

O desenvolvedor enxerga apenas a ponta do iceberg.


Então por que surgiu o NoSQL?

Porque o mundo mudou.

Muito.

Em 1970 ninguém imaginava redes sociais.

Nem streaming.

Nem IoT.

Nem celulares.

Nem milhões de fotos por minuto.

Agora imagine armazenar:

  • vídeos

  • comentários

  • curtidas

  • localização

  • mensagens

  • sensores

  • documentos JSON

Tudo isso em tabelas relacionais.

Funciona?

Sim.

Mas nem sempre é a melhor escolha.

Foi então que surgiu o movimento NoSQL.

Curiosamente...

NoSQL não significa "Sem SQL".

Significa:

Not Only SQL

Ou seja...

Existem outros modelos além do relacional.


Os quatro reinos do NoSQL

Quando alguém diz "NoSQL", na verdade está falando de uma família inteira de bancos.

📄 Documento

Exemplo:

MongoDB.

Os dados ficam parecidos com JSON.

Cada documento pode possuir uma estrutura diferente.

Perfeito para aplicações web.


🔑 Chave-Valor

Exemplo:

Redis.

Imagine um gigantesco dicionário.

Você fornece uma chave.

Recebe um valor.

Extremamente rápido.

Muito utilizado como cache.


📚 Colunar

Exemplos:

Cassandra.

ScyllaDB.

HBase.

Projetados para trabalhar com enormes volumes distribuídos.

Muito utilizados em Big Data.


🌐 Grafos

Exemplo:

Neo4j.

Aqui o importante não são os registros.

São os relacionamentos.

Quem conhece quem?

Quem comprou junto?

Quem transferiu dinheiro para quem?

Ideal para detectar fraudes.


SQL é rígido?

Sim.

E isso é uma vantagem.

Imagine um cadastro de funcionários.

Todos possuem:

  • matrícula

  • nome

  • salário

  • departamento

É ótimo exigir que todos tenham exatamente a mesma estrutura.

Já em uma rede social...

Cada usuário pode possuir informações diferentes.

Uns possuem Instagram.

Outros TikTok.

Outros LinkedIn.

Outros nenhum.

Forçar uma estrutura única pode ser desnecessário.

É aí que bancos orientados a documentos brilham.


Escalabilidade

Existe outra diferença importante.

Tradicionalmente, bancos SQL cresceram na vertical.

Mais CPU.

Mais memória.

Mais discos.

Servidor maior.

Já muitos bancos NoSQL foram desenhados pensando em crescer horizontalmente.

Mais servidores.

Mais nós.

Mais máquinas.

É o modelo utilizado por empresas como Google, Amazon, Netflix e Meta.

Mas atenção: hoje essa divisão não é absoluta. Bancos relacionais modernos também oferecem mecanismos de escalabilidade horizontal, e diversas soluções NoSQL implementam recursos avançados de consistência e transações.


SQL também evoluiu

Existe outro mito.

"O SQL parou no tempo."

Errado.

Hoje temos:

  • JSON dentro do PostgreSQL

  • JSON no Oracle

  • JSON no SQL Server

  • JSON no Db2

  • XML

  • Graph Extensions

  • Machine Learning integrado

  • Consultas analíticas

  • Window Functions

  • Compressão avançada

  • IA auxiliando otimização

Os bancos relacionais modernos absorveram diversas características que antes eram exclusivas do NoSQL.


NoSQL também evoluiu

MongoDB hoje possui:

  • transações

  • índices sofisticados

  • agregações complexas

Redis deixou de ser apenas cache.

Neo4j suporta consultas extremamente sofisticadas.

Cassandra possui consistência configurável.

Ou seja...

Os mundos estão convergindo.


O conceito mais importante: Polyglot Persistence

Se existe uma expressão que todo desenvolvedor moderno deveria conhecer é esta:

Polyglot Persistence.

Ela significa:

usar o banco certo para cada problema.

Imagine um banco digital.

Ele pode utilizar:

Db2 → contas correntes

MongoDB → documentos

Redis → cache

Neo4j → fraude

Elastic → pesquisa

Banco Vetorial → IA

Tudo funcionando junto.

Não existe regra dizendo que um sistema deve possuir apenas um banco.


O papel do COBOL nessa história

Aqui existe um enorme equívoco.

Muitos imaginam que COBOL só conversa com Db2.

Hoje isso está longe da realidade.

Aplicações COBOL podem consumir:

REST APIs.

MQ.

Kafka.

gRPC.

z/OS Connect.

Eventos.

Microsserviços.

E esses serviços podem acessar MongoDB, Redis ou qualquer outro banco moderno.

O COBOL continua sendo o cérebro transacional.

Os demais componentes ampliam suas capacidades.


Dicas para quem está começando

Se eu pudesse aconselhar um programador júnior, seguiria esta ordem:

  1. Aprenda modelagem de dados.

  2. Domine SQL.

  3. Entenda normalização.

  4. Aprenda índices.

  5. Estude planos de acesso.

  6. Descubra como funciona um otimizador.

  7. Aprenda transações.

  8. Depois estude MongoDB.

  9. Conheça Redis.

  10. Descubra Neo4j.

  11. Aprenda APIs REST.

  12. Entenda eventos e mensageria.

A tecnologia muda.

Os fundamentos permanecem.


Curiosidades que pouca gente conhece

☕ O primeiro grande projeto SQL da IBM chamava-se System R.

☕ O Db2 nasceu dentro da IBM justamente para materializar as ideias do modelo relacional em ambientes corporativos.

☕ O comando SELECT * é um dos mais utilizados por iniciantes... e um dos menos recomendados em produção. Buscar apenas as colunas necessárias reduz tráfego de dados e melhora o desempenho.

☕ Muitos sistemas bancários escritos há mais de 30 anos continuam processando milhões de transações diariamente com desempenho impressionante.

☕ Redis consegue responder consultas em microssegundos porque mantém os dados principalmente em memória.

☕ Neo4j foi inspirado na Teoria dos Grafos, um ramo da matemática muito mais antigo do que os computadores.

☕ Diversos bancos NoSQL utilizam conceitos publicados em artigos científicos da Google e da Amazon sobre sistemas distribuídos, como Bigtable, Dynamo e MapReduce.

☕ O termo NoSQL surgiu como um movimento alternativo, mas acabou sendo reinterpretado como Not Only SQL, refletindo melhor a realidade atual.


Easter Eggs Bellacosa Mainframe 🥚

🔍 Easter Egg #1 – O herói invisível

Sempre que você executa um SELECT no Db2, existe um componente trabalhando silenciosamente para decidir o melhor caminho de acesso: o otimizador de consultas. Ele é como o GPS do banco de dados. Você não o vê, mas ele escolhe a rota mais eficiente.


🥚 Easter Egg #2 – O COBOL nunca pergunta "como"

Um programa COBOL com Embedded SQL apenas descreve o que deseja. Quem decide como buscar os dados é o Db2. Essa separação entre intenção e estratégia foi uma das grandes revoluções introduzidas pelo SQL.


🥚 Easter Egg #3 – O Mainframe conversa com o futuro

Um programa COBOL criado na década de 1990 pode, com poucas adaptações, consumir uma API REST hospedada na nuvem que, por sua vez, grava documentos em MongoDB e publica eventos em Kafka. O legado não é um obstáculo: ele pode ser parte da arquitetura moderna.


🥚 Easter Egg #4 – Nem tudo é tabela

Quando você olhar para uma árvore genealógica, uma rede social ou um mapa de rotas aéreas, pense em grafos. Quando observar um catálogo de produtos com atributos diferentes para cada item, pense em documentos. Quando acessar seu extrato bancário, pense em tabelas relacionais. O segredo está em reconhecer o problema antes de escolher a ferramenta.


Conclusão

No fim das contas, SQL e NoSQL não são adversários. São aliados que nasceram em épocas diferentes para enfrentar desafios distintos. O SQL continua sendo o alicerce dos sistemas críticos que exigem consistência, integridade e confiabilidade — exatamente o tipo de ambiente onde o IBM Z e o Db2 brilham há décadas. Já o NoSQL oferece flexibilidade, escalabilidade e modelos especializados que complementam essas capacidades em aplicações modernas, distribuídas e orientadas a dados.

Se você está iniciando sua jornada como programador COBOL ou desenvolvedor Mainframe, não caia na armadilha dos modismos. Aprenda primeiro os fundamentos: modelagem de dados, SQL, índices, transações e otimização de consultas. Esses conhecimentos acompanharão toda a sua carreira. Depois, expanda seus horizontes estudando MongoDB, Redis, Cassandra, Neo4j e outras tecnologias que fazem parte das arquiteturas atuais.

Lembre-se sempre de uma filosofia muito presente no universo Bellacosa Mainframe:

Um excelente desenvolvedor não é aquele que conhece todas as ferramentas, mas aquele que sabe exatamente quando usar cada uma delas.

No mundo do IBM Z, onde convivem sistemas escritos há décadas com APIs, microsserviços, inteligência artificial e computação em nuvem, essa capacidade de escolher a tecnologia certa é o que transforma um programador júnior em um verdadeiro arquiteto de soluções. Afinal, o futuro não pertence ao SQL nem ao NoSQL. Ele pertence aos profissionais que compreendem ambos e conseguem fazê-los trabalhar juntos.


sexta-feira, 27 de novembro de 2015

☕🔥 DB2 NO IBM MAINFRAME — OS 9 CONCEITOS DE BANCO DE DADOS QUE SEPARAM CURIOSOS DE ENGENHEIROS CORPORATIVOS

 

Bellacosa Mainframe em 9 conceitos para melhorar a experiencia em db2

☕🔥 DB2 NO IBM MAINFRAME — OS 9 CONCEITOS DE BANCO DE DADOS QUE SEPARAM CURIOSOS DE ENGENHEIROS CORPORATIVOS

Muita gente aprende banco de dados assim:

SELECT * FROM CLIENTES;

E acredita que já “entende SQL”.

Mas no universo IBM Mainframe + DB2…

isso é apenas a porta de entrada.

Porque o DB2 z/OS não foi criado para:

  • apps pequenos

  • tabelinhas simples

  • projetinhos acadêmicos

Ele foi criado para:

🔥 processar o planeta.

Bancos.
PIX.
Cartões.
Seguradoras.
Bolsas financeiras.
Telecom.

E para sobreviver nesse universo…

existem fundamentos que TODO profissional precisa dominar.

Não apenas decorar.

🔥 Entender profundamente.


☕🔥 1. TABLES — AS “CAIXAS-FORTES” DO MUNDO CORPORATIVO

Tudo começa aqui.

TABLES (Tabelas)


☕ O que são?

Estruturas organizadas em:

  • linhas

  • colunas

  • registros


☕ Exemplo simples

CLIENTES

IDNOMEEMAIL
1ALICEalice@email.com

☕ Parece simples…

Mas no DB2 Mainframe uma tabela pode conter:

🔥 bilhões de registros.


☕ E aí surgem preocupações reais:

  • page size

  • clustering

  • partitioning

  • buffer pool

  • compression

  • locking


☕ Bellacosa Mainframe Analysis™

Tabela no DB2 não é “planilha”.

É:

🔥 infraestrutura crítica corporativa.


☕🔥 2. PRIMARY KEY — O “RACF ID” DOS DADOS

Agora entramos numa das bases mais importantes.

PRIMARY KEY


☕ A chave primária identifica unicamente cada linha.


☕ Exemplo

ID_CLIENTE = 1001

Nunca pode duplicar.


☕ Isso garante:

✅ unicidade
✅ integridade
✅ consistência


☕ No Mainframe isso é sagrado

Porque duplicidade em ambiente financeiro pode virar:

🔥 desastre operacional.


☕ Exemplo bancário

Dois clientes com mesma conta?

Impensável.


☕ Bellacosa Mainframe Analysis™

Primary Key é como:

RACF USERID

Identidade única dentro do sistema.


☕🔥 3. FOREIGN KEY — O “CABO DE REDE” ENTRE TABELAS

Agora começamos a construir relacionamentos.

FOREIGN KEY


☕ Ela conecta tabelas.


☕ Exemplo

CLIENTES

ID
1

PEDIDOS

ID_PEDIDOCLIENTE_ID
1001

☕ Isso cria integridade referencial.


☕ Sem isso?

🔥 caos relacional.


☕ O DB2 impede inconsistências como:

  • pedido sem cliente

  • transação órfã

  • referência inválida


☕ Isso é vital no Mainframe

Porque ambientes corporativos precisam de:

🔥 confiabilidade absoluta.


☕🔥 4. INDEXES — O “CATÁLOGO SECRETO” DO DB2

Agora chegamos num dos pontos mais importantes do z/OS.

INDEXES


☕ O índice evita que o DB2 leia tudo.


☕ Sem índice:

TABLE SPACE SCAN

☕ Com índice:

🔥 acesso direcionado.


☕ Bellacosa Mainframe Analysis™

Índice é como:

índice remissivo de enciclopédia

Você vai direto ao ponto.


☕ Exemplo clássico

Buscar CPF sem índice em bilhões de linhas?

🔥 sofrimento puro.


☕ Índices impactam:

  • CPU

  • GETPAGE

  • I/O

  • locks

  • elapsed time


☕ DBA Mainframe vive obcecado por isso.


☕🔥 5. NORMALIZATION — A ARTE DE EVITAR BAGUNÇA CORPORATIVA

Agora entramos em modelagem.

NORMALIZATION


☕ Objetivo:

reduzir redundância.


☕ Exemplo RUIM

CLIENTE
CLIENTE_TELEFONE_1
CLIENTE_TELEFONE_2
CLIENTE_TELEFONE_3

☕ Melhor:

Tabela separada.


☕ Isso melhora:

✅ integridade
✅ manutenção
✅ consistência


☕ Mas existe um detalhe importante

Normalização extrema pode gerar:

🔥 JOINs monstruosos.


☕ E aí nasce o equilíbrio corporativo.


☕🔥 6. SQL QUERIES — A “LINGUAGEM OPERACIONAL” DO PLANETA

Agora chegamos ao coração do DB2.

SQL


☕ SQL não é apenas consulta.

É:

  • leitura

  • escrita

  • atualização

  • análise

  • inteligência corporativa


☕ Exemplo

SELECT NOME, EMAIL
FROM CLIENTES
WHERE IDADE > 18
ORDER BY NOME;

☕ No Mainframe isso envolve:

  • optimizer

  • access path

  • RUNSTATS

  • index usage

  • locking


☕ Query ruim?

🔥 milhões em CPU.


☕ Query boa?

🔥 eficiência absurda.


☕🔥 7. RELATIONSHIPS — O “SYSplex” DOS DADOS

Agora os dados começam a formar ecossistemas.


☕ Tipos clássicos

One-to-One

Uma pessoa → um passaporte.


One-to-Many

Cliente → vários pedidos.


Many-to-Many

Alunos ↔ cursos.


☕ Bellacosa Mainframe Analysis™

Relacionamentos lembram:

🔥 integração entre subsistemas no z/OS.


☕ Porque no fim…

tudo precisa conversar sem perder integridade.


☕🔥 8. TRANSACTIONS — O CORAÇÃO FINANCEIRO DO MAINFRAME

Agora entramos no território sagrado.

TRANSAÇÕES.


☕ Exemplo clássico

BEGIN
 ↓
UPDATE
 ↓
COMMIT

☕ Ou:

ROLLBACK

☕ Isso garante:

🔥 tudo ou nada.


☕ Exemplo bancário

Transferência:

  • debita conta A

  • credita conta B


☕ Se metade falhar?

ROLLBACK.


☕ Isso é ABSOLUTAMENTE CRÍTICO.


☕ Porque o Mainframe não pode “quase funcionar”.


☕🔥 9. ACID — A RELIGIÃO DO DB2

Agora chegamos na base filosófica do banco de dados corporativo.

ACID


☕ A — Atomicity

Tudo acontece…
ou nada acontece.


☕ C — Consistency

Dados permanecem válidos.


☕ I — Isolation

Transações não interferem incorretamente.


☕ D — Durability

Após COMMIT…

🔥 os dados sobrevivem.


☕ Isso é o que permite:

  • bancos globais

  • bolsas financeiras

  • PIX

  • cartões

funcionarem 24x7.


☕ Bellacosa Mainframe Analysis™

ACID é praticamente:

🔥 o “RACF filosófico” do banco de dados.


☕🔥 O OTIMIZADOR — A ENTIDADE MISTERIOSA DO DB2

Pouca gente entende isso profundamente.


☕ O optimizer decide:

  • índice

  • JOIN

  • SORT

  • acesso

  • custo


☕ Baseado em:

  • RUNSTATS

  • cardinalidade

  • histogramas

  • distribuição


☕ Sem estatísticas corretas?

🔥 performance pode morrer.


☕🔥 O QUE O MAINFRAME ENSINA SOBRE BANCO DE DADOS

O mercado moderno frequentemente pensa:

“Banco é armazenamento.”


☕ O Mainframe pensa diferente.

Banco é:

  • engenharia

  • integridade

  • disponibilidade

  • resiliência

  • missão crítica


☕ Porque quando bilhões dependem do sistema…

erro deixa de ser “bug”.

🔥 erro vira crise financeira.


☕🔥 CONCLUSÃO — DB2 NÃO É APENAS BANCO DE DADOS

É um sistema operacional de informações corporativas.

Tables organizam.
Keys identificam.
Indexes aceleram.
Transactions protegem.
ACID sustenta tudo.

E talvez essa seja a maior verdade sobre o IBM Mainframe:

ele não sobreviveu por nostalgia.

🔥 Ele sobreviveu porque poucos ambientes no planeta conseguem proteger dados críticos com tanta eficiência quanto o DB2 z/OS.

sábado, 17 de fevereiro de 2007

O que é Processamento Online em Mainframe?

 

Bellacosa Mainframe o que é processamento mainframe

O que é Processamento Online em Mainframe?

O processamento Online é o modelo de execução em que o usuário interage diretamente com a aplicação e recebe uma resposta quase imediata.

Enquanto o Batch processa grandes volumes de dados em lote, o Online processa uma transação por vez, em tempo real.


Definição Simples

Processamento Online é:

a execução interativa de transações em tempo real.

Sempre que um usuário:

  • consulta saldo;

  • realiza um PIX;

  • faz uma compra no cartão;

  • acessa Internet Banking;

  • emite um boleto;

há um processamento online acontecendo.


Analogia Simples

Batch

100.000 registros
        ↓
Processa tudo junto
        ↓
Resultado

Online

Usuário solicita
        ↓
Sistema responde
        ↓
Fim da transação

Exemplos do Dia a Dia

Caixa Eletrônico

Cliente consulta saldo
        ↓
CICS
        ↓
DB2
        ↓
Resposta em segundos

PIX

Cliente envia PIX
        ↓
Validação
        ↓
Atualização DB2
        ↓
Confirmação

Cartão de Crédito

Compra realizada
        ↓
Autorização
        ↓
Resposta

Arquitetura Online no Mainframe

Usuário
    ↓
Terminal / Web / Mobile
    ↓
CICS ou IMS TM
    ↓
Programa COBOL
    ↓
DB2 / VSAM
    ↓
Resposta

Principais Componentes

CICS

Customer Information Control System

Principal monitor transacional do mundo Mainframe.

Gerencia:

  • transações;

  • usuários;

  • telas;

  • comunicação.


IMS TM

IMS Transaction Manager.

Alternativa ao CICS.

Muito usado em:

  • bancos;

  • telecom;

  • governo.


COBOL

Contém as regras de negócio.


DB2

Banco de dados relacional.


VSAM

Arquivos indexados.


Fluxo de uma Transação CICS

Terminal
    ↓
Transação
    ↓
Programa COBOL
    ↓
DB2
    ↓
Resposta

Exemplo de Transação

Código digitado:

CONS

ou

SALD

O CICS:

Recebe
 ↓
Localiza programa
 ↓
Executa
 ↓
Retorna tela

Exemplo COBOL Online

EXEC CICS RECEIVE
     MAP('TELA1')
END-EXEC.

Recebe dados da tela.


Consulta DB2

EXEC SQL

   SELECT SALDO
   INTO :WS-SALDO

   FROM CLIENTES

   WHERE CONTA = :WS-CONTA

END-EXEC.

Retorno ao Usuário

EXEC CICS SEND
     MAP('TELA2')
END-EXEC.

Características do Online

✅ Tempo real

✅ Resposta imediata

✅ Interação usuário

✅ Pequeno volume por transação

✅ Alta disponibilidade


Online x Batch

OnlineBatch
Tempo realEm lote
InterativoNão interativo
Usuário presenteUsuário ausente
Resposta imediataProcessamento agendado
CICS/IMSJCL/COBOL

O que é uma Transação?

Unidade lógica de trabalho.

Exemplo:

Consultar saldo

ou

Transferir dinheiro

Conceito ACID

Transações online devem garantir:

Atomicidade

Tudo ou nada.


Consistência

Dados válidos.


Isolamento

Usuários não interferem.


Durabilidade

Dados persistem.


COMMIT

Confirma a transação.

COMMIT;

ROLLBACK

Desfaz alterações.

ROLLBACK;

Exemplo

PIX enviado
     ↓
Erro
     ↓
ROLLBACK

Nenhum valor é debitado.


Desempenho

Transações online normalmente precisam responder em:

Menos de 1 segundo

ou

2 segundos

Dependendo da aplicação.


Segurança

Ambientes online usam:

  • RACF

  • ACF2

  • Top Secret

para controlar acessos.


Disponibilidade

Muitos sistemas online operam:

24x7

Sem interrupção.


Exemplos Reais

Bancos

  • PIX

  • TED

  • Consulta saldo

  • Investimentos


Seguradoras

  • Apólices

  • Sinistros


Governo

  • Receita Federal

  • Previdência


Varejo

  • Cartões

  • E-commerce


Erros Comuns

Deadlock DB2

SQLCODE -911

Programa não encontrado

AEI0

Erro de COMMAREA

AEIV

Timeout

AICA

Curiosidades

1. O CICS processa bilhões de transações por dia no mundo

2. Muitas operações de cartão passam por Mainframes IBM Z

3. Um único CICS pode suportar milhares de usuários simultâneos

4. Grande parte dos PIX bancários passa por aplicações COBOL online


Resumo Rápido

ConceitoFunção
OnlineProcessamento em tempo real
CICSMonitor transacional
IMS TMGerenciador de transações
COBOLRegras de negócio
DB2Banco de dados
VSAMArquivo indexado
COMMITConfirma
ROLLBACKDesfaz
ACIDIntegridade transacional
RACFSegurança

Conclusão

O processamento Online é o responsável pelas transações em tempo real no ambiente IBM Z. Utilizando tecnologias como CICS, IMS TM, COBOL, DB2 e VSAM, ele permite que milhões de usuários realizem consultas, pagamentos, transferências e operações críticas com rapidez, segurança e alta disponibilidade, tornando-se um dos pilares da computação corporativa moderna.