Translate

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

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. ☕🔥

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.