☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta CICS Transaction Server. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta CICS Transaction Server. Mostrar todas as mensagens

sexta-feira, 15 de maio de 2020

CICS Workload Management (WLM) — A Sociedade do Anel e o Guardião Invisível que Decide o Destino das Transações

 

Bellacosa Mainframe apresenta o cics workload management wlm

☕ Um Café no Bellacosa Mainframe

CICS Workload Management (WLM) — A Sociedade do Anel e o Guardião Invisível que Decide o Destino das Transações

"Um bom rei não governa apenas pela força. Ele sabe onde cada recurso deve ser empregado para que todo o reino prospere."

No universo de O Senhor dos Anéis, poucos personagens percebiam que a guerra contra Sauron não seria vencida apenas por espadas, magia ou coragem. O verdadeiro desafio era administrar recursos extremamente limitados.

Havia poucos exércitos.
Poucos cavalos.
Pouca comida.
Pouco tempo.

Cada decisão precisava colocar os recursos certos no lugar certo.

No mundo do IBM Mainframe, acontece exatamente a mesma coisa.

Milhares de programas executam simultaneamente.

Todos querem CPU.

Todos querem memória.

Todos querem acesso ao disco.

Todos querem prioridade.

Se cada aplicação decidisse sozinha quando executar, o resultado seria um verdadeiro caos, semelhante aos exércitos de Mordor atravessando os portões de Minas Tirith ao mesmo tempo.

É exatamente para impedir esse caos que existe um dos componentes mais inteligentes já criados pela IBM:

Workload Manager (WLM)

Talvez seja um dos softwares mais brilhantes do z/OS e, curiosamente, um dos menos conhecidos pelos programadores COBOL iniciantes.

Hoje faremos uma longa viagem pela Terra Média do Mainframe para entender por que o WLM é considerado o grande estrategista invisível do sistema operacional.

Pegue seu café.

A viagem começa agora.


Capítulo I — O Reino onde Todos Querem a Mesma CPU

Imagine um enorme banco brasileiro.

São exatamente 9 horas da manhã.

Milhões de clientes começam a acessar:

  • Internet Banking

  • Aplicativo Mobile

  • PIX

  • TED

  • Cartões

  • Caixa eletrônico

  • Agências

  • Open Finance

  • APIs

  • Débito automático

Ao mesmo tempo...

o departamento financeiro inicia:

  • fechamento contábil

A auditoria executa:

  • consultas gigantes

O RH imprime:

  • folhas de pagamento

O marketing gera:

  • relatórios

A segurança inicia:

  • varreduras

Os DBAs:

  • RUNSTATS

  • REORG

  • BACKUP

Enquanto isso...

milhares de programas COBOL continuam executando normalmente dentro do CICS.

Todos querem exatamente os mesmos recursos.

Como decidir quem recebe CPU primeiro?


A primeira ideia (que não funciona)

Seria muito simples dizer:

Quem chegou primeiro executa primeiro.

Parece justo.

Mas imagine o seguinte.

Um relatório interno começou um segundo antes de um cliente tentar sacar dinheiro.

O relatório consome CPU durante vários segundos.

O saque precisa esperar.

Resultado?

O cliente pensa que o caixa eletrônico travou.

Na prática, o problema nunca foi falta de CPU.

Foi falta de inteligência para decidir quem deveria utilizá-la primeiro.

Foi exatamente esse problema que deu origem ao WLM.


Capítulo II — O Conselho de Elrond

Na Sociedade do Anel, nenhuma decisão importante era tomada por apenas uma pessoa.

Existia um conselho.

No z/OS também existe um conselho.

Esse conselho chama-se:

Workload Manager.

Toda vez que milhares de tarefas competem pelos recursos do sistema, o WLM analisa a situação antes de distribuir o poder computacional disponível.

Ele não pergunta:

Quem pediu primeiro?

Ele pergunta:

Quem é mais importante para o negócio?

Essa pequena mudança de pensamento revolucionou completamente o gerenciamento de desempenho dos mainframes modernos.


O que realmente é o WLM?

Muitos iniciantes acreditam que o WLM distribui CPU.

Isso é apenas uma pequena parte.

Na realidade, o WLM administra praticamente toda a estratégia operacional do z/OS.

Ele acompanha continuamente:

  • utilização da CPU

  • memória

  • filas

  • tempo de resposta

  • tempo de espera

  • I/O

  • paging

  • dispatching

  • prioridades

  • utilização das regiões

  • cumprimento dos SLAs

