☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

terça-feira, 5 de maio de 2026

IBM Sovereign Core : Quando Hercule Poirot Descobre que o Verdadeiro Criminoso Nunca Foi o Hacker

 

Bellacosa Mainframe ibm sovereign core 

☕ Um Café no Bellacosa Mainframe

IBM Sovereign Core sem Mistérios para Programadores COBOL

Quando Hercule Poirot Descobre que o Verdadeiro Criminoso Nunca Foi o Hacker… Mas a Falta de Controle Sobre Quem Controla o Sistema

"As pequenas células cinzentas nunca falham, meu amigo. O erro está quase sempre naquilo que ninguém resolveu investigar." — Hercule Poirot (adaptado)


Introdução – Um Crime Perfeito no Datacenter

Imagine que Hercule Poirot fosse contratado para investigar um grande banco.

Ninguém roubou dinheiro.

Nenhum servidor explodiu.

Nenhum disco queimou.

Nenhum programa COBOL apresentou ABEND.

Tudo parece absolutamente normal.

Mesmo assim...

Segredos desapareceram.

Credenciais privilegiadas foram utilizadas.

Bibliotecas desconhecidas chegaram à produção.

Uma Inteligência Artificial tomou decisões sem ninguém saber exatamente por quê.

Logs foram apagados.

E o mais intrigante:

Os dados jamais saíram do datacenter.

Poirot sorri.

Ele ajeita o bigode.

Observa cada detalhe.

E faz apenas uma pergunta.

"Mon ami... quem realmente controla esta aplicação?"

Silêncio.

É exatamente essa pergunta que o IBM Sovereign Core procura responder.

E ela é muito mais profunda do que parece.

Hoje vamos investigar esse mistério como verdadeiros detetives da computação corporativa.



Capítulo 1 — O Primeiro Suspeito Sempre é o Lugar Errado

Quando ouvimos falar em Soberania Digital, quase todo mundo pensa imediatamente em localização.

"Os servidores estão no Brasil."

"Os dados ficam em nosso datacenter."

"Nossa cloud é privada."

Caso encerrado?

Nem de longe.

Poirot jamais condenaria alguém apenas porque estava próximo da cena do crime.

Da mesma forma, um sistema não é soberano apenas porque está fisicamente dentro do prédio da empresa.

Imagine um castelo medieval.

As muralhas são enormes.

Os portões são reforçados.

Os guardas vigiam todas as entradas.

Mas...

Quem possui a chave da sala do tesouro?

Quem controla os guardas?

Quem decide quem entra?

Quem administra os cofres?

Quem entrega novas armas?

Se essas respostas pertencem a terceiros...

O castelo nunca foi realmente seu.


O Primeiro Easter Egg

Sherlock Holmes dizia:

"Quando eliminamos o impossível..."

Poirot discordaria.

Ele diria:

"Antes de eliminar qualquer hipótese, descubra quem possui as chaves."

Essa diferença resume perfeitamente o IBM Sovereign Core.


Capítulo 2 — O Control Plane: O Cérebro Invisível

O primeiro bloco do infográfico apresenta um termo que muitos iniciantes nunca ouviram:

Control Plane.

Vamos imaginar uma agência bancária.

Existe:

  • caixa

  • gerente

  • clientes

  • cofres

Esses são os trabalhadores.

Agora imagine outro departamento.

Lá ficam:

  • diretor

  • segurança

  • RH

  • auditoria

  • controle de acesso

Eles não atendem clientes.

Mas controlam absolutamente tudo.

Isso é o Control Plane.

No Kubernetes...

No OpenShift...

Na Cloud...

No IBM Sovereign Core...

O Control Plane decide:

Quem entra

↓

Quem sai

↓

Quem implanta

↓

Quem administra

↓

Quem altera configurações

↓

Quem possui privilégios

Sem ele existe apenas caos organizado.


Curiosidade Bellacosa

No mundo Mainframe isso não é novidade.

Desde décadas atrás o z/OS já separava claramente:

  • processamento

  • administração

  • segurança

