Translate

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

quinta-feira, 4 de dezembro de 2025

💥 SEU COBOL NÃO É LEGADO — É UM MOTOR TRANSACIONAL: O GUIA DEFINITIVO DE CICS DATA SETS NO IBM z17 PARA QUEM QUER DOMINAR PRODUÇÃO

 

Bellacosa Mainframe dominando Datasets no CICS

💥 SEU COBOL NÃO É LEGADO — É UM MOTOR TRANSACIONAL: O GUIA DEFINITIVO DE CICS DATA SETS NO IBM z17 PARA QUEM QUER DOMINAR PRODUÇÃO

Se você trabalha com COBOL em CICS e ainda enxerga “dataset” como apenas um arquivo… você está perdendo o jogo.

No IBM z17, CICS não é só um runtime — é um orquestrador de estado, consistência e observabilidade em escala absurda.
E os CICS Data Sets são o sistema nervoso disso tudo.

Este artigo é direto ao ponto — com história, prática, pegadinhas de prova, exemplos reais e aquele nível de detalhe que só quem vive produção entende. ☕🔥


🧠 Antes de tudo: o que realmente são CICS Data Sets?

Não são apenas arquivos.

👉 São mecanismos especializados para:

  • Garantir integridade (ACID)
  • Permitir restart seguro
  • Registrar tudo que importa
  • Isolar falhas
  • Sustentar milhões de transações

🏛️ Origem histórica — por que isso existe?

Nos anos 60/70, com sistemas bancários crescendo:

  • Não dava pra perder dados
  • Não dava pra parar sistemas
  • Não dava pra “reprocessar depois”

Então o CICS nasceu com uma obsessão:

🔥 Nunca deixar o sistema inconsistente

E daí surgem:

  • Logs (para desfazer)
  • Dumps (para entender)
  • Catálogos (para lembrar)
  • Filas (para desacoplar)

👉 Tudo isso ainda vive — e no z17 roda em escala insana.


🧩 O ecossistema dos Data Sets (visão de arquiteto)

Pense em 4 pilares:

PilarData Sets
ConfiguraçãoCSD
ExecuçãoTS / TD
DiagnósticoDump / Trace / SMF
RecuperaçãoDFHLOG / DFHSHUNT / Catalog

📜 CSD — Onde o CICS “aprende a existir”

O CICS System Definition (CSD) é o DNA do sistema.

💡 O que ele guarda?

  • PROGRAM
  • TRANSACTION
  • FILE
  • TDQ
  • CONNECTION
  • URIMAP

⚙️ Passo a passo real

1. DEFINE no CSD (CEDA)
2. INSTALL no runtime
3. EXEC CICS usa o recurso

🧠 Easter egg de prova

👉 Alterar CSD NÃO afeta região ativa

Se você esqueceu disso em produção…
👉 já passou vergonha 😅


💾 System Log — O que salva sua carreira

Se você tivesse que escolher um dataset pra nunca perder:

👉 seria o DFHLOG / DFHSHUNT


💥 O que ele faz?

  • Guarda alterações antes do commit
  • Permite rollback
  • Sustenta recovery
  • Garante integridade

🧑‍💻 Exemplo real (clássico)

EXEC CICS WRITE FILE('ACCT')

Sistema cai antes do syncpoint.

👉 Log entra em ação
👉 Backout acontece
👉 Dados ficam consistentes

🔥 Magia? Não. Engenharia.


🧠 Frase de guerra

👉 “Sem log, não existe CICS — existe caos.”


📚 Global Catalog — O CICS “não esquece quem era”

Durante shutdown:

👉 O CICS salva o estado

Durante startup:

👉 Ele reconstrói o ambiente


💡 O que ele guarda?

  • Recursos instalados
  • Local do system log
  • Estado operacional

⚠️ Pegadinha clássica

👉 NÃO guarda definições (isso é o CSD)

👉 Guarda o que estava ativo


🧯 Dumps — Quando tudo dá errado

🔥 Tipos

1) Transaction Dump

→ DFHDMPA / DFHDMPB

👉 erro de programa


2) System Dump

→ SYS1.DUMPnn

👉 erro do sistema inteiro


🧠 Diferença de ouro

TipoUso
Transaction dumpDebug COBOL
System dumpIBM Support

💡 Easter egg

ASRA + dump + offset
👉 é onde nasce o dev sênior de verdade


📊 SMF — O “Big Brother” do CICS

Se você quer entender performance:

👉 é aqui.


🔥 SMF Type 110

Contém:

  • Tempo de resposta
  • CPU
  • Waits
  • Volume
  • Uso de recursos

🧑‍💻 Caso real

Sistema lento…

SMF mostra:

👉 aumento de wait em VSAM

Problema:

👉 CI split + dataset mal definido


🔍 Trace — O microscópio do CICS

Tipos:

  • Internal → rápido, volátil
  • Auxiliary → persistente
  • GTF → nível sistema

💣 Problema clássico

Trace enche → WRAP → perde dados


💾 Solução

👉 Auxiliary Trace com switching automático


🧠 Frase de especialista

👉 “Se não coletou o trace antes… já era.”


🧩 Temporary Storage (TS)

Armazena dados temporários.


Tipos

🔹 Main storage

  • rápido
  • volátil

🔹 Auxiliary

  • persistente
  • recuperável

🧑‍💻 Exemplo

  • Conversational transaction
  • Dados intermediários

📨 Transient Data (TD)

Fila sequencial.


🏢 Intrapartition

👉 Dentro do CICS

  • workflow interno
  • pode ter trigger

🌐 Extrapartition

👉 Fora do CICS

  • arquivos
  • batch
  • impressão

🧠 Diferença chave

TSTD
AleatórioSequencial
DinâmicoPré-definido

⚡ Cenário completo (vida real)

Imagine:

1️⃣ Usuário executa transação COBOL
2️⃣ Dados temporários → TS
3️⃣ Mensagens → TD
4️⃣ Atualização → LOG
5️⃣ Métricas → SMF

💥 Falha ocorre

6️⃣ Dump captura estado
7️⃣ Log executa backout
8️⃣ Catalog ajuda restart

👉 Sistema volta consistente


🧠 Curiosidades que poucos sabem

  • DFHSHUNT = “log secundário” (nome curioso 😄)
  • CICS já fazia rollback automático décadas antes de “microservices”
  • Muitos bancos ainda usam VSAM + CICS como core
  • TS pools podem rodar em Coupling Facility (quase memória compartilhada)
  • SMF é usado até para cobrança interna em empresas

🏆 Mental Model definitivo

🔥 CSD → define
🔥 Catalog → lembra
🔥 Log → protege
🔥 Dump → explica
🔥 SMF → mede
🔥 TS/TD → executa


🧠 Frase final (nível arquiteto)

👉 CICS não processa transações — ele gerencia consistência em escala global.


🚀 Se você chegou até aqui…

Você não é mais só um dev COBOL.

👉 Você está pensando como sysprog + arquiteto CICS.