Enquanto tudo isso acontece...

ele recalcula prioridades diversas vezes por segundo.

É quase como um grande computador de xadrez jogando milhares de partidas simultaneamente.


Capítulo III — Gandalf nunca envia todos para a mesma batalha

Imagine Gandalf recebendo notícias da guerra.

Ele possui apenas:

  • 100 cavaleiros

Mas existem cinco batalhas acontecendo ao mesmo tempo.

Como distribuir?

Ele poderia dizer:

"Cada batalha recebe vinte soldados."

Parece justo.

Mas seria uma decisão terrível.

Se Minas Tirith cair...

não importa que outra batalha tenha vencido.

O reino acabou.

Então Gandalf faz algo diferente.

Ele identifica qual batalha é crítica.

Depois envia a maior parte dos recursos para ela.

É exatamente isso que o WLM faz.


O conceito mais importante: prioridades de negócio

Esse talvez seja o maior choque para quem vem de outras plataformas.

No Windows ou Linux normalmente pensamos:

"Este processo possui prioridade alta."

No z/OS não.

O pensamento é completamente diferente.

O WLM pensa assim:

"Qual atividade gera mais valor para o negócio neste momento?"

Essa diferença muda tudo.


O fluxo completo do WLM

Podemos representar seu funcionamento da seguinte maneira:

Cliente

↓

Transação CICS

↓

Região CICS

↓

z/OS

↓

Workload Manager

↓

CPU

Memória

Disco

I/O

↓

Tempo de Resposta

Observe que o WLM não executa a aplicação.

Quem executa continua sendo:

  • CICS

  • Batch

  • Db2

  • IMS

O WLM apenas administra os recursos.

É como um maestro.

Ele nunca toca violino.

Mas sem ele a orquestra vira barulho.


Capítulo IV — As Classes da Sociedade

Uma das partes mais importantes do WLM chama-se:

Service Class

Imagine a Sociedade do Anel.

Cada membro possui uma função.

Frodo

Missão crítica.

Sam

Suporte essencial.

Aragorn

Alta prioridade.

Legolas

Ataque rápido.

Gimli

Combate pesado.

Merry e Pippin

Importantes, mas podem esperar alguns segundos em determinadas situações.

No WLM acontece exatamente isso.

Cada tipo de trabalho pertence a uma classe.

Exemplo:

PIX

Meta

200 ms

Importance 1


Saque ATM

Meta

300 ms

Importance 1


Consulta de saldo

Meta

800 ms

Importance 2


Extrato

Meta

2 segundos

Importance 3


Relatórios internos

Meta

30 segundos

Importance 5

Perceba uma curiosidade.

O WLM não pergunta:

"Quem possui prioridade máxima?"

Ele pergunta:

"Quem precisa cumprir determinada meta?"

Essa filosofia recebe o nome de:

Goal-Oriented Management


Curiosidade Bellacosa

O WLM foi um dos primeiros grandes exemplos de computação orientada a objetivos (goal-oriented computing), décadas antes de termos AIOps e sistemas inteligentes modernos.

Em vez de obedecer regras fixas, ele procura continuamente cumprir metas de negócio. É uma ideia que hoje aparece em plataformas de nuvem, orquestradores de containers e sistemas autônomos, mas que já fazia parte do z/OS há muitos anos.


Capítulo V — O Palantír do z/OS

Como o WLM sabe que alguém está sofrendo?

Ele observa tudo.

Literalmente tudo.

Entre centenas de indicadores, ele monitora:

  • utilização da CPU

  • filas

  • espera por I/O

  • uso da memória

  • paging

  • tempo médio

  • throughput

  • response time

  • velocity

  • dispatch delay

  • enfileiramentos

É como se o WLM tivesse um Palantír observando continuamente todo o reino.

Enquanto ninguém percebe...

ele está recalculando prioridades.


Importance

Além da meta existe outro conceito extremamente importante.

Importance.

Ela representa o peso daquele serviço.

Imagine duas aplicações.

As duas estão atrasadas.

As duas precisam de CPU.

Quem recebe primeiro?

Aquela cuja Importance é maior.

Normalmente encontramos níveis como:

Importance 1

Missão crítica.

Importance 2

Muito importante.

Importance 3

Importante.

Importance 4