Muito antes da palavra Cloud existir.



Capítulo 3 — IAM: O Grande Livro de Convidados

Poirot sempre perguntava:

"Quem esteve na mansão naquela noite?"

Na informática fazemos exatamente a mesma pergunta.

IAM significa:

Identity and Access Management.

Ou:

Quem é você?

O que pode fazer?

Até onde pode ir?

Quando pode entrar?

Imagine um banco.

Carlos trabalha no atendimento.

Maria é DBA.

João administra RACF.

A Inteligência Artificial responde clientes.

Todos possuem identidades diferentes.

Todos possuem permissões diferentes.

Isso parece simples.

Mas aqui nasce um dos maiores problemas da computação moderna.


O Erro Clássico

Programador iniciante:

Usuário

ADMIN

Senha

123456

Ou pior.

root

root

Ou ainda:

admin

admin

Poirot levantaria uma sobrancelha.

"O assassino praticamente deixou seu cartão de visitas."


Dica Bellacosa

Jamais utilize usuários compartilhados.

Cada pessoa.

Cada serviço.

Cada robô.

Cada IA.

Deve possuir sua própria identidade.


Capítulo 4 — O Mistério dos Secrets

Agora chegamos ao quarto suspeito.

Os famosos:

Secrets.

Senha.

Token.

API Key.

Certificado.

Connection String.

Muitos iniciantes fazem isso:

MOVE "SenhaDoBanco123" TO WS-PASSWORD.

Ou:

password="admin123"

Ou:

apikey=ABCDEFG12345

Tudo dentro do Git.

Tudo dentro do fonte.

Poirot nem precisaria investigar muito.

O culpado praticamente escreveu uma carta confessando.


Como funciona corretamente?

Hoje utilizamos cofres digitais.

Por exemplo:

Vault

IBM Secrets Manager

Hashicorp Vault

Key Protect

O programa nunca conhece a senha permanentemente.

Ela é entregue apenas durante a execução.

Terminou?

Ela desaparece.


Capítulo 5 — A Cadeia de Fornecimento do Crime

Uma frase do artigo merece destaque.

Um build bem sucedido não significa software seguro.

Que frase maravilhosa.

Imagine uma fábrica de automóveis.

O carro foi montado.

Funcionou.

Mas...

Os freios vieram de onde?

Os pneus são originais?

O airbag possui defeitos?

O parafuso veio de fornecedor confiável?

Software moderno funciona exatamente assim.


Software Supply Chain

Hoje um simples programa Java pode utilizar:

2 bibliotecas próprias

+

580 bibliotecas externas

+

Containers

+

Frameworks

+

Dependências transitivas

O desenvolvedor nem conhece metade delas.


Curiosidade

O ataque à SolarWinds mostrou ao mundo inteiro que não basta proteger seu sistema.

Também é preciso proteger quem entrega o software.

Foi um dos maiores marcos da história da segurança.


Capítulo 6 — SBOM: O Inventário do Crime

Poirot adorava listas.

Quem entrou?

Quem saiu?

Quem jantou?

Quem segurava a faca?

SBOM faz exatamente isso.

Software Bill of Materials.

Uma lista completa contendo:

Bibliotecas

↓

Versões

↓

Dependências

↓

Licenças

↓

Componentes

↓

Fabricantes

Imagine perguntar:

"Meu sistema utiliza Log4j?"

Sem SBOM...

Boa sorte.

Com SBOM...

Você descobre em segundos.


Easter Egg Mainframe

Sabe aqueles enormes inventários de Load Modules feitos há décadas?

A filosofia é surpreendentemente parecida.

Os conceitos mudam.

A necessidade permanece.


Capítulo 7 — Compliance: O Inspetor Japp Aprovaria

Compliance significa provar.

Não basta dizer.

É necessário demonstrar.

Quem compilou?

Quem aprovou?

Quem publicou?

Quem executou?

Quando?

Em qual ambiente?

Isso é investigação.

Isso é rastreabilidade.


Capítulo 8 — A IA Também é Suspeita

