Translate

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

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, 3 de dezembro de 2020

CICS Conversacional e Pseudo-Conversacional - Parte IV

 

Bellacosa Mainframe e a conversação em CICS Parte IV

☕ Um Café no Bellacosa Mainframe

CICS Conversacional e Pseudo-Conversacional

Parte 4 — COMMAREA, TSQ, TDQ, Temporary Storage, Control Blocks e os Bastidores do CICS

"Salve novamente, jovem Padawan Mainframe! Se você chegou até aqui, parabéns. Você já compreendeu como a pseudo-conversação revolucionou a escalabilidade do CICS, descobriu Channels, Containers, APIs REST e até OpenTelemetry. Mas agora vamos abrir a tampa do motor do CICS. Vamos conhecer o que acontece por trás das cortinas."

Pegue mais um café.

Abra o IPCS.

Deixe o CEDF ligado.

Reserve uma aba do SDSF.

Porque agora vamos entrar na sala das máquinas.


O que realmente acontece dentro do CICS?

Quando executamos:

EXEC CICS SEND MAP
END-EXEC

Muita gente imagina algo parecido com:

Programa

Tela

Fim.

Mas o CICS faz muito mais.


Fluxo interno

Programa COBOL

        │

        ▼

Translator

        │

        ▼

EXEC Interface

        │

        ▼

Kernel CICS

        │

        ▼

Terminal Control

        │

        ▼

BMS

        │

        ▼

TIOA

        │

        ▼

3270

TIOA

Talvez uma das estruturas menos conhecidas pelos iniciantes.

TIOA

Terminal Input Output Area

É uma área onde ficam armazenados.

Dados digitados.

Cursor.

Atributos.

AID Keys.


Exemplo

ENTER

PF3

PF5

CPF

Nome

Cursor linha 7

Cursor coluna 15

Tudo isso.

Na TIOA.


TCA

Task Control Area.

Cada task possui.


Guarda.

Status.

Transação.

Programa.

Recursos.

Flags.


EIB

Você já conhece.

Mas agora sabemos.

Ele é derivado.

Da TCA.


Control Blocks interessantes

TCT

Terminal Control Table


PPT

Program Processing Table


FCT

File Control Table


PCT

Program Control Table


SIT

System Initialization Table


Temporary Storage Queue

TSQ

Muito usada.

Em pseudo-conversação.


Imagine.

1000 registros.

Não cabem.

Na COMMAREA.


Salvamos em TSQ.


EXEC CICS WRITEQ TS

QUEUE('CLI0001')

FROM(WS-DADOS)

END-EXEC



Lendo.



EXEC CICS READQ TS

QUEUE('CLI0001')

INTO(WS-DADOS)

END-EXEC



TDQ

Transient Data Queue

Muito utilizada.

Para logs.

Integração.

Mensageria.


TSQ versus TDQ

CaracterísticaTSQTDQ
Leitura múltiplaSimNão
AtualizaçãoSimNão
SequencialNãoSim
PersistênciaOpcionalSim
Uso típicoEstadoLogs

COMMAREA versus TSQ

COMMAREA

64 KB

TSQ

Megabytes


Exemplo bancário

Tela.

Lista.

5000 clientes.

Salvar TSQ.

Usuário PF8.

Recupera TSQ.

Próxima página.


Paginando consultas

PF7

Anterior

PF8

Próxima




IF EIBAID = DFHPF8

PERFORM PAGINA-SEGUINTE


END-IF



Boas práticas

Nunca coloque.

Tabela enorme.

Na COMMAREA.


Use.

TSQ.

Ou.

Containers.


LINK

Outro comando muito importante.

Chamando programa.




EXEC CICS LINK

PROGRAM('CLI0002')

COMMAREA(WS-COMM)

END-EXEC



Retorna.

Para chamador.


XCTL

Diferente.

Não retorna.



EXEC CICS XCTL

PROGRAM('MENU0001')

END-EXEC



Programa anterior.

Morre.

Novo.

Assume controle.


START

Assíncrono.

Agenda execução.




EXEC CICS START

TRANSID('CLI1')

END-EXEC



DELAY

Muito curioso.



EXEC CICS DELAY

FOR SECONDS(5)

END-EXEC



Raramente utilizado.


CEMT

Melhor amigo.

Administrador.


Consultar tasks.


CEMT I TASK



Consultar programas.



CEMT I PROGRAM



Consultar files.



CEMT I FILE



