| Cics filas TSQ e TDQ passagem de dados |
🔥 Understanding QUEUE, TSQ e TDQ no CICS
☕ Midnight Lunch, fila cheia e CICS aberto
Todo mainframer já passou por isso: programa CICS travado, usuário reclamando, operador olhando o CEMT, e alguém solta a clássica pergunta:
“Isso aí não é fila? TSQ ou TDQ?”
E o silêncio toma conta do data center.
Vamos resolver isso de vez, no estilo Bellacosa: com história, conceito, prática, fofoca técnica e alguns easter eggs de quem já levou AEI0 na testa.
🏛️ Um pouco de história: filas antes da nuvem
Antes de Kafka, Redis, RabbitMQ e afins, o CICS já sabia lidar com filas.
Desde os anos 70, IBM introduziu mecanismos simples, rápidos e extremamente eficientes para armazenar dados temporários ou sequenciais durante a execução de transações online.
Esses mecanismos são chamados genericamente de QUEUE, mas na prática se dividem em:
-
TSQ – Temporary Storage Queue
-
TDQ – Transient Data Queue
Ambos são filas, mas com propósitos, comportamentos e riscos bem diferentes.
🧠 Conceito-chave (guarde isso como mantra)
TSQ = memória temporária, aleatória, flexível
TDQ = fluxo sequencial, estilo arquivo/log, orientado a eventos
Se você entendeu isso, já está 50% certificado CICS 😄
📦 TSQ – Temporary Storage Queue
O que é?
Uma fila temporária de armazenamento usada por programas CICS para guardar dados durante ou entre transações.
Ela pode residir:
-
Em memória (MAIN)
-
Em disco (AUX – VSAM)
Características
✔ Acesso direto por item
✔ Pode ler, escrever, atualizar e apagar
✔ Pode sobreviver ao fim da transação
✔ Pode ser compartilhada entre programas
Comandos principais
Exemplo mental (Bellacosa way)
Imagine um post-it compartilhado entre programas CICS:
-
Programa A escreve dados
-
Programa B lê
-
Programa C atualiza
-
Programa D apaga
Tudo rápido, sem I/O pesado.
⚠️ Armadilhas clássicas (easter eggs)
-
TSQ esquecida = vazamento de storage
-
Nome dinâmico mal feito = fila órfã
-
Volume alto em MAIN = SOS no CEMT I TASK
📌 Dica de ouro: sempre pense em DELETEQ TS.
🧾 TDQ – Transient Data Queue
O que é?
Uma fila sequencial, orientada a eventos, muito usada como:
-
Log
-
Interface com batch
-
Comunicação com sistemas externos
Tipos de TDQ
-
Intrapartition TDQ
-
Dentro do CICS
-
Uma única partição
-
-
Extrapartition TDQ
-
Fora do CICS
-
Geralmente associada a um dataset sequencial
-
Características
✔ Escrita sequencial
✔ Leitura normalmente sequencial
✔ Ideal para log e integração
❌ Não permite acesso aleatório
❌ Não é feita para update
Comandos principais
Exemplo prático
-
Transação online grava eventos em TDQ
-
Job batch lê essa TDQ depois
-
Processamento assíncrono elegante, old school e eficiente
📌 Isso é o avô espiritual do streaming moderno.
🥊 TSQ vs TDQ – Luta no octógono
| Critério | TSQ | TDQ |
|---|---|---|
| Tipo | Temporária | Sequencial |
| Acesso | Aleatório | Sequencial |
| Uso típico | Work area, cache | Log, interface |
| Performance | Muito alta | Alta |
| Persistência | Configurável | Depende do tipo |
| Risco comum | Storage leak | Fila parada |
🛠️ Passo a passo mental (como escolher)
1️⃣ Preciso acessar dados fora de ordem? → TSQ
2️⃣ Preciso registrar eventos/logs? → TDQ
3️⃣ Comunicação com batch? → TDQ extrapartition
4️⃣ Compartilhar estado entre transações? → TSQ
📚 Guia de estudo para mainframers
Se você quer dominar filas no CICS, estude:
-
Storage Management (MAIN vs AUX)
-
CEMT I TSQUEUE / TDQUEUE
-
Recovery e rollback
-
CICS Logging e Journals
-
Integração TSQ + MQ (sim, isso acontece)
📖 Manual-chave: CICS Application Programming Guide
🤓 Curiosidades de boteco mainframe
🍺 TSQ já foi usada como cache improvisado antes de DB2
🍺 TDQ era chamada de “log dos pobres” nos anos 80
🍺 Muitos sistemas críticos ainda rodam com TDQ + batch noturno
🍺 Já existiram sistemas bancários inteiros baseados em TSQ (não recomendado 😅)
💬 Comentário El Jefe Midnight Lunch
“Enquanto o mundo redescobre filas com nomes modernos,
o CICS continua servindo café quente, confiável e previsível
desde antes de você nascer.”
🚀 Aplicações modernas (sim, ainda hoje)
-
Core bancário
-
Sistemas de cartão
-
Logs de auditoria
-
Integração com MQ e APIs
-
Work areas de alta performance
🎯 Conclusão Bellacosa
TSQ e TDQ não são relíquias.
São armas cirúrgicas, feitas para problemas específicos.
Quem sabe usar:
-
Escreve código mais rápido
-
Evita gargalos
-
Dorme tranquilo quando o CICS sobe
🔥 CICS não é velho. Velho é quem não entende fila.
Sem comentários:
Enviar um comentário