Aqui está talvez o trecho mais interessante de todo o IBM Sovereign Core.

Muita gente acredita:

"Minha IA roda localmente."

Então está segura.

Errado.

Imagine um agente de IA capaz de:

Consultar Db2.

Enviar PIX.

Ler e-mails.

Modificar contratos.

Atualizar clientes.

Excluir registros.

Tudo isso localmente.

Ela continua sendo perigosíssima.


Poirot faria apenas uma pergunta

Quem autorizou esse agente?

Quem aprovou?

Quem auditou?

Quem acompanha suas ações?


Agentes Precisam de Identidade

Hoje falamos muito sobre IA.

Mas esquecemos algo essencial.

Um agente é quase um funcionário digital.

Ele precisa possuir:

Identidade

↓

Permissões

↓

Limites

↓

Ferramentas autorizadas

↓

Logs

↓

Auditoria

Jamais:

Administrador Universal

Capítulo 9 — O Princípio do Menor Privilégio

Imagine uma copeira.

Ela possui acesso à cozinha.

Mas não ao cofre do banco.

Imagine o gerente.

Ele pode aprovar empréstimos.

Mas não alterar o sistema operacional.

Esse conceito chama-se:

Least Privilege.

No RACF ele existe há décadas.

No IBM Sovereign Core ele continua absolutamente essencial.


Capítulo 10 — Audit Logging: As Pegadas do Assassino

Poirot resolvia crimes observando pequenas pistas.

Na computação fazemos exatamente o mesmo.

Logs.

Muitos logs.

Imagine:

09:10

Agente IA acessou Db2

↓

09:11

Consultou CPF

↓

09:12

Chamou API

↓

09:13

Gerou contrato

↓

09:14

Enviou e-mail

Tudo registrado.

Sem logs...

Não existe investigação.


O Mainframe Sorri em Silêncio

Aqui está uma curiosidade fantástica.

Enquanto Cloud começa agora a falar sobre:

  • rastreabilidade

  • identidade

  • auditoria

  • governança

O Mainframe faz isso desde muito antes da internet comercial.

RACF.

SMF.

SAF.

ICSF.

Operlog.

SYSLOG.

RMF.

São décadas de experiência acumulada.


Comparando os Dois Mundos

IBM Sovereign CoreIBM Mainframe
IAMRACF
SecretsRACF Keyrings / ICSF
AuditSMF
CompliancezSecure
DeployEndevor, ISPW, DBB
GovernanceChange Management
Control Planez/OS + RACF + HMC
AI Governancewatsonx + IBM Z

Percebe?

Muitos conceitos considerados "novos" são, na verdade, uma evolução de práticas consolidadas no ambiente IBM Z.


Passo a Passo para um Programador COBOL Iniciante

Se você está começando no universo corporativo, este é um roteiro prático inspirado nos princípios do IBM Sovereign Core:

  1. Nunca grave senhas ou chaves diretamente no código-fonte.

  2. Aprenda os fundamentos de RACF e do conceito de IAM.

  3. Entenda o que é um pipeline CI/CD e como ele publica software.

  4. Estude SBOM e descubra como identificar dependências de um projeto.

  5. Conheça o princípio do menor privilégio e aplique-o em programas, usuários e serviços.

  6. Aprenda a interpretar logs e auditorias (SMF, SYSLOG, logs de aplicações e APIs).

  7. Entenda que um agente de IA deve ser tratado como um usuário corporativo, com identidade própria e permissões limitadas.

  8. Perceba que segurança não é uma etapa final do projeto; ela acompanha todo o ciclo de vida do software.


As Pequenas Células Cinzentas do Programador

Hercule Poirot sempre dizia que os maiores mistérios eram resolvidos observando detalhes aparentemente insignificantes.

No desenvolvimento corporativo acontece exatamente a mesma coisa.

O grande incidente raramente começa com um hacker digitando comandos em uma tela preta.

