Translate

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

segunda-feira, 22 de junho de 2026

☕💥 Quando um Dataset VSAM Corrompe no z/OS: Guia de Sobrevivência para Sysprogs, Desenvolvedores COBOL e Administradores CICS

 

Bellacosa Mainframe uma pequena ajudinha recuperando dataset vsam

☕💥 Quando um Dataset VSAM Corrompe no z/OS: Guia de Sobrevivência para Sysprogs, Desenvolvedores COBOL e Administradores CICS

"Há dois tipos de profissionais de Mainframe: os que já recuperaram um dataset corrompido e os que ainda vão recuperar."


Introdução

Poucas mensagens conseguem acelerar tanto os batimentos cardíacos de um profissional de Mainframe quanto estas:

IDC3302I ACTION ERROR
IDC3351I VSAM OPEN RETURN CODE 168
IEC161I
IEC070I
DFHFC0157

Ou pior ainda:

"O arquivo de clientes não abre em produção."

Silêncio.

O scheduler para.

O CICS começa a emitir mensagens.

Os jobs entram em abend.

O telefone toca.

Alguém pergunta:

"Tem backup?"

E nesse momento percebemos que existe uma grande diferença entre saber programar COBOL, conhecer VSAM e realmente entender o processo de recuperação de corrupção em datasets no z/OS.

Hoje vamos tomar um café e conversar sobre um assunto pouco ensinado em treinamentos, mas extremamente valorizado em bancos, seguradoras, companhias aéreas e órgãos governamentais:

Como recuperar um dataset VSAM corrompido no z/OS.


O que significa um Dataset Corrompido?

Nem toda falha é uma corrupção.

Às vezes é apenas um catálogo inconsistente.

Em outros casos temos problemas muito mais graves.

Exemplos:

  • EOF inconsistente

  • HURBA inválido

  • HARBA incorreto

  • Alternate Index quebrado

  • Cadeia lógica danificada

  • Control Interval inválida

  • Problemas na VTOC

  • SMSVSAM inconsistente

  • CI Split interrompido

  • Erros físicos em disco


Primeira Regra: Pare Tudo

O maior erro que vejo iniciantes cometerem é tentar "olhar rapidamente".

Não.

Pare imediatamente.

Batch

Segure scheduler.

CA7

Control-M

TWS


CICS

Fechar arquivo.

CEMT SET FILE(CUSTFILE) CLOSED

ou

CEMT SET FILE(CUSTFILE) DISABLED

IMS

/DBR CUSTOMER

Started Tasks

Encerrar consumidores.

MQ

Connectors

Replication

ETL

CDC


A regra é simples.

Dataset suspeito.

Sem acesso.

Sem exceções.


Segunda Etapa: LISTCAT

Antes de sair executando VERIFY.

Olhe o paciente.

Comando

//STEP1 EXEC PGB=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *

 LISTCAT ENT(PROD.CUST.KSDS)
 ALL