Baixa prioridade.

Importance 5

Background.


O banco durante uma Black Friday

Vamos imaginar um cenário real.

CPU:

99%.

Milhões de acessos.

Ao mesmo tempo chegam:

  • PIX

  • consultas

  • investimentos

  • relatórios

  • backups

  • batch

  • monitoramento

Sem WLM...

todos brigam igualmente.

Resultado:

  • lentidão geral

  • clientes irritados

  • SLA perdido

  • prejuízo

Com WLM...

o sistema toma decisões inteligentes.

PIX continua rápido.

Saques continuam rápidos.

Cartões continuam rápidos.

Relatórios esperam.

Backups aguardam.

O cliente sequer percebe que a CPU está completamente ocupada.

Essa é uma das maiores virtudes do WLM: ele não faz milagres, mas faz escolhas inteligentes.


Capítulo VI — O mapa da Terra Média do CICS

Um ambiente CICS corporativo dificilmente possui apenas uma região.

É comum encontrarmos arquiteturas como:

Usuários

↓

TOR

↓

AOR1

↓

AOR2

↓

AOR3

↓

FOR

↓

Db2

Cada região possui suas características.

Algumas executam aplicações.

Outras fazem comunicação.

Outras gerenciam arquivos.

O WLM auxilia a manter esse ambiente equilibrado, trabalhando em conjunto com recursos do CICS e do z/OS para que nenhuma região se torne um gargalo permanente.


CICSPlex SM não é WLM

Este é um erro clássico em entrevistas.

Muitos candidatos confundem os dois produtos.

Na prática:

CICSPlex SM

Gerencia o ambiente CICS.

  • regiões

  • roteamento

  • administração

  • monitoramento

  • gerenciamento operacional

WLM

Gerencia os recursos do z/OS.

  • CPU

  • prioridades

  • objetivos

  • service classes

  • dispatching

Eles trabalham juntos.

Jamais competem.


O papel do Sysprog

O programador COBOL normalmente não altera políticas de WLM.

Quem faz isso costuma ser o System Programmer (Sysprog) ou o especialista em desempenho.

Ele define:

  • Service Policies

  • Service Classes

  • Goals

  • Importance

  • Workloads

  • Activation Policies

Depois ativa a política.

A partir desse momento o próprio z/OS ajusta continuamente a distribuição de recursos.


O WLM não cria CPU

Existe uma frase muito conhecida entre especialistas em performance:

"Nenhum software produz processadores do nada."

Se o ambiente possui vinte CPUs físicas e a demanda exige quarenta, o WLM não fará mágica.

Ele fará algo muito mais útil.

Garantirá que as aplicações essenciais sobrevivam primeiro.


RMF — O Cronista de Gondor

Depois de definir políticas, surge a pergunta:

Funcionou?

Quem responde é o RMF (Resource Measurement Facility).

Ele registra indicadores como:

  • utilização da CPU

  • Response Time

  • Velocity

  • Goal Achievement

  • Delays

  • Waits

É o RMF que mostra se as metas estabelecidas pelo WLM estão realmente sendo alcançadas.


SMF — O Livro Vermelho do Reino

Enquanto o RMF mede o desempenho, o SMF (System Management Facility) registra a história do sistema.

Cada evento importante deixa rastros.

Esses registros são usados para:

  • Capacity Planning

  • Engenharia de Performance

  • Auditorias

  • Estudos de tendência

  • Ajustes de WLM

  • Investigação de incidentes

  • Cumprimento de SLAs

Por isso, profissionais de performance frequentemente analisam registros SMF antes de propor qualquer alteração nas políticas de WLM.


Passo a passo: como um especialista ajusta o WLM

Embora o processo varie entre empresas, um fluxo típico é:

  1. Coletar dados com RMF e SMF para entender o comportamento real do ambiente.

  2. Identificar gargalos, verificando quais Service Classes não estão atingindo seus objetivos.

  3. Classificar os workloads de acordo com a importância para o negócio.

  4. Definir ou revisar Goals e Importance, alinhando-os aos SLAs.

  5. Criar ou atualizar a Service Policy utilizando os painéis ISPF ou ferramentas como o z/OSMF.

  6. Ativar a política em um momento controlado.

  7. Monitorar continuamente o impacto das mudanças.

  8. Repetir o ciclo, pois o ambiente de produção evolui constantemente.