Ele costuma começar com uma pequena decisão aparentemente inocente:

  • uma senha gravada no código;

  • uma biblioteca sem verificação de origem;

  • um usuário compartilhado entre equipes;

  • um pipeline sem auditoria;

  • um agente de IA executando tarefas sem identidade própria.

Cada uma dessas decisões, isoladamente, parece inofensiva. Juntas, formam o cenário perfeito para um incidente difícil de investigar.

É por isso que o IBM Sovereign Core muda a pergunta tradicional de "Onde meus dados estão?" para uma questão muito mais inteligente:

"Quem controla identidades, segredos, componentes, implantações, auditorias e agentes de IA?"

Essa mudança de perspectiva representa a essência da soberania digital moderna.


Conclusão — O Último Caso de Hercule Poirot

Ao final da investigação, Poirot reúne todos na biblioteca do banco.

Há desenvolvedores.

Administradores.

Especialistas em segurança.

Auditores.

Arquitetos de cloud.

Operadores de mainframe.

E até um agente de Inteligência Artificial.

Todos esperam que ele revele o nome do culpado.

Poirot sorri discretamente.

Ajeita o bigode.

Olha para cada um dos presentes e diz:

"Mesdames et Messieurs... o verdadeiro criminoso nunca foi a cloud, a IA, o Kubernetes ou o IBM Z. O culpado sempre foi a ausência de governança."

Silêncio absoluto.

Ele continua:

"Quando identidades não são controladas, segredos ficam expostos, componentes não são rastreados, implantações não são reproduzíveis e agentes de IA agem sem limites, o crime já aconteceu antes mesmo do primeiro ataque."

É nesse momento que percebemos a verdadeira lição do IBM Sovereign Core: soberania digital não é um lugar, é um conjunto de responsabilidades continuamente verificadas.

Como diria Poirot, o caso nunca foi descobrir onde a aplicação executa. O verdadeiro enigma sempre foi descobrir quem realmente segura as chaves do castelo. E, no mundo moderno, essa resposta define se uma organização está apenas hospedando seus sistemas ou se, de fato, mantém o controle sobre seu próprio destino digital.

🔥☕ PACKAGE, PLAN, DBRM E O SUBMUNDO DA COMPILAÇÃO Db2 — O GUIA PADAWAN DO COBOL MAINFRAME ☕🔥

 

Bellacosa Mainframe explica como funciona um programa COBOL com DB2

🔥☕ PACKAGE, PLAN, DBRM E O SUBMUNDO DA COMPILAÇÃO Db2 — O GUIA PADAWAN DO COBOL MAINFRAME ☕🔥

Todo programador COBOL iniciante passa por isso.

Você escreve:

EXEC SQL
SELECT *
FROM EMPLOYEE
END-EXEC.

compila…

e de repente aparecem criaturas malignas como:

  • DBRM
  • PACKAGE
  • PLAN
  • BIND
  • DSNHPC
  • SQLCODE -805
  • SQLCODE -818

E o padawan pensa:

“Mas eu só queria fazer um SELECT…”

☕🔥

Então vamos entrar no verdadeiro submundo do Db2 z/OS.


☕ O MAIOR SEGREDO DO Db2

O Db2 NÃO executa SQL diretamente do fonte COBOL.

Ele precisa:

  • analisar SQL
  • validar objetos
  • escolher access path
  • gerar runtime structures

Por isso existe toda a cadeia:

SOURCE

PRECOMPILE

DBRM

COMPILE

LINK

BIND PACKAGE

BIND PLAN

RUN

🔥 VISÃO GERAL DA ARQUITETURA


☕ SOURCE COBOL

Seu programa original.

Exemplo:

EXEC SQL
SELECT EMPNO
INTO :WS-EMPNO
FROM EMPLOYEE
END-EXEC.

Dataset típico:

USERID.COBOL.SOURCE(MEUCOB)

🔥 STEP 1 — PRECOMPILE

Programa usado:

//DB2PC EXEC PGM=DSNHPC

☕ O QUE É O DSNHPC?

É o:

Db2 PRECOMPILER

🔥 O QUE ELE FAZ?

Ele:

✅ encontra EXEC SQL
✅ valida sintaxe SQL
✅ remove SQL do COBOL
✅ gera COBOL expandido
✅ gera DBRM


☕ RESULTADO DO PRECOMPILE

Saídas:

SaídaFunção
COBOL expandidoserá compilado
DBRMusado no BIND

🔥 O QUE É O DBRM?

DBRM =

DATABASE REQUEST MODULE

☕ PENSE NO DBRM COMO:

“o extrato SQL do seu programa”

Ele contém:

  • SQL do programa
  • informações internas Db2
  • metadados SQL

🔥 O DBRM NÃO É EXECUTÁVEL

Isso é importante.

Ele NÃO roda.

Ele apenas alimenta o BIND.


☕ ONDE O DBRM É SALVO?

Normalmente em:

//DBRMLIB DD DSN=USERID.DBRM.LIB(MEUPRG)

Dataset típico:

USERID.DBRM.LIB

Tipo:

PDS ou PDSE

🔥 EXEMPLO REAL DE PRECOMPILE

//DB2PC EXEC PGM=DSNHPC,
// PARM=('HOST(IBMCOB),APOST')

☕ EXPLICANDO OS PARÂMETROS


HOST(IBMCOB)

Define linguagem COBOL IBM.


APOST

Aspas simples delimitam strings SQL.


SOURCE

Mantém fonte expandido legível.


XREF

Gera cross reference.


DATE(ISO)

Formato ISO de datas.


🔥 STEP 2 — COMPILE COBOL

Programa:

//COB EXEC PGM=IGYCRCTL

☕ O QUE ACONTECE?

Agora o compilador COBOL compila:

o COBOL expandido gerado pelo precompiler

🔥 ELE NÃO COMPILA MAIS EXEC SQL

Porque o precompiler já removeu.


☕ SAÍDA DO COMPILE

Gera:

OBJECT MODULE

temporário.


🔥 STEP 3 — LINK-EDIT

Programa:

//LKED EXEC PGM=IEWL

☕ O QUE O LINK FAZ?

Une:

  • objeto COBOL
  • bibliotecas runtime
  • chamadas Db2

🔥 RESULTADO

LOAD MODULE EXECUTÁVEL

☕ ONDE FICA O LOAD MODULE?

Exemplo:

//SYSLMOD DD DSN=USERID.LOADLIB(MEUPRG)

Dataset típico:

USERID.LOADLIB

🔥 AGORA ENTRA O VERDADEIRO MUNDO Db2

Até aqui temos apenas:

programa COBOL executável

Mas o Db2 ainda NÃO sabe nada sobre ele.


☕ STEP 4 — BIND PACKAGE

Programa:

//BIND EXEC PGM=IKJEFT01

🔥 O QUE É O PACKAGE?

PACKAGE é:

o SQL compilado e otimizado do programa

☕ O PACKAGE CONTÉM

✅ access paths
✅ SQL otimizado
✅ metadados
✅ permissões
✅ informações de runtime


🔥 QUEM CRIA O PACKAGE?

O comando:

BIND PACKAGE

☕ O BIND USA:

  • DBRM
  • catálogo Db2
  • índices
  • estatísticas
  • permissões

🔥 O ACCESS PATH NASCE AQUI

Db2 decide:

  • index scan?
  • tablespace scan?
  • join order?
  • sort?
  • parallelism?

☕ ONDE PACKAGE É ARMAZENADO?

No próprio catálogo Db2.

Tabelas internas como:

SYSIBM.SYSPACKAGE

🔥 NÃO FICA EM PDS

Isso pega MUITOS iniciantes.

PACKAGE NÃO fica em dataset.

Fica dentro do Db2.


☕ EXEMPLO DE BIND PACKAGE

DSN SYSTEM(DBCG)

BIND PACKAGE(MYCOLL)
MEMBER(MEUPRG)
ACTION(REPLACE)
ISOLATION(CS)
VALIDATE(BIND)
EXPLAIN(YES)

🔥 EXPLICANDO OS PARÂMETROS


PACKAGE(MYCOLL)

