🟦 Exemplo de Programa COBOL – Tratamento de Mensagem IBM MQ
🎯 O que este programa faz
-
Conecta ao Queue Manager
-
Abre uma fila de entrada
-
Lê uma mensagem (MQGET)
-
Trata o conteúdo
-
Atualiza dados (simulado)
-
Faz COMMIT
-
Fecha fila e desconecta
🧱 Premissas do exemplo
-
Execução:
-
Batch ou CICS (a lógica é a mesma)
-
-
Fila:
-
QUEUE.IN
-
-
Queue Manager:
-
QMGR01
-
-
Mensagem:
-
Texto simples
-
-
Modelo:
-
MQI síncrono
-
Commit explícito
-
📦 COPYBOOKS NECESSÁRIOS
📌 Esses copybooks vêm do IBM MQ for z/OS
Normalmente ficam emSCSQCOBC.
🧠 Estrutura do Programa
🔹 IDENTIFICATION DIVISION
🔹 DATA DIVISION
🔹 PROCEDURE DIVISION
1️⃣ Conectar ao Queue Manager
📌 Easter egg:
Se falhar aqui, o problema não é a fila, é ambiente.
2️⃣ Abrir a fila
3️⃣ Ler a mensagem (MQGET)
📌 Regra de ouro:
MQRC 2033 não é erro. É silêncio.
4️⃣ Tratar a mensagem
5️⃣ Commit da transação
📌 Easter egg clássico:
90% dos “problemas de MQ” são COMMIT esquecido.
6️⃣ Fechar fila e desconectar
7️⃣ Rollback (se algo der errado)
🔚 Fim do programa
🧠 O que este exemplo ensina (de verdade)
✔ Fluxo correto do MQ
✔ Tratamento de erros
✔ Uso de COMMIT / ROLLBACK
✔ Código legível para mainframer
✔ Pronto para:
-
Batch
-
CICS
-
IMS
-
DB2
📌 Dicas Bellacosa Mainframe
-
Sempre trate:
-
2033(no message) -
2009(connection broken)
-
-
Nunca:
-
Esqueça COMMIT
-
Assuma que mensagem foi consumida
-
-
Pense em MQ como:
DB2 sem SQL