O WLM não é configurado uma única vez para sempre; ele acompanha a evolução do negócio.


Dicas para um Programador COBOL Padawan

Se você está começando no mundo do CICS, lembre-se destas lições:

  • Nem toda lentidão vem do seu programa. Às vezes o código está aguardando CPU, I/O ou recursos disputados.

  • Aprenda os conceitos de Service Class, Goal, Importance e Service Policy. Eles aparecem com frequência em entrevistas e em projetos corporativos.

  • Conheça o básico de RMF e SMF. Mesmo sem administrá-los, entender seus relatórios ajuda a conversar com equipes de infraestrutura.

  • Escreva programas eficientes. Um COBOL bem otimizado reduz consumo de CPU e facilita o trabalho do WLM.

  • Pense sempre no negócio. Uma transação crítica deve ser projetada para responder rapidamente, pois ela provavelmente estará associada às Service Classes mais importantes.


Curiosidades

  • O WLM é considerado um dos pilares do conceito de autonomic computing da IBM, pois toma decisões de forma automática para cumprir metas de desempenho.

  • Muitas ideias usadas atualmente em plataformas de computação em nuvem, como priorização dinâmica de cargas e gerenciamento por objetivos, já estavam presentes no z/OS décadas antes.

  • Em ambientes financeiros, uma política de WLM bem ajustada pode representar milhões de reais economizados ao evitar a necessidade de ampliar capacidade apenas para absorver picos temporários.

  • O WLM não conhece o código COBOL; ele enxerga serviços, metas e comportamento do sistema. Isso reforça a importância de integrar desenvolvimento, operações e engenharia de performance.


Easter Egg Bellacosa Mainframe

Imagine que o Anel Único representa a CPU disponível.

Todos querem usá-lo.

Saruman deseja o Anel para dominar a Terra-média.

Sauron deseja o Anel para conquistar todos os povos.

Boromir acredita que poderia utilizá-lo para proteger Gondor.

Mas Gandalf compreende uma verdade fundamental:

O poder absoluto entregue à pessoa errada destrói todo o reino.

O WLM pensa exatamente assim.

Ele nunca entrega todos os recursos para quem simplesmente os solicita primeiro.

Ele entrega recursos para quem mantém o reino funcionando.

No Mainframe, o verdadeiro herói não é o programa que consome mais CPU.

É aquele que entrega valor ao negócio no momento certo, usando apenas os recursos necessários.

Assim como a Sociedade do Anel venceu porque cada integrante cumpriu sua missão, um ambiente CICS de alta disponibilidade permanece saudável porque CPU, memória e I/O são distribuídos com inteligência. O WLM é o guardião silencioso dessa ordem: raramente aparece nos holofotes, mas é um dos principais responsáveis por manter o "reino" do IBM Z funcionando de forma estável, eficiente e preparado para enfrentar até as cargas mais intensas.

terça-feira, 20 de novembro de 2018

CICS MQ Bridge : Quando um Programador Descobre que um MQPUT Pode Executar um Programa COBOL sem Abrir um Único Terminal 3270...

 

Bellacosa Mainframe apresenta cics mq bridge

☕ Um Café no Bellacosa Mainframe

CICS MQ Bridge sem Mistérios para Programadores COBOL

Quando um Programador Descobre que um MQPUT Pode Executar um Programa COBOL sem Abrir um Único Terminal 3270... e Percebe que Existe um Tradutor Universal Trabalhando nos Bastidores do Mainframe

"No universo, existem três tipos de pessoas: as que acham que o MQ conversa diretamente com o COBOL, as que sabem que existe um CICS no meio do caminho... e aquelas que descobriram o MQ Bridge e nunca mais olharam uma fila da mesma forma."


Introdução — O Dia em que o COBOL Conheceu a Nuvem

Imagine que você é um programador COBOL iniciante.

Você acabou de aprender:

  • JCL

  • VSAM

  • CICS

  • COMMAREA

  • EXEC CICS LINK

  • RETURN

  • SEND MAP

  • RECEIVE MAP

Tudo faz sentido.

O usuário abre um terminal 3270.

Digita dados.

O CICS recebe.

Seu programa COBOL executa.

Retorna outra tela.

Fim.

Então alguém aparece na reunião e diz:

"Precisamos que esse programa seja chamado por um microsserviço rodando Kubernetes."

Você responde:

"Mas... onde fica o terminal?"

Silêncio.