Collection/package name.


MEMBER(MEUPRG)

Nome do DBRM.


ACTION(REPLACE)

Substitui package antigo.


ISOLATION(CS)

Cursor Stability.


VALIDATE(BIND)

Valida objetos no bind.


EXPLAIN(YES)

Salva access path.


☕ STEP 5 — BIND PLAN

Agora vem o PLAN.


🔥 O QUE É O PLAN?

PLAN é:

um agrupador de packages

☕ ANTIGAMENTE

Db2 antigo usava:

PLAN + DBRM

🔥 Db2 MODERNO USA:

PLAN + PACKAGE

☕ O PLAN FUNCIONA COMO

“container lógico de execução”

🔥 EXEMPLO

BIND PLAN(MYPLAN)
PKLIST(MYCOLL.*)

☕ PKLIST

Lista packages autorizados.


🔥 ONDE O PLAN FICA?

Também no catálogo Db2.

Tabela:

SYSIBM.SYSPLAN

☕ EXECUÇÃO — RUN

Agora sim:

RUN PROGRAM(MEUPRG)
PLAN(MYPLAN)

🔥 O FLUXO EM EXECUÇÃO

Programa chama:

PLAN

PACKAGE

SQL

Db2 Engine

☕ ANALOGIA PADAWAN

Imagine:


☕ SOURCE

Receita escrita.


🔥 DBRM

Lista dos ingredientes.


☕ PACKAGE

Receita otimizada pelo chef.


🔥 PLAN

Cardápio do restaurante.


☕ LOAD MODULE

Cozinheiro executando.

☕🔥


🔥 ERROS MAIS FAMOSOS


☕ SQLCODE -805

O terror dos iniciantes.

PACKAGE NÃO ENCONTRADO

CAUSAS

✅ bind não executado
✅ collection errada
✅ package apagado
✅ plan errado


🔥 SQLCODE -818

TIMESTAMP MISMATCH

SIGNIFICA

LOAD MODULE ≠ PACKAGE atual.


ACONTECE QUANDO

recompila COBOL mas não rebinda package.


☕ SQLCODE -204

objeto não encontrado

NORMALMENTE

schema/qualifier errado.


🔥 SQLCODE -551

sem autorização

☕ COMO INVESTIGAR PROBLEMAS


🔥 VER PACKAGE

SELECT *
FROM SYSIBM.SYSPACKAGE
WHERE NAME = 'MEUPRG'

☕ VER PLAN

SELECT *
FROM SYSIBM.SYSPLAN
WHERE NAME = 'MYPLAN'

🔥 DISPLAY PACKAGE

-DISPLAY PACKAGE(*)

☕ O QUE O JUNIOR PRECISA ENTENDER


🔥 O COBOL NÃO EXECUTA SQL DIRETAMENTE


☕ O PACKAGE É O SQL “COMPILADO”


🔥 O PLAN ORGANIZA EXECUÇÃO


☕ O DBRM É A PONTE ENTRE FONTE E PACKAGE


🔥 O BIND DEFINE PERFORMANCE


☕ O ACCESS PATH NASCE NO BIND


🔥 O MAIOR SEGREDO DO Db2

Muitos problemas de produção NÃO estão no COBOL.

Estão em:

  • package inválido
  • bind errado
  • access path ruim
  • rebind problemático
  • estatísticas ruins
  • qualifier incorreto

☕ A VERDADEIRA MAGIA

Enquanto frameworks modernos escondem tudo…

o programador mainframe aprende:

  • como SQL realmente executa
  • como runtime funciona
  • como otimização nasce
  • como banco conversa com aplicação

E isso transforma um simples padawan COBOL…

num verdadeiro Jedi do Db2 z/OS. ☕🔥


segunda-feira, 4 de maio de 2026

🔥☕ O SUBMUNDO DO Db2 z/OS — LOGS, RECOVERY E O QUE ACONTECE QUANDO O BANCO “MORRE” ☕🔥

 

Bellacosa Mainframe em uma visão sobre o LOG do DB2