Consultar TSQ.



CEMT I TSQUEUE



CEDF

Ferramenta maravilhosa.


Permite.

Passo a passo.

SEND.

RECEIVE.

LINK.

READ.

WRITE.

DB2.




CEDF ON



CECI

Testador.

Interativo.



CECI READ FILE




CECI RECEIVE MAP



Curiosidades Bellacosa Mainframe

Existem sistemas.

Que utilizam.

TSQ.

Desde 1988.

Ainda funcionando.

No z16.

No z17.

Sem alterações.


Easter Egg Mainframe

Muitos programadores escondiam.

Comentários.

Como.



* THIS PROGRAM IS OLDER THAN YOU


Ou.



* IF IT BREAKS


* RUN AWAY



Ou.



* WRITTEN DURING NIGHT SHIFT


* POWERED BY COFFEE



O que veremos na Parte 5

✔ Program Control;

✔ HANDLE CONDITION;

✔ HANDLE ABEND;

✔ RESP e RESP2;

✔ Syncpoint;

✔ Journaling;

✔ Recoverable Resources;

✔ Mirror Transactions;

✔ DPL;

✔ IPIC;

✔ CICSplex;

✔ CPSM;

✔ Threadsafety;

✔ Open TCBs;

✔ OTE;

✔ E muitos outros segredos do universo CICS.


No Bellacosa Mainframe aprendemos uma regra simples: se você acredita que já conhece o CICS, provavelmente apenas encontrou a próxima porta do labirinto. Porque no IBM Z sempre existe mais um control block para estudar, mais um dump para analisar e mais um café esperando para ser servido.

 

domingo, 14 de julho de 2019

O Caso das Duas Filas Fantasmas : Descobriu que uma Delas Guardava Segredos... e a Outra Fazia as Evidências Desaparecerem

 

Bellacosa Mainframe e o caso das duas filas fantasmas

☕ Um Café no Bellacosa Mainframe

O Caso das Duas Filas Fantasmas

Quando um Jovem Programador COBOL Descobriu que uma Delas Guardava Segredos... e a Outra Fazia as Evidências Desaparecerem

"Naquela madrugada, o silêncio do CPD era interrompido apenas pelo zumbido constante dos refrigeradores do IBM Z. Em algum lugar, milhões de transações cruzavam o sistema financeiro do país. Nenhum cliente imaginava que duas estruturas invisíveis decidiam, a cada milissegundo, o destino de seus dados. Elas eram conhecidas apenas por três letras: TSQ e TDQ."


Prólogo — O Mistério das Filas Invisíveis

Existe um momento na vida de todo programador COBOL em que ele percebe que escrever programas é apenas metade do trabalho.

A outra metade consiste em responder uma pergunta aparentemente simples:

"Onde vou guardar meus dados enquanto ainda não terminei de processá-los?"

Parece uma questão banal.

Mas ela já provocou perdas financeiras, sistemas travados, filas gigantescas de processamento, auditorias intermináveis e incontáveis noites sem dormir para programadores de bancos.

Foi justamente para resolver esse problema que o CICS criou duas ferramentas extraordinárias:

  • TSQ (Temporary Storage Queue)

  • TDQ (Transient Data Queue)

À primeira vista, ambas parecem fazer exatamente a mesma coisa.

As duas armazenam dados temporários.

As duas trabalham com filas.

As duas existem há décadas.

Mas basta observá-las um pouco mais de perto para perceber que estamos diante de duas personalidades completamente diferentes.

Como dois investigadores de uma história policial.

Um arquiva provas.

O outro as encaminha imediatamente para o laboratório.


Capítulo 1 — O CICS Nunca Faz Nada por Acaso

Existe uma frase muito conhecida entre veteranos de mainframe:

"Se o CICS possui dois comandos diferentes, existe um excelente motivo para isso."

Essa regra vale praticamente para tudo.

READ e READNEXT.

LINK e XCTL.

SYNCPOINT e ROLLBACK.

ENQ e DEQ.

TSQ e TDQ.

Nada foi criado por acaso.

Na década de 1970, memória era absurdamente cara.

Discos eram lentos.

CPU custava milhões de dólares.

Era impossível desperdiçar recursos.

Por isso os engenheiros da IBM criaram estruturas especializadas.

Cada uma fazia apenas aquilo em que era excelente.

E continua funcionando assim cinquenta anos depois.


Capítulo 2 — O Arquivo Secreto da Investigação

