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

sexta-feira, 9 de dezembro de 2011

🔥 Understanding QUEUE, TSQ e TDQ no CICS

 

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

EXEC CICS WRITEQ TS EXEC CICS READQ TS EXEC CICS DELETEQ TS

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

  1. Intrapartition TDQ

    • Dentro do CICS

    • Uma única partição

  2. 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

EXEC CICS WRITEQ TD EXEC CICS READQ TD

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érioTSQTDQ
TipoTemporáriaSequencial
AcessoAleatórioSequencial
Uso típicoWork area, cacheLog, interface
PerformanceMuito altaAlta
PersistênciaConfigurávelDepende do tipo
Risco comumStorage leakFila 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.