🔥☕ O SUBMUNDO DO Db2 z/OS — LOGS, RECOVERY E O QUE ACONTECE QUANDO O BANCO “MORRE” ☕🔥

Existe um momento na vida de todo programador COBOL/Db2 em que ele descobre uma verdade assustadora:

O Db2 nunca esquece nada.

Cada:

  • INSERT,
  • UPDATE,
  • DELETE,
  • COMMIT,
  • ROLLBACK,
  • ALTER,
  • REORG,

deixa rastros.

E esses rastros vivem dentro de uma das estruturas mais importantes do ecossistema mainframe:

🔥 O LOG DO Db2.

Se você é programador COBOL pleno e acha que recovery é “coisa de DBA”, cuidado.

Porque no dia em que um:

-904
-911
-803
00C90084
RESOURCE UNAVAILABLE

explodir produção às 3h da manhã…

você vai descobrir que entender o log do Db2 muda completamente sua carreira.


☕ O QUE É O LOG DO Db2?

O log do Db2 é o “diário transacional” do banco.

Tudo que altera dados gera registros de log.

O Db2 escreve:

  • before image,
  • after image,
  • controle transacional,
  • checkpoints,
  • unidades de recuperação.

Basicamente:

ALTERAÇÃO → LOG → DISCO

Antes mesmo da página ser gravada no tablespace.


🔥 ACTIVE LOGS vs ARCHIVE LOGS

Aqui começa uma das maiores confusões dos iniciantes.

🔹 Active Logs

São os logs online e ativos.

Ficam sendo usados continuamente.

Eles armazenam:

  • alterações recentes,
  • transações em andamento,
  • recovery imediato.

São críticos.

Perder active log é pesadelo nível apocalipse.


🔹 Archive Logs

Quando active logs ficam cheios:

  • Db2 descarrega,
  • copia,
  • arquiva.

Esses logs históricos viram:

ARCHIVE LOGS

Eles são usados para:

  • PIT recovery,
  • auditoria,
  • rollback histórico,
  • disaster recovery.

☕ COMO O Db2 ESCREVE NO LOG?

Muita gente acha que Db2 grava direto no disco.

Não.

Primeiro ele grava em:

🔥 LOG BUFFERS

na memória.

Depois:

  • COMMIT,
  • checkpoint,
  • buffer cheio,
  • sync I/O,

forçam gravação nos:

ACTIVE LOG DATASETS

🔥 WRITE AHEAD LOGGING (WAL)

Aqui está o segredo do recovery moderno.

O Db2 segue:

🔥 WAL — Write Ahead Logging

Regra:

“O log precisa ser gravado ANTES da página do banco.”

Isso garante:

  • rollback,
  • redo,
  • recuperação consistente.

Sem isso:
💀 corrupção.


☕ O QUE ACONTECE NUM COMMIT?

Quando o programa COBOL faz:

EXEC SQL COMMIT END-EXEC

o Db2:

  1. sincroniza logs,
  2. confirma UOW,
  3. libera locks,
  4. torna alterações permanentes.

O COMMIT é basicamente:

🔥 “Agora isso virou verdade oficial.”


☕ E NUM ABEND?

Aqui entra o terror psicológico do DBA.

Se ocorre:

  • S0C7,
  • S878,
  • timeout,
  • deadlock,
  • cancel,
  • crash,
  • queda de LPAR,

o Db2 usa os logs para:

🔥 ROLLBACK

Ele desfaz tudo desde o último COMMIT.


🔥 TIPOS DE ERRO MAIS COMUNS


⚠️ SQLCODE -911 / -913

Deadlock ou timeout

Dois programas querem recursos incompatíveis.

Exemplo clássico:

  • batch segurando tabela,
  • online tentando atualizar.

DBA/Sysprog:

  • analisar locking,
  • IFCID,
  • traces,
  • IRLM,
  • timeout values.

Programador COBOL:

  • reduzir tempo entre commits,
  • melhorar SQL,
  • evitar scan gigante.

⚠️ SQLCODE -904

Resource unavailable