Imagine um detetive investigando um grande roubo.

Todos os dias ele recebe novas informações.

Fotografias.

Depoimentos.

Mapas.

Digitais.

Relatórios.

Ele não pode simplesmente jogar tudo fora após ler.

Muito menos enviar imediatamente ao juiz.

Ele precisa voltar inúmeras vezes.

Comparar evidências.

Adicionar observações.

Modificar hipóteses.

Esse arquivo secreto é exatamente uma TSQ.

Ela guarda informações temporárias.

Permite consultas infinitas.

Aceita alterações.

Nada desaparece até que alguém mande apagar.


TSQ é uma memória temporária extremamente inteligente

Ela permite:

✔ escrever

✔ ler

✔ alterar

✔ reler

✔ apagar

Quantas vezes forem necessárias.

Ela funciona quase como um pequeno banco de dados temporário.


Capítulo 3 — A Esteira da Delegacia

Agora imagine outra cena.

Chegam milhares de boletins de ocorrência.

Cada um precisa seguir imediatamente para outro departamento.

Ninguém volta para consultá-los.

Ninguém altera o conteúdo.

Ninguém lê novamente.

Eles entram.

São processados.

Desaparecem.

Essa é exatamente a filosofia da TDQ.

Ela não existe para guardar.

Ela existe para transportar.

É praticamente uma esteira de produção.


O Grande Segredo

Muitos iniciantes acreditam que a diferença entre TSQ e TDQ é apenas técnica.

Na verdade...

A diferença é filosófica.

TSQ pergunta:

"Você ainda precisará desta informação?"

TDQ pergunta:

"Você terminou de usá-la?"

Essas duas perguntas definem praticamente toda a arquitetura de inúmeras aplicações bancárias.


Capítulo 4 — A Anatomia da TSQ

Vamos abrir essa caixa preta.

Uma TSQ é composta por uma sequência de registros.

Algo parecido com isto:

ITEM 1
CPF

ITEM 2
Nome

ITEM 3
Saldo

ITEM 4
Limite

ITEM 5
Agência

Cada registro recebe um número chamado ITEM.

E aqui aparece uma enorme vantagem.

Você pode pedir diretamente:

Leia o ITEM 4

Sem precisar ler:

1

2

3

4

Isso é chamado de:

Random Access

(acesso aleatório)

É parecido com abrir um livro diretamente na página 218.


TSQ também lê em sequência

Ela também consegue fazer:

1

↓

2

↓

3

↓

4

↓

5

Ou seja...

Possui os dois mundos.

Acesso direto.

Ou sequencial.

Essa flexibilidade explica por que ela é tão utilizada em aplicações interativas.


Capítulo 5 — Como Funciona uma TDQ

Agora imagine uma fila de embarque em um aeroporto.

A pessoa entra.

Chega sua vez.

Passa pelo portão.

Nunca mais volta para a fila.

É exatamente isso.

Registro 1

↓

Registro 2

↓

Registro 3

↓

Registro 4

Quando um registro é lido...

Ele desaparece.

Não existe UPDATE.

Não existe REWRITE.

Não existe ITEM.

Não existe voltar.


Curiosidade Bellacosa ☕

Você sabia que muitos sistemas bancários antigos geravam milhões de registros de auditoria diariamente usando TDQs?

Se utilizassem TSQs para isso...

O armazenamento do CICS cresceria continuamente, consumindo recursos preciosos.

Foi justamente para evitar esse desperdício que a TDQ nasceu.

Ela "come" os registros conforme eles são processados.


Capítulo 6 — O Empréstimo Bancário

Vamos acompanhar uma situação real.

Carlos deseja financiar um automóvel.

Tela 1

Dados pessoais.

Tela 2

Endereço.

Tela 3

Renda.

Tela 4

Garantias.

Tela 5

Confirmação.

Enquanto Carlos navega...

Nada vai para o Db2.

Nada vai para VSAM.

Tudo permanece em uma TSQ.

Se ele voltar da tela cinco para a dois...

Os dados continuam lá.

Inclusive podendo ser modificados.

É exatamente por isso que aplicações de múltiplas telas adoram TSQs.


Capítulo 7 — O Caixa Eletrônico

Agora outro cenário.

São duas horas da manhã.

Milhares de caixas eletrônicos continuam funcionando.

Cada saque gera um registro.

ATM

↓

TDQ

↓

Batch Noturno

↓

Sistema Contábil

Quando o batch lê...