Ninguém responde.

Porque...

não existe terminal.

É aqui que começa uma das arquiteturas mais inteligentes já criadas dentro do ecossistema IBM Z:

CICS MQ Bridge.

Hoje vamos fazer uma viagem ao estilo Guia do Mochileiro das Galáxias, descobrindo como um simples MQPUT consegue acordar um programa COBOL escrito há trinta anos sem modificar praticamente uma linha de código.

Pegue seu café.

Ajuste seu terminal 3270.

E não esqueça sua toalha.


Capítulo 1 — Antes do MQ Bridge Existia Apenas o Terminal

Durante décadas o fluxo era extremamente simples.

Usuário

↓

Terminal 3270

↓

CICS

↓

Programa COBOL

↓

Banco de Dados

O terminal era praticamente parte do programa.

Quando alguém digitava ENTER...

o CICS criava uma Task.

Montava o ambiente.

Criava o EIB.

Criava a COMMAREA.

Chamava a Transaction.

O COBOL trabalhava.

Era um mundo perfeito.

Até aparecerem...

  • Java

  • Linux

  • Windows

  • Web Services

  • REST

  • Smartphones

  • APIs

  • Kubernetes

  • OpenShift

  • Microsserviços

Todos eles queriam conversar com o COBOL.

Nenhum deles sabia falar 3270.


O Grande Problema

Imagine tentar conversar com um japonês usando apenas latim medieval.

Não importa o quanto ambos sejam inteligentes.

Sem tradutor...

não existe comunicação.

O mesmo acontecia aqui.

Java
        X
COBOL CICS

Java entende objetos.

REST entende JSON.

MQ entende mensagens.

O COBOL espera uma COMMAREA.

Quem faz essa tradução?

O MQ Bridge.


O MQ Não Executa Programas

Esse é um dos maiores equívocos dos iniciantes.

Muita gente imagina:

MQ

↓

Programa COBOL

Isso nunca acontece.

O MQ apenas transporta mensagens.

Ele não conhece:

  • EXEC CICS

  • COMMAREA

  • EIB

  • TCTUA

  • TIOA

  • MAPSET

  • BMS

Ele é apenas um excelente carteiro.

O inteligente da história é o CICS.


Pense no MQ Como os Correios

Você escreve uma carta.

Os Correios não sabem o conteúdo.

Eles apenas entregam.

Da mesma forma:

Aplicação

↓

MQPUT

↓

Fila

↓

MQGET

O MQ não interpreta.

Não executa.

Não calcula.

Não valida.

Ele apenas entrega.

Essa simplicidade é justamente sua maior força.


O Surgimento do Bridge

Alguém na IBM fez uma pergunta brilhante.

"E se criarmos um intérprete?"

Um componente capaz de dizer:

"Recebi uma mensagem MQ.
Vou fingir que ela veio de um terminal."

Nascia o Bridge Facility.


A Arquitetura Completa

Vamos ampliar o diagrama.

Cliente

↓

MQPUT

↓

Request Queue

↓

Trigger

↓

CKTI

↓

ATTACH

↓

CKBR

↓

Bridge Facility

↓

EXEC CICS

↓

Programa COBOL

↓

COMMAREA

↓

MQPUT

↓

Reply Queue

↓

Cliente

Parece longo.

Mas acontece em poucos milissegundos.


Capítulo 2 — O Primeiro Passo: MQPUT

Tudo começa com um simples comando.

MQPUT

Esse comando grava uma mensagem.

Mas a mensagem não contém apenas dados.

Ela possui uma identidade.

É como um envelope.

Dentro dele existem várias informações.


O Envelope Inteligente

Imagine enviar uma encomenda.

No envelope existe:

Destinatário

Remetente

Prioridade

Resposta

Conteúdo

No MQ ocorre exatamente o mesmo.

Quem guarda essas informações?

MQMD.


MQMD — O RG da Mensagem

MQMD significa:

Message Descriptor

Ele possui dezenas de campos.

Entre eles:

Message ID

Correlation ID

Persistence

Priority

Expiry

ReplyToQ

ReplyToQMgr

O campo mais importante para o Bridge costuma ser:

ReplyToQ

É ele que informa:

"Quando terminar o processamento,
responda nesta fila."

Nenhuma aplicação precisa conhecer outra.

Tudo acontece por mensagens.


Easter Egg nº 1 ☕