Tablespace parado.
Utility rodando.
Objeto indisponível.

DBA:

  • verificar STOP status,
  • utilities,
  • claim/drain,
  • locks.

Sysprog:

  • investigar subsystem,
  • storage,
  • I/O,
  • coupling facility.

⚠️ SQLCODE -803

Duplicate key

Programador tentou inserir chave já existente.

Programador:

  • validar lógica,
  • tratar concorrência,
  • revisar sequence/identity.

DBA:

  • verificar índice,
  • constraints,
  • integridade.

⚠️ SQLCODE -805

Package não encontrado

Clássico inferno de deploy.

DBA:

  • verificar BIND,
  • PLAN/PACKAGE,
  • consistency token.

Sysprog:

  • SDSNLOAD,
  • STEPLIB,
  • DBRM libraries.

Programador:

  • garantir promote correto.

⚠️ 00C90084

Log full

Aqui o DBA começa a envelhecer rapidamente.

O active log lotou.

Possíveis causas:

  • UOW gigante,
  • commit inexistente,
  • archive parado.

DBA:

  • verificar ARCHIVE process,
  • aumentar logs,
  • cancelar job problemático.

Programador:

  • COMMIT frequente,
  • evitar transação monstruosa.

☕ COMO FUNCIONA O RECOVERY?

Aqui mora a mágica do Db2.


🔥 FORWARD RECOVERY

Db2:

  1. restaura image copy,
  2. reaplica logs.

Resultado:
✅ banco volta até ponto desejado.


🔥 BACKOUT / ROLLBACK

Db2 usa:

  • before images,
  • undo records.

E desfaz alterações.


🔥 RESTART RECOVERY

Após crash do subsystem:

Db2:

  • lê logs,
  • identifica UOW incompletas,
  • faz undo/redo automático.

Muitas vezes o usuário nem percebe.


☕ O PAPEL DO DBA

O DBA é o “cirurgião do banco”.

Ele:

  • monitora logs,
  • executa RECOVER,
  • controla utilities,
  • administra image copies,
  • resolve locking,
  • acompanha catalog,
  • analisa performance.

Ferramentas clássicas:

  • DSN1LOGP,
  • RECOVER,
  • COPY,
  • REORG,
  • DISPLAY DATABASE,
  • DISPLAY LOG.

☕ O PAPEL DO SYSPROG

O Sysprog atua na infraestrutura pesada.

Ele cuida:

  • do subsystem Db2,
  • IRLM,
  • z/OS,
  • JES,
  • storage,
  • coupling facility,
  • datasets de log,
  • BSDS,
  • bootstrap datasets.

Se o DBA é cirurgião…
o Sysprog é engenheiro nuclear.


☕ O QUE O PROGRAMADOR COBOL PRECISA ENTENDER?

Muito mais do que imaginam.

Porque SQL ruim gera:

  • lock,
  • timeout,
  • log storm,
  • escalation,
  • crash recovery lento.

🔥 Um bom programador Db2:

✅ faz commit racional
✅ evita cursor infinito
✅ reduz scans
✅ trata SQLCODE corretamente
✅ entende UOW
✅ sabe impacto do rollback
✅ evita transações gigantes


☕ O MAIOR ERRO DOS INICIANTES

Achar que:

COMMIT é só “salvar”.

Não.

COMMIT é:

  • sincronização,
  • liberação de lock,
  • persistência,
  • checkpoint lógico,
  • controle de recovery.

É o coração do Db2 transacional.


🔥 CONCLUSÃO

O log do Db2 é praticamente:

🔥 a memória do banco.

Sem ele:

  • não existe rollback,
  • recovery,
  • integridade,
  • restart,
  • consistência.

Quando você entende:

  • active log,
  • archive log,
  • WAL,
  • UOW,
  • rollback,
  • recovery,

você deixa de ser apenas “quem escreve SELECT”.

E começa a pensar como:

  • DBA,
  • sysprog,
  • arquiteto transacional.

E no universo mainframe…

isso muda tudo. ☕🔥

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...