| 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:
| Pilar | Data Sets |
|---|---|
| Configuração | CSD |
| Execução | TS / TD |
| Diagnóstico | Dump / Trace / SMF |
| Recuperação | DFHLOG / 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
| Tipo | Uso |
|---|---|
| Transaction dump | Debug COBOL |
| System dump | IBM 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
| TS | TD |
|---|---|
| Aleatório | Sequencial |
| Dinâmico | Pré-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.