O registro desaparece.

Acabou.

Não faz sentido mantê-lo.

Ele cumpriu sua missão.


Easter Egg Nº 1 🕵️

Nas histórias policiais dos anos 1950 existia sempre uma sala chamada:

Arquivo Morto.

A TDQ seria exatamente isso.

Depois que o investigador utiliza uma informação...

Ela sai definitivamente da mesa.

Já a TSQ é a pasta que continua aberta sobre o escritório durante toda a investigação.


Capítulo 8 — A Diferença que Decide Arquiteturas

Imagine construir um sistema de internet banking.

Se você usar TDQ para guardar dados das telas...

O cliente aperta "Voltar".

Os dados sumiram.

Desastre.

Agora imagine utilizar TSQ para registrar milhões de logs.

Todos ficarão armazenados.

O consumo de armazenamento crescerá rapidamente.

Outro desastre.

Percebe?

Não existe estrutura melhor.

Existe estrutura correta.


Capítulo 9 — A Relação com Outros Comandos do CICS

Nenhum comando vive sozinho.

TSQ conversa naturalmente com:

  • LINK

  • XCTL

  • COMMAREA

  • HANDLE CONDITION

  • HANDLE ABEND

  • SYNCPOINT

Imagine:

Programa A

LINK

Programa B

TSQ

Programa C

LINK

TSQ

Diversos programas podem consultar a mesma informação temporária enquanto a lógica da aplicação continua.


Já TDQ normalmente aparece ligada a:

  • processamento batch

  • geração de logs

  • auditoria

  • interfaces

  • integração entre sistemas

É quase uma ponte entre o mundo online e o mundo batch.


Capítulo 10 — Os Dois Tipos de TDQ

Poucos livros explicam isso para iniciantes.

Existem duas categorias.

Intra-partition

Tudo acontece dentro do próprio CICS.

É extremamente rápida.

Ideal para comunicação interna.


Extra-partition

Conecta o CICS ao mundo externo.

Pode gravar em:

  • datasets

  • impressoras

  • arquivos

  • sistemas externos

É como uma porta de saída do CICS.


Curiosidade Histórica

Antes do IBM MQ dominar muitos ambientes corporativos, inúmeras integrações eram realizadas utilizando TDQs.

Durante décadas elas foram verdadeiras "mensageiras" do processamento batch.

Muitos bancos ainda utilizam esse mecanismo hoje.


Capítulo 11 — Performance

Uma pergunta frequente.

Qual é mais rápida?

A resposta correta é:

Depende do problema.

TSQ faz muito mais.

Ela:

  • altera

  • regrava

  • relê

Logo...

Possui mais operações.

TDQ é mais simples.

Escreveu.

Leu.

Removeu.

Por isso consegue ser extremamente eficiente para fluxos sequenciais.


Capítulo 12 — O Que Acontece em Caso de Erro?

Aqui aparece outro detalhe interessante.

Imagine:

Programa gravou informações na TSQ.

Ocorreu um ABEND.

Dependendo da forma como a fila foi definida (recoverable ou não), ela pode participar da Unidade de Trabalho (UOW) do CICS e ser afetada por um SYNCPOINT ROLLBACK.

Esse comportamento é controlado pela configuração do ambiente e é um tema importante para arquiteturas críticas.

O mesmo vale para TDQs: o comportamento de recuperação varia conforme o tipo da fila e sua definição administrativa.

É por isso que arquitetos CICS sempre conversam com administradores antes de decidir qual fila utilizar.


Capítulo 13 — Os Erros que Todo Iniciante Comete

Erro 1

Guardar sessão do usuário em TDQ.

Resultado:

Nada funciona ao voltar de tela.


Erro 2

Guardar logs em TSQ.

Resultado:

Consumo enorme de armazenamento.


Erro 3

Nunca apagar TSQs.

Resultado:

Acúmulo desnecessário de filas temporárias.


Erro 4

Esperar alterar um registro da TDQ.

Não existe UPDATE.

Nem REWRITE.


Erro 5

Achar que COMMAREA substitui TSQ.

Não substitui.

COMMAREA é excelente para transportar dados entre programas na mesma transação.

TSQ é melhor quando a informação precisa permanecer disponível durante várias etapas ou quando seu volume excede o que é conveniente manter na COMMAREA.


Dicas de Ouro para Entrevistas

Quando o entrevistador perguntar:

"Quando usar TSQ?"

Nunca responda apenas:

"Quando preciso guardar dados."

Diga:

"Quando preciso manter informações temporárias disponíveis para múltiplas leituras, possíveis atualizações e acesso por item durante o processamento da aplicação."


Quando perguntarem:

"Quando usar TDQ?"

Responda:

"Quando os dados representam um fluxo de processamento sequencial e devem ser consumidos apenas uma vez, como logs, auditorias e interfaces batch."

Essa resposta demonstra que você compreendeu a filosofia por trás de cada estrutura, não apenas a sintaxe.


Easter Egg Nº 2 ☕

Observe as iniciais:

Temporary Storage Queue

TSQ

A palavra importante não é Queue.

É Storage.

Ela nasceu para armazenar.

Já em:

Transient Data Queue

TDQ

A palavra importante é Transient.

Ela nasceu para passar, transitar, seguir viagem.

Os próprios nomes entregam sua verdadeira natureza.


Curiosidade IBM

Nos grandes bancos é comum encontrar milhares de TSQs e TDQs sendo utilizadas simultaneamente por aplicações diferentes. O CICS gerencia tudo isso de forma transparente, mantendo isolamento entre transações e garantindo alto desempenho mesmo sob cargas gigantescas.


Bellacosa Insight ☕

Existe uma frase que poderia estar gravada na porta de todo CPD:

"Dados que ainda contam uma história pertencem à TSQ. Dados que já cumpriram sua missão pertencem à TDQ."

Essa simples ideia resume décadas de experiência em arquitetura CICS.


O Veredito Final

No fim da investigação, o jovem programador percebeu que o verdadeiro mistério nunca foi descobrir como gravar dados em uma fila, mas entender por que o CICS oferece duas filas com comportamentos tão distintos.

A TSQ é o caderno do investigador: guarda pistas, aceita anotações, permite voltar páginas e revisar hipóteses até que o caso seja encerrado. Ela representa o estado temporário da aplicação, preservando contexto, formulários, cálculos intermediários e informações que ainda podem mudar.

A TDQ, por outro lado, é a esteira do departamento de evidências: cada registro segue seu caminho, é analisado uma única vez e então desaparece. É a ferramenta ideal para logs, auditorias, integração com processamento batch e qualquer fluxo em que a informação deve ser consumida sem possibilidade de retorno.

Dominar essa diferença é um dos ritos de passagem de todo desenvolvedor COBOL/CICS. Afinal, escrever um programa que funciona é importante; escrever um programa que escolhe a estrutura correta para cada tipo de dado é o que separa o iniciante do profissional capaz de manter aplicações que movimentam bilhões de reais todos os dias.

E, como em toda boa história noir dos anos 1950, o maior segredo estava escondido à vista de todos: as duas filas sempre estiveram lado a lado, mas apenas quem compreende sua natureza sabe qual delas abrir quando uma nova transação bate à porta do CICS.


domingo, 19 de agosto de 2018

IBM Mainframe Discovery : Capítulo VIII — A Metrópole das Transações Infinitas

 

Bellacosa Mainframe apresenta o ibm mainframe parte viii

☕ Um Café no Bellacosa Mainframe

Capítulo VIII — A Metrópole das Transações Infinitas

CICS: A Cidade que Nunca Dorme e Atende Milhões de Viajantes ao Mesmo Tempo 


QUINTA REGRA DAS GRANDES CIVILIZAÇÕES

Nunca construa uma cidade onde exista apenas um caixa.

Porque cedo ou tarde...

...todos chegarão ao mesmo tempo.

Imagine uma cidade espacial.

Ela possui:

  • cinquenta milhões de habitantes;

  • milhares de hotéis;

  • bancos;

  • hospitais;

  • aeroportos;

  • restaurantes;

  • museus;

  • lojas;

  • centros de pesquisa.

Agora imagine que todos resolvem fazer alguma operação exatamente às nove horas da manhã.

Consultar saldo.

Comprar passagem.

Reservar hotel.

Pagar contas.

Transferir dinheiro.

Comprar ações.

Se existir apenas um atendente...

a cidade para.

Foi exatamente esse problema que a IBM resolveu em 1968.

O nome da solução?

Customer Information Control System.

Ou simplesmente...

CICS.


O Maior Balcão de Atendimento da Galáxia

Esqueça computadores.

Imagine o maior centro de atendimento já construído.

Não existem:

10 caixas.

Nem 100.

Nem mil.