ReplyToQ funciona exatamente como a etiqueta de uma mala no aeroporto.

Você não precisa conhecer quem vai buscá-la.

Basta colocar a etiqueta correta.

Ela chegará ao destino.


MQCIH — O DNA da Chamada CICS

Agora entra o verdadeiro protagonista.

O MQCIH.

Seu nome completo:

MQ CICS Information Header

Esse cabeçalho diz ao Bridge:

  • qual transação executar;

  • se haverá sincronização (syncpoint);

  • qual formato de dados será usado;

  • como tratar erros;

  • como montar o ambiente CICS;

  • quais parâmetros deverão ser passados.

Sem o MQCIH...

o Bridge seria como um carteiro tentando entregar uma carta sem endereço.


O Payload

Depois do MQCIH vem a carga útil.

Ela pode conter:

COMMAREA

3270 Data Stream

Containers

Business Data

É exatamente isso que o programa COBOL irá processar.


Capítulo 3 — O Trigger

Agora imagine um carteiro esperando cartas.

Existem duas formas.

Modelo Antigo

Tem carta?

Não.

Tem carta?

Não.

Tem carta?

Não.

Isso se chama Polling.

CPU desperdiçada.


Modelo Inteligente

Chegou carta.

Toc!

Levante.

Existe trabalho.

Isso é Trigger.

Muito mais elegante.


TRIGGER=YES

Na definição da fila existe um atributo.

TRIGGER=YES

Quando uma mensagem chega...

o Queue Manager cria automaticamente outra mensagem.

Mas atenção.

Essa nova mensagem não contém os dados.

Ela apenas diz:

Existe trabalho.

CKTI — O Porteiro do CICS

CKTI significa:

CICS Trigger Monitor

Ele permanece praticamente dormindo.

Quando chega um Trigger...

acorda.

É como um porteiro de prédio.

Não abre todos os apartamentos.

Ele apenas avisa:

"Existe um visitante."


EXEC CICS ATTACH

O CKTI então executa:

EXEC CICS ATTACH

Esse comando cria uma nova Task CICS.

É semelhante a contratar um funcionário temporário para executar apenas aquele serviço.


Capítulo 4 — CKBR

Agora entra o cérebro da operação.

CKBR.

Se o MQ fosse um correio...

o CKBR seria o tradutor oficial da ONU.

Ele entende:

  • MQ

  • CICS

  • COMMAREA

  • Terminal

  • Programas

  • Transações

Sua missão é unir dois mundos completamente diferentes.


O Grande Truque

O programa COBOL acredita que existe um terminal.

Mas...

não existe.

O Bridge cria um terminal virtual.

É praticamente uma Matrix.

Programa COBOL

↓

"Estou falando com um terminal."

Resposta:

"Claro..."

(na verdade é o Bridge)

Easter Egg nº 2 ☕

Assim como Neo não sabia que vivia na Matrix...

o programa COBOL normalmente não sabe que está sendo chamado por uma aplicação Java.

Ele continua vivendo feliz dentro do CICS.


Bridge Facility

Esse componente cria praticamente todo o ambiente necessário.

Ele pode preparar:

  • EIB

  • COMMAREA

  • Ambiente EXEC CICS

  • Contexto da Task

  • Sessão simulada

  • Recursos temporários

Tudo isso acontece antes do programa iniciar.


Capítulo 5 — A Invocação

Depois de interpretar o MQCIH...

o Bridge finalmente executa a transação.

EXEC CICS LINK

ou

START

ou

ATTACH

Dependendo da configuração.

O programa COBOL recebe exatamente a mesma COMMAREA de sempre.


O COBOL Continua Igual

Veja como isso é poderoso.

Seu código pode continuar assim:

LINKAGE SECTION.

01 DFHCOMMAREA.

   05 CONTA.
   05 VALOR.

PROCEDURE DIVISION.

MOVE ...

EXEC CICS RETURN.

Nenhuma linha foi alterada.

Décadas de investimento permanecem válidas.


Easter Egg nº 3 ☕

É como trocar o motor de um avião em pleno voo sem que os passageiros percebam.

Os passageiros são o programa COBOL.

Quem trocou o motor foi o MQ Bridge.


Capítulo 6 — A Resposta

Quando o programa termina...

o Bridge captura:

COMMAREA

ou

3270 Buffer

ou

Containers

Depois monta outra mensagem MQ.