/*

O que analisar?

Cluster

Data Component

Index Component

Volume

HI-USED-RBA

Catalog

SMS Classes


Exemplo

HURBA = 000001987654
HARBA = 000001999999

Valores estranhos podem indicar inconsistências.


VERIFY

Provavelmente a ferramenta mais subestimada do IDCAMS.


Função

Sincronizar.

Catalog

Volume

EOF

RBA

Informações físicas


Exemplo

VERIFY DATASET(PROD.CUST.KSDS)

Com recuperação:

VERIFY DATASET(PROD.CUST.KSDS)
RECOVER

O VERIFY resolve

EOF incorreto

Catalog inconsistente

Discrepâncias simples

Alguns problemas em KSDS


Mas atenção.

VERIFY não é mágica.

Ele não reconstrói uma estrutura destruída.


EXAMINE

Agora começa a parte realmente interessante.

EXAMINE é quase um scanner médico do VSAM.


Data Component

EXAMINE -
NAME(PROD.CUST.KSDS)
DATATEST

Índice

EXAMINE -
NAME(PROD.CUST.KSDS)
INDEXTEST

Completo

EXAMINE -
NAME(PROD.CUST.KSDS)
DATA

O que ele encontra?

Control Interval inválida

Ponteiros quebrados

Índices inconsistentes

RBAs errados

Registros perdidos


A Grande Pergunta

Após EXAMINE surge a decisão.

Corrupção pequena?

ou

Corrupção severa?

Essa decisão define tudo.


Cenário 1 — Corrupção Leve

Exemplos.

Catalog inconsistente.

EOF errado.

Pequenos danos.


Solução.

VERIFY

REPRO

Rebuild


REPRO

Criar novo cluster.

DEFINE CLUSTER(...)

Copiar.

REPRO -
INFILE(IN1)
OUTFILE(OUT1)

Muitas vezes isso resolve.

Surpreendentemente.


Cenário 2 — Corrupção Grave

Aqui muda completamente.

Nunca seja herói.

Backup sempre vence.


Restore

Melhor prática.

Sempre.


DFSMSdss

RESTORE DATASET(...)

HSM

HRECOVER

FDR

RESTORE TYPE=DS

E se não existir backup?

Infelizmente acontece.

Mais vezes do que deveria.


Estratégia

Salvar o que for possível.

Criar novo dataset.

Tentar REPRO.

Descartar registros inválidos.

Reconstruir índices.


Alternate Index

Muitos esquecem do AIX.

Ele também pode corromper.


Rebuild

BLDINDEX

Ou.

Excluir.

Criar novamente.

Popular.


Recuperação de Catálogo

Uma área extremamente especializada.

Pouca gente domina.

Muito valorizada.


DIAGNOSE

DIAGNOSE

EXPORT

EXPORT -
CATALOG(MYCAT)
TEMPORARY

IMPORT

IMPORT CONNECT

Ambientes CICS

A situação muda bastante.

Especialmente em RLS.


SMSVSAM

Cache compartilhado.

Lock global.

Coupling Facility.

Múltiplas regiões.


Problemas comuns.

CF inconsistente.

Lock perdido.

Buffer inválido.


Procedimento

Fechar arquivos.

Verificar SMSVSAM.

Executar VERIFY.

EXAMINE.

Restore.

Abrir novamente.


Ambientes Bancários

O fluxo normalmente é.


Incidente aberto.

Congelamento.

Snapshot.

LISTCAT.

VERIFY.

EXAMINE.

Análise.

Restore.

Testes.

Validação.

Produção.


Testes Pós-Recovery

Nunca devolver imediatamente.

Teste.

Leia registros.

Atualize.

Delete.

Browse.

Sequencial.

Random.


Batch

Executar programas COBOL.

Validar.

Retorno.

SMF.

CPU.

EXCP.


CICS

Abrir arquivo.

Executar transações.

CRUD.

Commit.

Syncpoint.


IMS

DBOPEN.

GN.

GU.

REPL.

DLET.


Ferramentas Úteis

IDCAMS

DFSMSdss

DFSMShsm

FDR

LISTCAT

VERIFY

EXAMINE

BLDINDEX

DIAGNOSE


O que Aprendemos?

O Mainframe continua sendo uma das plataformas mais resilientes do planeta.

Mas nenhuma tecnologia é imune.

Discos falham.

Pessoas erram.

Jobs são cancelados.

Aplicações apresentam bugs.

Volumes ficam inconsistentes.

Catálogos podem sofrer danos.

A diferença entre um desastre e uma recuperação tranquila quase sempre está em três fatores.

Backup.

Procedimentos.

Conhecimento.

Um desenvolvedor COBOL que entende apenas READ, WRITE e REWRITE é valioso.

Um desenvolvedor que compreende LISTCAT, VERIFY, EXAMINE, REPRO, recuperação de catálogo e estratégias de restore torna-se um profissional muito mais próximo do universo de Sysprog, Storage e Administração z/OS.

E essa é justamente uma das características que mais diferencia especialistas Mainframe experientes.

Porque no fim do dia, quando o telefone toca e alguém diz:

"O arquivo de produção corrompeu..."

A pergunta deixa de ser:

"Quem programou isso?"

E passa a ser:

"Quem sabe trazer a base de volta?"

E, acredite, nas grandes corporações, essas pessoas são lembradas por muitos anos.


Bellacosa Mainframe

"Transformando mensagens IDCAMS em oportunidades de aprendizado, um café por vez."


domingo, 7 de junho de 2026

IMS DB: A Vida de um SysAdmin no Mundo do Gigante Invisível do Mainframe

 

Bellacosa Mainframe e o IMS DB sob a visão de um SysAdmin

☕💣🚨 OPERADOR, O ALERTA ACABOU DE DISPARAR... E O IMS ESTÁ NO MEIO DA HISTÓRIA!

A Vida de um Sysadmin no Mundo do Gigante Invisível do Mainframe

São 02h17 da manhã.

O telefone toca.

Nenhuma notícia boa chega nesse horário.

O Sysadmin abre os olhos, pega o celular e encontra uma mensagem curta, objetiva e preocupante:

"Aplicação crítica com lentidão. Filas crescendo. Possível incidente IMS."

Pronto.

O sono acabou.

O café ainda nem começou.

Mas a investigação já está em andamento.

Enquanto milhões de pessoas dormem tranquilamente, existe um exército invisível de profissionais garantindo que bancos, seguradoras, operadoras de cartão, sistemas de saúde e órgãos governamentais continuem funcionando.

Entre eles está o Sysadmin.

E muitas vezes, sem perceber, ele acaba entrando no fascinante universo do IMS.


O Grande Equívoco

Existe uma ideia muito comum entre profissionais iniciantes.

Quando escutam a palavra IMS, imaginam imediatamente:

"Ah, isso é coisa de DBA."

Ou:

"Isso é assunto para programador COBOL."

Ou ainda:

"Isso é responsabilidade do time de aplicações."

E então surge a primeira surpresa.

O Sysadmin interage com o IMS muito mais do que imagina.

Talvez não criando DBDs.

Talvez não escrevendo chamadas DL/I.

Mas certamente monitorando, operando, automatizando, diagnosticando e sustentando o ambiente.


O Que o Usuário Não Vê

Quando alguém faz um PIX pelo celular, a experiência parece simples.

Alguns toques na tela.

Uma confirmação.

Dinheiro transferido.

Fim da história.

Mas por trás daquele gesto existe uma cadeia impressionante:

Aplicativo.

API.

Middleware.

IMS Connect.

IMS TM.

COBOL.

IMS DB.

Mainframe.

Storage.

Rede.

Segurança.

E se qualquer elo dessa corrente apresentar problemas, o primeiro profissional acionado muitas vezes será justamente o Sysadmin.


O Centro de Comando

Imagine uma sala de operações.

Monitores por todos os lados.

Dashboards.

Alertas.

Métricas.

Logs.

Gráficos.

O Sysadmin observa constantemente:

  • Utilização de CPU

  • Consumo de memória

  • Filas

  • Jobs

  • Transações

  • Regiões ativas

  • Recursos críticos

Durante anos ele aprendeu a monitorar:

  • JES2

  • CICS

  • DB2

  • TCP/IP

Mas então surge o IMS.

E ele descobre um novo universo.


O Primeiro Contato

Quase sempre o primeiro contato acontece através de um alerta.

Talvez:

"Fila crescendo."

Ou:

"Tempo de resposta degradado."

Ou:

"Transações aguardando processamento."

Nesse momento o Sysadmin percebe que existe algo além da aplicação.

Existe um componente que recebe mensagens.

Distribui trabalho.

Controla filas.

Executa programas.

Gerencia transações.

Esse componente é o IMS TM.


O Maestro Invisível

Muitos profissionais enxergam o IMS apenas como banco de dados.

Mas o Sysadmin rapidamente descobre que existe um segundo protagonista.

O Transaction Manager.

O famoso IMS TM.

Ele funciona como um maestro.

Recebe solicitações.

Coordena programas.

Controla mensagens.

Distribui carga.

Organiza o fluxo de processamento.

Quando algo desacelera, frequentemente é ali que começam as investigações.


O Terror das Filas Crescentes

Existe uma imagem capaz de acelerar os batimentos cardíacos de qualquer Sysadmin.

Filas crescendo continuamente.

A tela mostra números aumentando.

Mais mensagens.

Mais solicitações.

Mais trabalho aguardando execução.

O usuário ainda não percebe.

A aplicação ainda responde.

Mas o profissional de operação sabe:

algo está errado.

A missão começa.


Seguindo os Rastros

A investigação costuma seguir um caminho lógico.

Primeira pergunta:

O Mainframe está saudável?

CPU?

Memória?

Storage?

Coupling Facility?

Tudo normal.

Segunda pergunta:

A rede está funcionando?

TCP/IP?

Conectividade?

TLS?

Tudo normal.

Terceira pergunta:

As regiões IMS estão processando normalmente?

E é nesse momento que o Sysadmin mergulha mais fundo no ecossistema IMS.


As Regiões Misteriosas

O Sysadmin encontra nomes que antes pareciam enigmáticos.

MPP.

BMP.

IFP.

JMP.

Control Region.

Inicialmente parecem apenas siglas.

Depois tornam-se peças fundamentais do quebra-cabeça.

Cada uma possui uma função.

Cada uma possui métricas.

Cada uma pode se transformar na origem de um incidente.

Com o tempo ele aprende a reconhecê-las quase como velhos conhecidos.


O Poder do Monitoramento

Ferramentas modernas oferecem uma visão detalhada do ambiente.

OMEGAMON.

NetView.

Automation.

Painéis customizados.

Alertas inteligentes.

O Sysadmin acompanha:

  • Taxa de transações

  • Utilização das regiões

  • Filas OTMA

  • Consumo de recursos

  • Disponibilidade dos componentes

Ele não precisa conhecer cada detalhe interno do banco.

Mas precisa identificar quando algo foge do comportamento esperado.


O Dia em Que o Recovery Chega

Todo ambiente crítico possui um momento inevitável.

A falha.

Talvez seja um erro humano.

Talvez seja uma pane de hardware.

Talvez seja uma corrupção lógica.

Quando isso acontece, uma palavra domina a reunião:

Recovery.

É nesse instante que entram em cena:

  • Logs

  • Checkpoints

  • Image Copies

  • DBRC

O Sysadmin participa garantindo que os procedimentos ocorram corretamente.

A pressão é enorme.

Porque ninguém pergunta quanto trabalho foi necessário para recuperar o sistema.

Todos querem apenas uma resposta:

"Já voltou?"


A Arte da Automação

Os melhores Sysadmins possuem uma característica em comum.

Eles odeiam repetir trabalho manual.

Por isso automatizam tudo o que podem.

No universo IMS isso significa:

  • Monitoramento automático

  • Reinício controlado

  • Abertura de chamados

  • Geração de alertas

  • Coleta de evidências

  • Verificação de disponibilidade

Muitas vezes um incidente é detectado por scripts antes mesmo que um usuário perceba o problema.


O Encontro com o IMS Connect

O mundo mudou.

As aplicações modernas não acessam diretamente um terminal verde.

Elas utilizam:

  • APIs REST

  • Aplicativos móveis

  • Portais web

  • Serviços distribuídos

A ponte entre esses mundos frequentemente é o IMS Connect.

E isso coloca o Sysadmin novamente no centro da ação.

Porque agora entram em cena:

  • Portas TCP/IP

  • Certificados digitais

  • TLS

  • RACF

  • Balanceamento

  • Firewall

Nem sempre o problema está no IMS.

Mas quase sempre o Sysadmin precisa provar isso.


O Fantasma das Madrugadas

Existe uma cena clássica.

Tudo funciona perfeitamente durante o dia.

Usuários felizes.

Aplicações rápidas.

Monitoramento tranquilo.

Então chega a madrugada.

Processamentos.

Integrações.

Batchs.

Janelas de manutenção.

E algo inesperado acontece.

O Sysadmin aprende rapidamente que a estabilidade de um ambiente não se mede pelos melhores momentos.

Mas pela forma como ele reage aos piores.


O Gigante Que Nunca Parou

Uma das maiores surpresas para quem conhece o IMS é descobrir sua idade.

O produto nasceu em 1966.

Sim.

Antes da chegada do homem à Lua.

Antes da internet.

Antes do computador pessoal.

Antes do smartphone.

Mesmo assim continua presente em ambientes modernos.

Mais impressionante ainda:

continua evoluindo.

Novas versões.

Novas integrações.

Novas capacidades.

Novas ferramentas.

Poucas tecnologias podem contar uma história semelhante.


Por Que o Sysadmin Deve Aprender IMS?

Porque ele está presente.

Porque ele continua crítico.

Porque ele aparece nos incidentes mais importantes.

Porque ele faz parte da infraestrutura.

Porque entender o fluxo das transações reduz drasticamente o tempo de diagnóstico.

E principalmente porque conhecer IMS transforma um operador de ferramentas em um profissional capaz de compreender o negócio por trás da tecnologia.


O Dia em Que Tudo Faz Sentido

Depois de algum tempo convivendo com o ambiente, algo interessante acontece.

O Sysadmin deixa de enxergar apenas componentes isolados.

Ele passa a enxergar o sistema como um organismo vivo.

As filas.

As transações.

As mensagens.

As aplicações.

As integrações.

Tudo conectado.

Tudo dependente.

Tudo trabalhando em conjunto.

E no centro dessa engrenagem gigantesca continua existindo o mesmo software criado para ajudar a NASA a organizar milhões de componentes do Saturn V.


Conclusão

☕💣🚨

Operador...

Enquanto o mundo discute inteligência artificial, computação quântica e novas linguagens de programação, existe um gigante silencioso que continua trabalhando sem descanso.

Ele processa transações.

Controla filas.

Move dinheiro.

Transporta informações.

Conecta gerações de tecnologia.

E frequentemente aparece nos momentos mais críticos da operação.

Quando o alerta toca às duas da manhã, o Sysadmin descobre que o IMS não é apenas um produto.

É uma parte fundamental da infraestrutura que sustenta o mundo digital moderno.

E quanto mais cedo ele compreender esse gigante invisível, mais preparado estará para enfrentar os desafios que realmente importam dentro de um ambiente Mainframe.


domingo, 5 de abril de 2026

☕💥 Seu DB2 não é lento… você que não está ouvindo ele: Um guia de Database Management para COBOListas raiz (com história, bastidores e prática real)

 

Bellacosa Mainframe fala sobre db2 database management

☕💥 Seu DB2 não é lento… você que não está ouvindo ele

Um guia de Database Management para COBOListas raiz (com história, bastidores e prática real)


🧠 Introdução — o erro clássico do dev COBOL experiente

Se você já escreveu toneladas de código em COBOL, rodou JCL de olhos fechados e fez commit no IBM Db2 como quem toma café…

👉 deixa eu te provocar:

Você domina DB2… ou só usa ele?

Porque existe uma diferença brutal entre:

  • quem usa SELECT
  • e quem entende o comportamento do banco em produção

Esse artigo é pra te levar do segundo nível ao terceiro 😈


🏛️ Origem — quando o banco virou protagonista

Antes do relacional:

  • dados eram hierárquicos (tipo IBM IMS)
  • dependência total da aplicação

Então veio Edgar F. Codd (1970) com o modelo relacional.

👉 Resultado:

  • nasce SQL
  • nasce o DB2
  • nasce o conceito de independência de dados

💡 Easter egg histórico:

DB2 foi um dos primeiros DBMS comerciais a implementar o modelo relacional de forma prática em larga escala.


🧩 O que é Database Management (na prática real)

Você já viu no módulo:

Criar banco é fácil.
Manter banco é o jogo.


🔥 O DBA mindset que você precisa absorver

Criar → Carregar → Monitorar → Proteger → Otimizar → Evoluir

🏗️ PARTE 1 — CRIAÇÃO (onde tudo começa… ou dá errado)

🧠 Modelagem (não pule isso)

🔹 Conceitual

  • negócio (cliente, pedido)

🔹 Lógico

  • tabelas e relacionamentos

🔹 Físico

  • DB2 real (tablespace, index, etc)

💡 Insight:

COBOL sem modelagem vira gambiarra persistente


💻 Exemplo (estilo produção)

CREATE TABLE CLIENTES (
ID INTEGER NOT NULL,
NOME VARCHAR(100) NOT NULL,
SALDO DECIMAL(10,2),
PRIMARY KEY (ID)
);

👉 Aqui você definiu:

  • estrutura
  • tipo
  • integridade

⚙️ PARTE 2 — FIELD ATTRIBUTES (onde mora o perigo silencioso)

💥 Escolhas erradas que você já viu:

  • PIC X(100) pra tudo 😬
  • DECIMAL mal definido
  • campos NULL sem controle

💡 Regra de ouro

Tipo correto = performance + qualidade + economia

🧠 Exemplo clássico

❌ errado:

SALDO VARCHAR(50)

✅ correto:

SALDO DECIMAL(10,2)

💾 PARTE 3 — BACKUP (ou como sobreviver)

💡 Verdade dura:

Backup não testado = backup inexistente


🔧 No mundo real

  • full backup
  • incremental
  • logs

👉 DB2 usa logs pra recovery fino


💥 Cenário real:

00:00 backup
10:32 falha

👉 Recovery:

  • restore backup
  • aplicar logs até 10:31

🧾 PARTE 4 — LOGGING (a caixa preta do sistema)

Logs registram:

  • INSERT
  • UPDATE
  • DELETE
  • erros

💡 Easter egg:

Sem log, DB2 vira só um arquivo caro


⚡ PARTE 5 — PERFORMANCE (onde o bicho pega)

🔍 O erro clássico do COBOLista

SELECT * FROM CLIENTES;

👉 sem índice
👉 sem filtro
👉 sem plano


💥 Ferramenta essencial

EXPLAIN PLAN FOR ...

👉 mostra:

  • table scan
  • index usage
  • custo

🧠 Insight de produção

Query lenta não é azar
👉 é falta de análise


🛠️ PARTE 6 — PROBLEM DETERMINATION

🧨 Situações reais

  • deadlock
  • tabela bloqueada
  • job travado
  • programa COBOL falhando

🔍 Ferramentas

  • logs
  • return codes (SQLCODE 👀)
  • traces

💡 Easter egg COBOL:

IF SQLCODE NOT = 0

👉 esse é o grito silencioso do DB2


🔁 PARTE 7 — REPLICATION (escala nível banco)

👉 cópia do banco:

  • leitura distribuída
  • alta disponibilidade

💡 Exemplo

  • DB2 PROD → DB2 READ ONLY

🔄 PARTE 8 — ETL (o mundo além do transacional)

Fluxo:

  • Extract → DB2
  • Transform → regras
  • Load → Data Warehouse

💡 Insight:

DB2 alimenta o negócio invisível


🗄️ PARTE 9 — ARCHIVING (o segredo da performance)

💥 Problema:

Tabela cresce sem controle

✅ Solução:

  • arquivar dados antigos

💡 Exemplo:

  • transações > 5 anos → archive

🧹 PARTE 10 — DATA QUALITY (o mais negligenciado)

💡 Pergunta brutal:

Você confia nos dados?


🔧 Técnicas:

  • validação
  • constraints
  • scripts

💥 Exemplo

saldo negativo indevido
data inválida
cliente duplicado

📊 PARTE 11 — REPORTING (onde o dinheiro aparece)

👉 Dados → Informação → Decisão


🚀 RESUMO FINAL (nível senior)

DB2 não é banco…
é sistema crítico de negócio

☕ INSIGHT FINAL ESTILO BELLACOSA

Você pode escrever COBOL perfeito…
👉 mas se o DB2 estiver errado, tudo está errado 😈


🎯 FECHAMENTO

Se você chegou até aqui:

👉 você não é mais só dev COBOL
👉 você começou a pensar como DBA


quarta-feira, 11 de fevereiro de 2026

🔥 SEU PROGRAMA NÃO MORRE… ELE DEIXA PISTAS 💀

 

Bellacosa Mainframe analisando o RTM

🔥 SEU PROGRAMA NÃO MORRE… ELE DEIXA PISTAS 💀

O guia proibido do RTM que revela como o z/OS investiga, sobrevive e aprende com cada falha

Você vê um ABEND e pensa:

👉 “deu erro…”

O z/OS pensa diferente:

💥 “vamos registrar, analisar, aprender e continuar rodando.”

Esse é o papel do Recovery Termination Manager (RTM) — o sistema que transforma falhas em evidência técnica.

Se você quer sair do nível “rodou ou não rodou” e entrar no nível engenharia de diagnóstico, esse é o mapa definitivo 👊🔥


🧠 1. A FILOSOFIA DO z/OS SOBRE ERROS

No mundo distribuído:

👉 erro = problema

No mainframe:

👉 erro = evento analisável


💡 Tradução Bellacosa

“falhar é permitido… repetir o erro não.”


⚙️ 2. RTM — O “INVESTIGADOR OFICIAL”

O RTM entra em ação quando:

  • ocorre erro (ABEND)
  • há falha de hardware
  • há erro de sistema
  • ou até quando tudo termina normalmente

🔥 Funções principais

  • capturar erro
  • chamar rotinas de recuperação
  • gerar dumps
  • registrar LOGREC
  • limpar recursos

💡 Insight

RTM atua até quando o programa termina certo


🧩 3. RTM1 vs RTM2 — DOIS NÍVEIS DE SOBREVIVÊNCIA

🔹 RTM1 (System)

  • protege o sistema
  • chama FRR

🔹 RTM2 (Task)

  • trata a task
  • chama ESTAE

🔥 Fluxo real

Erro → RTM1 → RTM2 → Recovery → Dump → Cleanup

💡 Tradução

“primeiro o sistema sobrevive… depois a task”


🛡️ 4. ESTAE — A AUTODEFESA DO PROGRAMA

Programas podem registrar:

👉 rotinas de recuperação


🔥 Como funciona

  • programa define ESTAE
  • erro ocorre
  • RTM chama essa rotina

💡 Tradução Bellacosa

“seu programa pode tentar se salvar antes do fim”


🧠 Exemplo real

COBOL acessa memória inválida

ESTAE intercepta

log + tratamento

💀 5. DUMPS — A CENA DO CRIME

Um dump é:

👉 uma foto completa do sistema no erro


🔥 Tipos

  • SYSABEND → completo
  • SYSMDUMP → técnico
  • SYSUDUMP → básico
  • SVC Dump → sistema
  • Stand-alone → sistema morto

💡 Tradução

“dump é o momento congelado da falha”


🧠 Exemplo

S0C4

dump gerado

IPCS analisa

🧠 6. LOGREC — O HISTÓRICO DOS ERROS

LOGREC registra:

  • falhas de hardware
  • erros de software
  • condições do sistema

💡 Insight

é o primeiro lugar que um sysprog olha


🔥 Tradução Bellacosa

“LOGREC = diário dos problemas”


📜 7. LOGS — A LINHA DO TEMPO

🔹 Principais:

  • SYSLOG → sistema
  • OPERLOG → sysplex
  • JESMSGLG → job

💡 Uso

👉 entender o “antes” do erro


🎥 8. TRACES — O FILME COMPLETO

Enquanto dump = foto
👉 trace = vídeo


🔹 Tipos:

  • System Trace
  • GTF
  • Component Trace

💡 Uso

👉 analisar fluxo ao longo do tempo


🧠 9. DAE — INTELIGÊNCIA DE DUMP

Evita:

👉 dumps repetidos


🔥 Usa:

  • SYS1.DAE

💡 Tradução

“não repetir análise inútil”


🔎 10. IPCS — O CSI DO MAINFRAME

Ferramenta para:

  • ler dumps
  • interpretar dados
  • analisar erro

💡 Tradução Bellacosa

“IPCS = laboratório forense”


🧨 11. SLIP TRAPS — PEGANDO ERRO NO FLAGRA

Você pode definir:

👉 “quando isso acontecer… capture tudo”


💡 Exemplo

Se S0C4 ocorrer → gerar dump completo

🔥 Tradução

“armadilha inteligente”


⚙️ 12. CLEANUP — O FINAL OBRIGATÓRIO

Após erro ou término:

  • memória liberada
  • datasets fechados
  • locks removidos
  • timers cancelados

💡 Tradução

“ninguém sai sem arrumar o ambiente”


🔄 13. PASSO A PASSO COMPLETO

Programa executa

Erro ocorre

RTM acionado

ESTAE / FRR chamados

Dump gerado

LOGREC atualizado

Recursos liberados

Sistema continua

🧨 CURIOSIDADES (NÍVEL ROOT)

🤯 1. RTM roda até em término normal


🔥 2. Dump pode salvar dias de análise


💀 3. LOGREC é ignorado por iniciantes


🧠 4. SLIP é arma de elite


⚡ 5. z/OS foi feito para falhar… e continuar


🎯 RESUMO FINAL

✔ RTM controla término e erro

✔ RTM1 protege sistema

✔ RTM2 trata task

✔ ESTAE = recuperação

✔ Dumps = evidência

✔ LOGREC = histórico

✔ IPCS = análise


💥 FRASE FINAL

“No mainframe, o erro não encerra o sistema… ele inicia a investigação.”

 

segunda-feira, 6 de outubro de 2025

☕💾🔥 CICS DATA SETS — O “SUBSOLO INVISÍVEL” QUE MANTÉM BANCOS VIVOS NO MAINFRAME IBM Z

 

☕💾🔥 CICS DATA SETS — O “SUBSOLO INVISÍVEL” QUE MANTÉM BANCOS VIVOS NO MAINFRAME IBM Z

O programador COBOL vê EXEC CICS.

O sysprog vê sobrevivência transacional.

Quando um programador iniciante começa no CICS, normalmente ele enxerga apenas:

EXEC CICS READ
EXEC CICS WRITE
EXEC CICS RETURN

Mas existe um universo gigantesco escondido por trás disso.

Um universo formado por:

  • recovery,

  • tracing,

  • logging,

  • observabilidade,

  • filas,

  • rollback,

  • dumps,

  • persistência operacional,

  • orchestration.

E é exatamente isso que os datasets do CICS representam.

Neste artigo vamos mergulhar profundamente no “lado invisível” do CICS.

Porque:

entender datasets do CICS é começar a pensar como um verdadeiro sysprog.


☕ O CICS NÃO É Apenas Um Transaction Monitor

Essa é uma das maiores descobertas que um profissional faz quando amadurece no mundo mainframe.

O CICS:

  • não é apenas EXEC CICS,

  • não é apenas COBOL online,

  • não é apenas tela verde.

Ele é:

  • transaction manager,

  • recovery engine,

  • queue manager,

  • observability platform,

  • tracing framework,

  • runtime orchestrator.

E os datasets são literalmente:

os órgãos internos dessa criatura.


🔥 DFHCSD — O DNA Operacional do CICS

O primeiro dataset que um sysprog precisa entender profundamente é:

DFHCSD

O famoso:

CICS System Definition File.


☕ O Que o CSD Realmente Faz?

Ele funciona como:

  • catálogo mestre,

  • banco de definições,

  • repositório operacional.

Tudo o que o CICS precisa conhecer:

  • PROGRAM,

  • TRANSACTION,

  • FILE,

  • TERMINAL,

  • TCPIPSERVICE,

  • URIMAP,

  • TDQUEUE,

  • JVMSERVER,

  • PIPELINE,

fica definido no CSD.


🔥 O CICS NÃO “DESCUBRE” Recursos Automaticamente

Esse é um ponto fundamental.

No mundo cloud moderno muita gente está acostumada com:

  • service discovery,

  • auto registration,

  • dynamic orchestration.

Mas o CICS nasceu em um mundo onde:

previsibilidade e controle eram mais importantes do que automação descontrolada.

Tudo precisa ser explicitamente definido.


☕ O Grande Segredo Arquitetural

O runtime do CICS:

NÃO trabalha diretamente no CSD.

Durante startup ocorre:

DFHCSD
   ↓
INSTALL
   ↓
Control Blocks em memória
   ↓
Runtime CICS

Isso é extremamente sofisticado.


🔥 O Que São Control Blocks?

São estruturas internas contendo:

  • atributos,

  • endereços,

  • localização dos programas,

  • flags,

  • status operacional.

Quando um programa executa:

EXEC CICS LINK PROGRAM('PGM001')

O CICS consulta:

control blocks em memória.

Não o CSD.


☕ Isso Explica a Velocidade do CICS

Tudo fica:

  • pré-carregado,

  • indexado,

  • organizado,

  • otimizado em memória.

Décadas antes do conceito moderno de:

  • metadata caching,

  • in-memory orchestration,

  • runtime repositories.


🔥 O CSD Revolucionou o CICS

Antes dele existiam:

  • PPT,

  • PCT,

  • FCT,

  • TCT.

Control tables extremamente rígidas.

Alterações exigiam:

  • assemble,

  • link-edit,

  • restart.

O CSD trouxe:

  • definição dinâmica,

  • administração online,

  • menos downtime,

  • maior agilidade.


☕ DFHLOG — O Coração da Integridade Transacional

Agora chegamos no componente mais crítico de todos:

o system log.

Sem ele:

  • bancos quebrariam,

  • saldos ficariam inconsistentes,

  • transações seriam perdidas.


🔥 O Que o DFHLOG Faz?

Ele registra:

  • before images,

  • syncpoints,

  • rollback records,

  • updates,

  • UOWs.

Tudo necessário para:

recovery transacional.


☕ Before Image — Conceito Fundamental

Antes de alterar um dado:

o CICS grava o estado anterior.

Exemplo:

Saldo = 1000
↓
Tentativa de update para 800

Antes disso:

o valor antigo é registrado no log.


🔥 Dynamic Transaction Backout (DTB)

Agora imagine:

Debita conta A
↓
ABEND
↓
Crash

O CICS:

  • consulta o DFHLOG,

  • identifica updates incompletos,

  • executa rollback,

  • restaura integridade.

Isso é:

DTB — Dynamic Transaction Backout.


☕ Warm Start e Emergency Restart

Quando o CICS reinicia:

ele escaneia o log inteiro.

Para descobrir:

  • quais tasks estavam ativas,

  • quais UOWs precisam rollback,

  • quais recursos devem ser restaurados.


🔥 Primary e Secondary Streams

O system log lógico é composto por:

  • Primary stream

  • Secondary stream

Ambos são vistos como:

um único logical log stream.

Isso mostra uma arquitetura extremamente madura.


☕ DFHSHUNT — O Mundo das Shunted UOWs

Quando uma Unit of Work:

  • não consegue completar recovery,

  • possui recurso indisponível,

  • encontra erro persistente,

ela pode ficar:

shunted.

O CICS NÃO perde a integridade.

Ele preserva a UOW para recuperação posterior.

Isso é engenharia mission-critical real.


🔥 Dumps — A Forense do CICS

O CICS possui dois níveis principais de dump.


☕ System Dump

Captura:

  • região inteira,

  • memória,

  • address spaces,

  • control blocks,

  • storage global.

Vai normalmente para:

SYS1.DUMPnn

É usado em:

  • falhas severas,

  • storage corruption,

  • kernel problems.


🔥 Transaction Dump

Mais focado.

Captura:

  • task específica,

  • COMMAREA,

  • EIB,

  • storage da transação.

Usa:

DFHDMPA
DFHDMPB

Muito usado em:

  • ASRA,

  • S0C7,

  • AICA,

  • debugging aplicativo.


☕ Trace — O Gravador de Voo do CICS

O tracing do CICS é uma obra-prima da engenharia enterprise.


🔥 CETR — O Painel de Controle do Trace

A transação:

CETR

permite:

  • ativar trace,

  • parar trace,

  • selecionar domains,

  • ajustar níveis,

  • controlar GTF,

  • configurar auxiliary trace.


☕ GTF — Generalized Trace Facility

O GTF integra:

  • CICS,

  • z/OS,

  • VTAM,

  • DB2,

  • TCP/IP.

Permitindo tracing sistêmico.

Muito antes do conceito moderno de:

  • distributed tracing,

  • observability pipelines,

  • telemetry frameworks.


🔥 Auxiliary Trace — Evitando o Wrapping

Trace em memória é circular.

Quando enche:

sobrescreve dados antigos.

Para evitar isso:

DFHAUXT
DFHBUXT

permitem:

  • persistência,

  • grandes volumes,

  • rotação automática.

Isso é praticamente:

rolling logs décadas antes do Linux popularizar isso.


☕ SMF — O Big Data Operacional do Mainframe

O CICS também produz telemetria enterprise.


🔥 O Que o CICS Grava no SMF?

  • CPU usage,

  • elapsed time,

  • transaction counts,

  • waits,

  • VSAM activity,

  • DB2 usage,

  • storage consumption.

Especialmente via:

SMF Type 110

☕ Muito Antes da “Observabilidade Moderna”

Enquanto muita gente fala hoje sobre:

  • Prometheus,

  • Grafana,

  • OpenTelemetry,

  • observability,

O z/OS já fazia isso:

há décadas.


🔥 TSQ — Temporary Storage Queue

O CICS frequentemente precisa guardar dados temporários.

Para isso existem:

TSQs.


☕ Características da TSQ

  • criação dinâmica,

  • leitura por item,

  • releitura,

  • update.

Exemplo:

EXEC CICS WRITEQ TS
     QUEUE('TEMP001')
END-EXEC

🔥 Main TS vs Auxiliary TS

Main TS

  • memória,

  • rápido,

  • temporário.

Auxiliary TS

  • VSAM,

  • persistente,

  • maior capacidade.

Muito usado via:

DFHTEMP

☕ TDQ — Transient Data Queue

Agora chegamos em um clássico absoluto do CICS.


🔥 TDQ vs TSQ

Essa diferença derruba muitos iniciantes.


☕ TSQ

Mais flexível.


🔥 TDQ

Mais orientada a fluxo:

  • leitura sequencial,

  • destrutiva,

  • pré-definida.

Ideal para:

  • impressão,

  • integração batch,

  • pipelines assíncronos.


☕ Intrapartition vs Extrapartition

Intrapartition

Usada:

dentro da região CICS.

Controlada pelo próprio CICS.


Extrapartition

Usada:

dentro e fora do CICS.

Muito comum em:

  • integração batch,

  • JES,

  • exportação,

  • geração de arquivos.


🔥 O CICS Já Fazia Mensageria Muito Antes do Kafka

Observe algo impressionante.

Décadas antes de:

  • Kafka,

  • RabbitMQ,

  • Event Streaming,

  • Message Brokers modernos,

O CICS já implementava:

  • filas,

  • desacoplamento,

  • processamento assíncrono,

  • integração enterprise.


☕ Global Catalog — A Memória Persistente do Runtime

O global catalog:

  • salva recursos instalados,

  • guarda localização do system log,

  • ajuda no warm start,

  • auxilia recovery.


🔥 Installed ≠ Defined

Esse conceito é importantíssimo.

Defined

Existe no CSD.

Installed

Está ativo no runtime.


☕ O CICS Separa Configuração de Runtime

Isso é extremamente moderno.

Mesmo conceito atual de:

  • configuration repositories,

  • runtime metadata,

  • orchestration state.


🔥 O Que Um Sysprog Junior Deve Entender?

Se você está começando em sysprog CICS:

pare de enxergar apenas EXEC CICS.

Comece a enxergar:

  • recovery,

  • rollback,

  • observabilidade,

  • logs,

  • tracing,

  • queues,

  • startup orchestration,

  • runtime control blocks.

Porque:

é isso que mantém bancos funcionando sem parar.


☕ O Grande Insight Final

O mais impressionante do CICS é perceber que:

muito antes da computação distribuída moderna existir,

o mainframe já havia resolvido problemas extremamente complexos.

Como:

  • observabilidade,

  • tracing,

  • rollback automático,

  • crash recovery,

  • filas assíncronas,

  • persistência runtime,

  • transaction management.


🔥 Pensamento Final ao Estilo Bellacosa Mainframe

O programador iniciante vê:

EXEC CICS READ

O sysprog experiente vê:

  • DFHLOG,

  • SMF,

  • CETR,

  • GTF,

  • recovery manager,

  • syncpoints,

  • UOWs,

  • auxiliary trace,

  • control blocks,

  • startup orchestration.

E entende que:

o CICS não é apenas um monitor transacional.

Ele é uma das arquiteturas mais sofisticadas já construídas na história da computação enterprise.

☕💾🔥

quinta-feira, 2 de outubro de 2025

☕💾 LAB 2 — DB2 Teoria & Prática para Sysprog Júnior 💾☕

 

Bellacosa Mainframe coloca o aluno a prova num lab db2

☕💾 LAB 2 — DB2 Teoria & Prática para Sysprog Júnior 💾☕

🎯 Objetivo do Laboratório

Neste laboratório o aluno irá aprender na prática:

  • Catálogo e Diretório DB2
  • Recovery e LOG
  • Bufferpool
  • EDM Pool
  • Processamento interno DB2
  • Address Spaces
  • Troubleshooting básico

📘 Parte 1 — Conhecendo o Catálogo DB2

O que é?

O catálogo DB2 contém:

  • definições de tabelas,
  • índices,
  • packages,
  • plans,
  • objetos do ambiente.

Objetivo Prático

Consultar informações do catálogo.


SQL

SELECT NAME, CREATOR
FROM SYSIBM.SYSTABLES
FETCH FIRST 10 ROWS ONLY;

Resultado Esperado

NAME        CREATOR
----------- --------
SYSTABLES SYSIBM
SYSCOLUMNS SYSIBM
SYSINDEXES SYSIBM

Exercício

Quem criou as tabelas acima?

✅ SYSIBM


Explicação

O schema SYSIBM contém objetos internos fundamentais do DB2.


📘 Parte 2 — Entendendo o Diretório DB2

Conceito

O Directory DB2 armazena:

  • objetos internos,
  • controle operacional,
  • informações críticas do subsistema.

Pergunta

Qual database representa o Directory?

A) DSNDB06
B) DSNDB01
C) SYSUTIL
D) DSNCAT

✅ Resposta: B


Curiosidade ☕

DatabaseFunção
DSNDB01Directory
DSNDB06Catalog

📘 Parte 3 — Recovery e LOG

Objetivo

Visualizar informações de LOG.


Comando

-DISPLAY LOG

Resultado Simulado

CURRENT ACTIVE LOG DATA SET
COPY1 ACTIVE
COPY2 ACTIVE

Exercício

Quantas cópias de log estão ativas?

✅ 2


Explicação

O DB2 usa redundância para:

  • recovery,
  • rollback,
  • restart,
  • auditoria.

📘 Parte 4 — Simulando Recovery

Cenário

Uma tabela foi apagada acidentalmente.


Pergunta

Qual utilitário pode recuperar o objeto?

A) REORG
B) RECOVER
C) RUNSTATS
D) LOAD

✅ Resposta: B


Exemplo de Utility

//STEP1 EXEC PGM=DSNUTILB
//SYSIN DD *
RECOVER TABLESPACE DBTEST.TSCLI001
/*

📘 Parte 5 — Investigando Bufferpool

Objetivo

Consultar bufferpool.


Comando

-DISPLAY BUFFERPOOL(BP0)

Resultado Simulado

BUFFERPOOL NAME BP0
STATUS ACTIVE
VPSEQT 80

Exercício

O bufferpool está ativo?

✅ Sim


Pergunta

O bufferpool serve para:

A) Armazenar JCL
B) Cache de páginas DB2
C) Compilar COBOL
D) Gerar logs

✅ Resposta: B


📘 Parte 6 — EDM Pool

Conceito

EDM Pool armazena:

  • packages,
  • plans,
  • estruturas SQL em memória.

Pergunta

Problemas no EDM Pool podem causar:

A) SQL lento
B) Falha JES2
C) IPL automático
D) VTAM DOWN

✅ Resposta: A


📘 Parte 7 — Processamento DB2

Fluxo Simplificado

Aplicação → SQL → DB2 → Bufferpool → Disco

Explicação

O DB2 tenta acessar primeiro:
✅ memória (bufferpool)

Depois:
✅ disco físico


Exercício

Qual acesso é mais rápido?

A) Disco
B) Bufferpool

✅ Resposta: B


📘 Parte 8 — Address Spaces DB2

Objetivo

Conhecer os principais Address Spaces.


Principais

Address SpaceFunção
MSTRControle principal
DBM1Gerenciamento banco
IRLMLocks
DISTConexões distribuídas

Pergunta

Qual Address Space controla locks?

A) DIST
B) DBM1
C) IRLM
D) MSTR

✅ Resposta: C


📘 Parte 9 — Troubleshooting Real

Cenário

Usuários reclamam de lentidão.

Você executa:

-DISPLAY THREAD(*)

Resultado

THREAD STATUS = ACTIVE
TIME = 99999
AUTHID = BATCH01

Exercício

O que pode estar acontecendo?

A) Batch longo/travado
B) JES2 parado
C) IPL pendente
D) VTAM indisponível

✅ Resposta: A


Próximo Passo

Investigar:

  • SQL executado,
  • locks,
  • utilities,
  • CPU,
  • I/O.

📘 Parte 10 — Determination Problem

Cenário

Aplicação travou.

Você suspeita:

  • deadlock,
  • lock,
  • utility,
  • objeto parado.

Sequência de investigação

1) Verificar objeto

-DISPLAY DATABASE(DBTEST)

2) Verificar threads

-DISPLAY THREAD(*)

3) Verificar utility

-DISPLAY UTILITY(*)

4) Verificar logs

-DISPLAY LOG

☕💀 DESAFIO FINAL — O Caçador de Problemas 💀☕

Cenário

Objeto aparece:

STATUS = STOPPED

Pergunta

Qual pode ser a causa?

A) Utility ativa
B) Recovery pendente
C) Intervenção operacional
D) Todas as anteriores

✅ Resposta: D 😅


📊 Resumo Final

TemaConceito
CatalogMetadados
DirectoryControle interno
LOGRecovery
BufferpoolCache
EDM PoolSQL em memória
Address SpaceEstrutura DB2
DISPLAYDiagnóstico

☕🔥 Dica Bellacosa Mainframe 🔥☕

Sysprog júnior que aprende:

  • DISPLAY,
  • recovery,
  • bufferpool,
  • catálogo,
  • address spaces,

já começa a pensar como um verdadeiro especialista DB2 z/OS. ☕💾🔥