Existem milhares de atendimentos acontecendo simultaneamente.

Cada cliente acredita estar sendo atendido sozinho.

Mas, nos bastidores...

todos compartilham praticamente a mesma infraestrutura.

Essa é a verdadeira magia do CICS.


Antes do CICS

Voltemos algumas décadas.

Imagine um banco.

Cada cliente entra.

O gerente pega um enorme livro.

Calcula tudo manualmente.

Entrega o resultado.

Agora multiplique isso por:

dez milhões de clientes.

Não funciona.

Foi então que surgiu uma pergunta revolucionária.

"E se centenas de milhares de pessoas utilizassem o mesmo computador ao mesmo tempo?"

Hoje parece óbvio.

Na década de 1960 parecia ficção científica.


A Cidade Nunca Fecha

Uma característica curiosa do Batch é que ele gosta de trabalhar sozinho.

Executa.

Termina.

Vai embora.

O CICS pensa diferente.

Ele nunca fecha as portas.

Nunca.

Enquanto existir alguém querendo realizar uma transação...

ele permanece acordado.

É uma cidade que nunca dorme.


A Recepcionista Galáctica

Imagine entrar num gigantesco hotel.

A recepcionista pergunta:

— Bom dia.

Qual o seu quarto?

Você responde.

Ela consulta o sistema.

Entrega a chave.

Tudo acontece em segundos.

O CICS faz exatamente isso.

Recebe pedidos.

Encaminha ao programa correto.

Entrega a resposta.

Tudo em frações de segundo.

Segundo Wilhelm G. Spruth, o CICS foi projetado para oferecer processamento transacional extremamente eficiente, permitindo que um único sistema atendesse simultaneamente milhares de usuários interativos.


Uma Cidade Dentro da Nave

Imagine agora que a USS Enterprise abriga uma cidade inteira.

Existem:

padarias.

correios.

escolas.

restaurantes.

hospitais.

Todos funcionando ao mesmo tempo.

Mas existe apenas uma prefeitura.

Essa prefeitura é o CICS.

Ela coordena tudo.


O Grande Equívoco do Padawan

Todo iniciante imagina:

Um usuário.

Um programa.

Uma CPU.

Fim.

Na prática...

isso seria absurdamente ineficiente.

No CICS acontece algo completamente diferente.

Milhares de usuários compartilham poucos recursos.

É como um gigantesco sistema de transporte público.


As Transações São Passageiros

Imagine uma estação espacial.

Milhares de pessoas entram.

Cada uma deseja chegar a um destino diferente.

Algumas vão ao banco.

Outras ao hospital.

Outras ao museu.

No CICS...

cada passageiro representa uma:

Transação.

Ela possui:

nome.

origem.

destino.

prioridade.

tempo de vida.

Quando termina...

desaparece.


O Programa Não Mora na Memória

Esta talvez seja uma das maiores surpresas.

Um programa COBOL no CICS normalmente não permanece executando eternamente.

Ele é chamado.

Executa rapidamente.

Entrega o resultado.

Libera recursos.

Vai embora.

É quase como um elevador.

Chega.

Recebe passageiros.

Sobe.

Desce.

Fica disponível novamente.


O Concierge da Cidade

Imagine um concierge extremamente eficiente.

Ele conhece todos os departamentos.

Ao receber um pedido...

encaminha imediatamente ao profissional correto.

O CICS faz exatamente isso.

Ele recebe uma transação e encontra rapidamente o programa responsável por executá-la.


COMMAREA — A Mochila do Viajante

Agora imagine um turista.

Ele caminha pela cidade carregando apenas uma pequena mochila.

Ali estão:

passaporte.

mapa.

dinheiro.

documentos.

Quando entra em outro prédio...

leva sua mochila consigo.

Essa mochila chama-se:

COMMAREA.

Ela transporta as informações entre programas CICS.

Durante décadas foi o principal mecanismo para troca de dados entre aplicações.


CHANNEL e CONTAINER — Os Contêineres Espaciais

Com o tempo...

os turistas começaram a transportar muito mais bagagem.

A pequena mochila ficou insuficiente.

Então surgiram:

CHANNELS

e

CONTAINERS.

Imagine enormes contêineres de carga.

Agora qualquer quantidade de informação pode viajar entre programas de forma muito mais organizada.

É a evolução natural da COMMAREA.


O Mapa da Cidade

Como um cliente encontra seu destino?

Através do:

BMS

(Basic Mapping Support).