Acrescenta um novo MQCIH.

Atualiza o MQMD.

E executa:

MQPUT

Agora na Reply Queue.


O Cliente Executa MQGET

Finalmente.

O cliente recebe:

MQGET

E obtém:

  • saldo;

  • mensagens;

  • códigos;

  • erros;

  • dados processados.

O ciclo termina.


Fluxo Completo

MQ Client

↓

MQPUT

↓

Request Queue

↓

Trigger

↓

CKTI

↓

ATTACH

↓

CKBR

↓

Bridge Facility

↓

Programa COBOL

↓

COMMAREA

↓

MQPUT

↓

Reply Queue

↓

MQGET

Esse fluxo acontece milhares de vezes por segundo em grandes bancos.


Por Que Essa Arquitetura É Tão Boa?

Porque ela resolve diversos problemas ao mesmo tempo.

Desacoplamento

O cliente não conhece o COBOL.

O COBOL não conhece o cliente.


Persistência

Mesmo que o CICS pare.

A mensagem continua na fila.

Nada é perdido.


Escalabilidade

Podemos criar várias regiões CICS consumindo a mesma fila.


Balanceamento

O MQ distribui naturalmente o trabalho.


Confiabilidade

IBM MQ é famoso justamente por garantir entrega confiável.

Não é coincidência que seja amplamente utilizado em bancos e bolsas de valores.


Dicas Para Quem Está Aprendendo

✔ Aprenda primeiro CICS tradicional.

✔ Entenda bem COMMAREA.

✔ Estude MQMD.

✔ Depois aprenda MQCIH.

✔ Só então mergulhe no Bridge.

A sequência faz toda diferença.


Erros Comuns

❌ Pensar que MQ executa COBOL.

❌ Esquecer ReplyToQ.

❌ Ignorar CorrelationId.

❌ Confundir Trigger Message com Business Message.

❌ Achar que CKTI processa aplicações.

Na realidade:

CKTI apenas inicia o CKBR.

Quem faz o trabalho pesado é o Bridge.


Curiosidades

  • O MQ Bridge foi criado para reaproveitar aplicações CICS sem exigir reescrita do código.

  • Muitas aplicações modernas em Java, .NET e APIs REST acessam programas COBOL indiretamente por meio dessa arquitetura.

  • O uso do MQCIH permite controlar detalhes da execução da transação sem alterar o programa de negócio.

  • Em muitos ambientes corporativos, uma única fila pode alimentar diversas regiões CICS, aumentando disponibilidade e capacidade de processamento.

  • O conceito de terminal virtual permite que aplicações originalmente escritas para 3270 continuem funcionando mesmo quando chamadas por serviços modernos.


Bellacosa Insight ☕

Existe uma frase famosa na engenharia de software:

"Os bons sistemas sobrevivem porque escondem sua complexidade."

O MQ Bridge é um exemplo quase perfeito dessa ideia.

Para quem está do lado de fora, parece que um simples MQPUT chama um programa COBOL.

Mas, nos bastidores, existe uma verdadeira orquestra trabalhando em perfeita sincronia:

  • o MQ transporta a mensagem;

  • o Trigger detecta trabalho novo;

  • o CKTI desperta a infraestrutura CICS;

  • o CKBR interpreta o cabeçalho MQCIH;

  • a Bridge Facility cria um terminal virtual e prepara o ambiente;

  • o CICS executa a transação;

  • o COBOL processa a lógica de negócio;

  • o MQ devolve a resposta para a fila indicada.

É como observar apenas um botão "Comprar" em um site de comércio eletrônico, sem perceber que, por trás dele, existem dezenas de sistemas coordenando estoque, pagamento, logística e faturamento.

No universo do IBM Z, o CICS MQ Bridge cumpre exatamente esse papel: ele transforma tecnologias modernas em uma linguagem que aplicações COBOL escritas há décadas conseguem entender, preservando um dos maiores patrimônios da computação corporativa. Como diria o Guia do Mochileiro das Galáxias: não entre em pânico. Mesmo que a arquitetura pareça complexa à primeira vista, ela é composta por pequenos componentes especializados, cada um fazendo muito bem uma única tarefa. Quando você entende o papel de cada um, o diagrama deixa de ser um emaranhado de caixas e setas e passa a contar uma história fascinante sobre integração, compatibilidade e a incrível longevidade do ecossistema IBM Z.

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