Imagine um mapa eletrônico.

Cada tela corresponde a um prédio.

Cada campo representa uma sala.

Cada tecla possui um significado.

O BMS transforma a conversa entre terminal e programa em algo organizado e previsível.


O Tradutor Universal

Os terminais 3270 falam um idioma próprio.

O COBOL fala outro.

O usuário fala outro.

O BMS funciona como um tradutor universal.

Ele converte telas em dados.

Dados em telas.

Tudo automaticamente.


Pseudo-Conversação: O Segredo da Ilusão

Chegamos a um dos conceitos mais brilhantes do Mainframe.

Imagine um garçom.

Você faz um pedido.

Ele anota.

Vai embora.

Atende outras mesas.

Quando sua comida fica pronta...

ele retorna exatamente para você.

Parece que ficou o tempo inteiro ao seu lado.

Mas não ficou.

O CICS faz exatamente isso.

Esse modelo chama-se:

Pseudo-Conversação.

Após enviar uma tela ao usuário, a tarefa termina e libera recursos.

Quando o cliente responde, uma nova execução começa utilizando o estado previamente armazenado.

Segundo Spruth, esse modelo foi um dos fatores responsáveis pela enorme escalabilidade do CICS.


O Milagre da Multiplicação

Imagine possuir apenas dez garçons.

Mesmo assim...

atender cinco mil clientes.

Parece impossível.

Não no CICS.

Como cada tarefa permanece ativa apenas durante poucos milissegundos...

os mesmos recursos atendem milhares de pessoas.


TSQ e TDQ — Os Armários da Estação

Imagine que um viajante precise guardar sua bagagem.

Existem duas opções.

Um armário temporário.

Ou uma caixa de despacho.

No CICS encontramos exatamente isso.

TSQ

Temporary Storage Queue.

Permite gravar informações temporárias que podem ser lidas diversas vezes.

TDQ

Transient Data Queue.

Mais parecida com uma esteira de bagagens.

Os dados seguem adiante.

Normalmente são consumidos apenas uma vez.


O Relógio da Cidade

Imagine um turista parado diante do caixa por meia hora.

Todos atrás dele ficam esperando.

No CICS isso seria um desastre.

Por isso existe controle rigoroso de tempo.

Cada transação deve ser:

curta.

rápida.

objetiva.

Quanto menor sua duração...

mais usuários podem ser atendidos.


O Cofre da Cidade

Imagine agora que duas pessoas tentam retirar o mesmo dinheiro da mesma conta exatamente no mesmo instante.

Quem ganha?

Nenhum dos dois.

Primeiro o sistema organiza.

Depois libera.

O CICS trabalha em conjunto com o gerenciador de recuperação para garantir integridade das transações.

Esse compromisso com consistência é um dos pilares das aplicações críticas executadas sobre a plataforma.


A Cidade Conversa com Todo Mundo

O CICS nunca viveu isolado.

Ele conversa com:

Db2.

IMS.

MQ.

VSAM.

Web Services.

REST APIs.

Java.

Node.js.

Python.

Linux.

Hoje ele continua evoluindo.

Mas sua essência permanece.

Processar transações.

Rapidamente.

Com segurança.

Sem interrupções.


CICS e o COBOL

Existe uma pergunta que todo Padawan faz.

"Quem chama quem?"

Na verdade...

o COBOL trabalha como um excelente especialista.

O CICS organiza.

Recebe o cliente.

Controla recursos.

Gerencia transações.

Depois entrega o trabalho ao programa COBOL.

Quando tudo termina...

o COBOL devolve o controle.

É quase uma dança cuidadosamente ensaiada.


O Que Mudou Desde 2010?

Desde a publicação do relatório de Spruth, o universo CICS evoluiu enormemente.

Hoje encontramos:

  • APIs REST nativas.

  • JSON.

  • XML.

  • Web Services.

  • JVM Server.

  • OSGi.

  • Liberty Profile.

  • Node.js.

  • Integração com OpenShift.

  • z/OS Connect.

  • Microsserviços.

  • Observabilidade moderna.

Mesmo assim...

um programa COBOL escrito há décadas ainda pode continuar trabalhando ao lado dessas tecnologias.

Essa talvez seja a maior demonstração da elegância da arquitetura IBM Z.


Uma Curiosa Filosofia

Existe uma frase que resume o espírito do CICS.

Nunca mantenha recursos ocupados enquanto alguém está pensando.

Enquanto o usuário decide qual opção escolher...

o programa já terminou.

A memória foi liberada.

A CPU voltou para outro cliente.

É uma filosofia simples.

Mas revolucionária.


Curiosidades do Diário de Bordo

🚀 O CICS processa bilhões de transações diariamente em instituições financeiras, governos, seguradoras e empresas de transporte ao redor do mundo.

🌌 A pseudo-conversação foi uma das ideias mais elegantes da engenharia de software corporativo, permitindo enorme escalabilidade com consumo mínimo de recursos.

📺 O BMS separa a lógica de apresentação da lógica de negócio, conceito que muitos frameworks web modernos adotariam décadas depois.

📦 COMMAREA, TSQ e TDQ tornaram-se componentes clássicos do desenvolvimento CICS e continuam fazendo parte do vocabulário de praticamente todo programador COBOL online.


Diário de Bordo do Padawan COBOL

Antes de deixar a metrópole das transações, registre estas coordenadas no seu Holocron Técnico:

✅ O CICS não é apenas um monitor transacional; ele é um verdadeiro sistema operacional para aplicações online.

✅ A pseudo-conversação é um dos principais segredos da escalabilidade do CICS, liberando recursos enquanto o usuário interage.

✅ O COBOL executa a lógica de negócio, enquanto o CICS coordena usuários, transações, recursos e recuperação.

✅ Grandes cidades não funcionam porque possuem ruas largas; funcionam porque possuem organização. O CICS aplica exatamente essa filosofia ao processamento de milhões de transações.


Missão Seguinte

No próximo capítulo, embarcaremos rumo ao PR/SM, às LPARs e ao universo da virtualização.

Descobriremos que o IBM Z já dividia um único computador em dezenas de máquinas independentes quando boa parte da indústria ainda acreditava que "virtualização" era apenas um conceito acadêmico. Veremos como uma única nave pode abrigar várias civilizações tecnológicas trabalhando lado a lado, sem interferirem umas nas outras — uma verdadeira federação galáctica dentro de um único computador.

☕ Um Café no Bellacosa Mainframe

O Guia Galáctico do IBM Z

Dezoito capítulos e uma conclusão reunidos em um painel interativo. Escolha uma missão, abra no visor e continue explorando diretamente no artigo original.

Não entre em pânico: se o Blogger impedir a exibição dentro do iframe, use “Abrir artigo”. Os links diretos continuam visíveis para leitores e motores de busca.
01

Capítulo I — Não Entre em Pânico!

Leia no visor ou abra a publicação original.

Abrir artigo
02

Capítulo II — A Planta da Nave Mais Duradoura da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
03

Capítulo III — A Nave Que Se Recusa a Explodir

Leia no visor ou abra a publicação original.

Abrir artigo
04

Capítulo IV — A Sala dos Cofres Cósmicos

Leia no visor ou abra a publicação original.

Abrir artigo
05

Capítulo V — A Frota Invisível do Transporte Interestelar

Leia no visor ou abra a publicação original.

Abrir artigo
06

Capítulo VI — O Grande Maestro Invisível

Leia no visor ou abra a publicação original.

Abrir artigo
07

Capítulo VII — O Grande Terminal de Embarque da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
08

Capítulo VIII — A Metrópole das Transações Infinitas

Leia no visor ou abra a publicação original.

Abrir artigo
09

Capítulo IX — A Federação das Naves Invisíveis

Leia no visor ou abra a publicação original.

Abrir artigo
10

Capítulo X — A Consciência Coletiva da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
11

Capítulo XI — O Almirante Invisível da Frota

Leia no visor ou abra a publicação original.

Abrir artigo
12

Capítulo XII — A Biblioteca Infinita da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
13

Capítulo XIII — O Serviço Postal Mais Confiável da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
14

Capítulo XIV — O Jardim Secreto da Nave

Leia no visor ou abra a publicação original.

Abrir artigo
15

Capítulo XV — O Tradutor Universal da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
16

Capítulo XVI — A Fábrica Automática da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
17

Capítulo XVII — A Última Fronteira Nunca Foi o Espaço

Leia no visor ou abra a publicação original.

Abrir artigo
18

Capítulo XVIII — O Guia Nunca Terminou

Leia no visor ou abra a publicação original.

Abrir artigo
19

Conclusão — Não Entre em Pânico... A Jornada Está Apenas Começando

Leia no visor ou abra a publicação original.

Abrir artigo

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.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...