| Bellacosa Mainframe CICS TOR AOR na pratica |
🔥💣 CICS TOR + AOR NA VEIA — O LAB QUE TRANSFORMA SEU MAINFRAME EM UM CLUSTER DE GUERRA 💣🔥
Se você já leu teoria e ainda não “atravessou o portal” do TOR/AOR… relaxa. Isso é clássico. CICS distribuído só faz sentido quando você monta, quebra e conserta. Então bora pro LAB estilo Bellacosa: mão na massa, sem firula, com dicas de quem já tomou S0C4 na madrugada 😄
🧠 VISÃO RÁPIDA (SEM ENROLAÇÃO)
-
TOR (Terminal Owning Region)
👉 Onde os terminais conectam (3270 / usuários) -
AOR (Application Owning Region)
👉 Onde os programas COBOL rodam - Comunicação: MRO (Multi-Region Operation) via ISC (Inter-System Communication)
🧪 LAB — ARQUITETURA
[ USER / 3270 ]
|
(TOR)
|
MRO / ISC
|
(AOR)
|
DB2 / VSAM
⚙️ PRÉ-REQUISITOS
- CICS TS instalado (qualquer versão moderna serve)
- 2 regiões CICS (ou 2 STCs diferentes)
- VTAM ativo
- JES2 rodando
- RACF (opcional, mas recomendado)
🏗️ PASSO 1 — CRIAR AS DUAS REGIÕES
Você precisa de:
-
CICSTOR -
CICSAOR
👉 Copie uma região base:
//COPYTOR EXEC PGM=IEBCOPY
Crie duas cópias do DFHRPL / DFHCSD
💡 Dica Bellacosa:
Nunca compartilhe DFHCSD no começo. Separe. Depois você evolui.
⚙️ PASSO 2 — CONFIGURAR TOR
No TOR:
- Sem lógica de negócio
- Só roteamento
RDO (CEDA)
DEFINE TERMINAL(...)
DEFINE CONNECTION(AORCONN)
DEFINE SESSION(AORSESS)
DEFINE SYSID(AOR1)
⚙️ PASSO 3 — CONFIGURAR AOR
No AOR:
- Programas ativos
- Transações reais
DEFINE PROGRAM(MYPROG)
DEFINE TRANSACTION(MYTX)
💡 Aqui é onde mora o COBOL raiz.
🔗 PASSO 4 — CONFIGURAR MRO (O PULO DO GATO)
No TOR:
DEFINE CONNECTION(AOR1)
GROUP(MRO)
NETNAME(AOR1)
DEFINE SESSION(AOR1)
CONNECTION(AOR1)
PROTOCOL(LU62)
No AOR:
DEFINE CONNECTION(TOR1)
DEFINE SESSION(TOR1)
🔥 PASSO 5 — TRANSACTION ROUTING
No TOR:
DEFINE TRANSACTION(MYTX)
PROGRAM(MYPROG)
REMOTESYSTEM(AOR1)
💥 BOOM: agora o TOR encaminha pro AOR
🧪 PASSO 6 — TESTE
- Loga no TOR
-
Digita
MYTX - Execução ocorre no AOR
👉 Se funcionar: você virou outro profissional
👉 Se não funcionar: bem-vindo ao mundo real 😄
🚨 TROUBLESHOOTING (OU “POR QUE NÃO FUNCIONA?”)
❌ SYSIDERR
- SYSID não definido igual nos dois lados
❌ APPC / ISC DOWN
- VTAM não levantou sessão
❌ TRANSID NOT FOUND
- Definição não está no TOR
❌ AEI0 / AEY9
- Problema de routing / security
💡 Dica de ouro:
Use:
CEMT I CONN
CEMT I SESS
💣 DICAS DE GUERRA (ESSAS NÃO TEM EM LIVRO)
- TOR NÃO roda lógica → se rodar, você já errou arquitetura
- AOR pode escalar horizontalmente
- MRO local é mais simples que IPIC (comece por ele!)
- Sempre versione DFHCSD
- Nome de SYSID tem que bater EXATAMENTE
🧠 CURIOSIDADES (RAIZ MAINFRAME)
- TOR/AOR surgiu para escala antes da nuvem existir
- É basicamente um load balancer dos anos 80
- Grandes bancos usam isso até hoje com dezenas de AORs
📦 EXEMPLO REAL (SIMPLIFICADO)
TOR → recebe 5000 usuários
AOR1 → contas
AOR2 → crédito
AOR3 → investimentos
👉 Cada AOR especializado
👉 TOR só roteia
📚 MATERIAL DE APOIO (OURO PURO)
Se você quer atravessar de vez:
- IBM CICS Transaction Server Documentation (IBM Docs)
-
Redbook:
👉 CICS Intercommunication Guide -
Curso oficial IBM:
👉 CICS TS System Administration
💡 Dica sincera:
O melhor material ainda é… quebrar ambiente e arrumar
🧪 DESAFIO FINAL (NÍVEL HARD)
- Crie 2 AORs
- Faça load balancing manual
- Simule falha de um AOR
- Veja o TOR redirecionando
👉 Se fizer isso: você não é mais iniciante
💥 FECHAMENTO ESTILO BELLOCAZA
CICS distribuído não é teoria.
É arquitetura viva.
Você não aprende lendo…
👉 aprende quando dá erro às 3 da manhã e você resolve.
| Bellacosa Mainframe mão na massa CICS TOR AOR |
🔥💣 LAB COMPLETO CICS TOR + AOR — DO ZERO AO “ROUTING FUNCIONANDO” 💣🔥
JCL + DFHCSD + RDO + TESTE REAL (estilo Bellacosa: direto ao ponto, mas com os macetes que evitam horas de dor)
Objetivo: levantar duas regiões CICS (TOR e AOR), configurar MRO/ISC, publicar uma transação roteada e testar ponta a ponta.
🧠 ARQUITETURA DO LAB
[ 3270 USER ]
|
TOR (CICSTOR)
|
MRO / ISC
|
AOR (CICSAOR)
|
PROG COBOL / VSAM
📦 CONVENÇÕES USADAS
-
TOR:
CICSTOR(SYSID =TOR1) -
AOR:
CICSAOR(SYSID =AOR1) -
Transação:
MYTX -
Programa:
MYPROG -
Grupo RDO:
GRPTOR,GRPAOR,GRPMRO
💡 Regra de ouro: nomes idênticos (SYSID/CONNECTION/SESSION) nos dois lados — 80% dos erros somem aqui.
🏗️ 1) PROVISIONAR AS REGIÕES (JCL)
▶️ CICSTOR (TOR)
//CICSTOR PROC
//CICS EXEC PGM=DFHSIP,REGION=0M,
// PARM='CICSTOR,SYSID=TOR1'
//STEPLIB DD DSN=CICS.SDFHLOAD,DISP=SHR
//DFHCSD DD DSN=CICSTOR.DFHCSD,DISP=SHR
//DFHRPL DD DSN=CICSTOR.LOADLIB,DISP=SHR
//DFHPRINT DD SYSOUT=*
//DFHLOG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DUMMY
▶️ CICSAOR (AOR)
//CICSAOR PROC
//CICS EXEC PGM=DFHSIP,REGION=0M,
// PARM='CICSAOR,SYSID=AOR1'
//STEPLIB DD DSN=CICS.SDFHLOAD,DISP=SHR
//DFHCSD DD DSN=CICSAOR.DFHCSD,DISP=SHR
//DFHRPL DD DSN=CICSAOR.LOADLIB,DISP=SHR
//DFHPRINT DD SYSOUT=*
//DFHLOG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DUMMY
💡 Dica Bellacosa:
Separe DFHCSD por região no início. Compartilhar cedo = confusão garantida.
🧱 2) INICIALIZAR DFHCSD (SE AINDA NÃO EXISTIR)
//DEFCTLG EXEC PGM=DFHCSDUP
//STEPLIB DD DSN=CICS.SDFHLOAD,DISP=SHR
//DFHCSD DD DSN=CICSTOR.DFHCSD,DISP=SHR
//SYSIN DD *
DEFINE GROUP(GRPTOR) DESCRIPTION(TOR BASE)
DEFINE GROUP(GRPMRO) DESCRIPTION(MRO TOR)
/*
Repita para AOR mudando dataset e grupos (GRPAOR, GRPMRO).
🔗 3) RDO — MRO (CONNECTION + SESSION + SYSID)
▶️ NO TOR (CICSTOR)
CEDA DEF SYSID(AOR1) GROUP(GRPMRO)
CEDA DEF CONNECTION(AOR1) GROUP(GRPMRO)
NETNAME(AOR1)
ACCESSMETHOD(VTAM)
CEDA DEF SESSION(AOR1) GROUP(GRPMRO)
CONNECTION(AOR1)
PROTOCOL(LU62)
MAXIMUM(10)
▶️ NO AOR (CICSAOR)
CEDA DEF SYSID(TOR1) GROUP(GRPMRO)
CEDA DEF CONNECTION(TOR1) GROUP(GRPMRO)
NETNAME(TOR1)
ACCESSMETHOD(VTAM)
CEDA DEF SESSION(TOR1) GROUP(GRPMRO)
CONNECTION(TOR1)
PROTOCOL(LU62)
MAXIMUM(10)
💡 Macete crítico:
NETNAME deve bater com definição VTAM/APPLID.
🧠 4) AOR — PROGRAMA + TRANSAÇÃO
CEDA DEF PROGRAM(MYPROG) GROUP(GRPAOR)
LANGUAGE(COBOL)
CEDA DEF TRANSACTION(MYTX) GROUP(GRPAOR)
PROGRAM(MYPROG)
💻 COBOL EXEMPLO (MYPROG)
IDENTIFICATION DIVISION.
PROGRAM-ID. MYPROG.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MSG PIC X(40) VALUE 'RODANDO NO AOR COM SUCESSO'.
PROCEDURE DIVISION.
EXEC CICS SEND TEXT FROM(WS-MSG)
ERASE FREEKB
END-EXEC.
EXEC CICS RETURN END-EXEC.
🚀 5) TOR — TRANSACTION ROUTING
👉 Aqui acontece a mágica
CEDA DEF TRANSACTION(MYTX) GROUP(GRPTOR)
PROGRAM(MYPROG)
REMOTESYSTEM(AOR1)
💥 Isso diz:
“Quando digitarem MYTX no TOR → manda pro AOR1”
▶️ 6) SUBIR AS REGIÕES
//S TOR
//S AOR
Ou via JES2:
/S CICSTOR
/S CICSAOR
🧪 7) TESTE REAL
- Loga no TOR
-
Digita:
MYTX - Resultado esperado:
RODANDO NO AOR COM SUCESSO
👉 Se apareceu: você DOMINOU MRO básico
🚨 8) TROUBLESHOOTING RAIZ
🔍 Ver conexões
CEMT I CONN
CEMT I SESS
🔴 Problemas clássicos
-
SYSIDERR→ SYSID não bate -
ISC CLOSED→ VTAM não subiu -
AEY9→ routing errado -
NOTAUTH→ RACF bloqueando
💣 DICAS DE PRODUÇÃO (OURO)
- Nunca misture lógica no TOR
- Use múltiplos AORs para escala
- Versione DFHCSD (backup sempre!)
- Comece com MRO → depois evolua pra IPIC
- Monitore com SMF 110
🧠 CURIOSIDADE DE ARQUITETURA
TOR/AOR é literalmente o ancestral do microserviço + load balancer.
Década de 80… já resolvendo problema de escala que muita stack moderna ainda sofre 😄
📚 MATERIAL DE APOIO (SE QUISER IR MAIS FUNDO)
- IBM CICS Transaction Server Docs (IBM)
- Redbook: CICS Intercommunication Guide
- CEDA / CEMT Reference Guide
🧪 DESAFIO HARD (PRÓXIMO NÍVEL)
- Criar 2 AORs (AOR1 + AOR2)
- Duplicar MYPROG
-
Alternar
REMOTESYSTEMmanualmente - Simular queda de AOR1
👉 Se fizer isso… você já pensa como arquiteto CICS
💥 FECHAMENTO
Isso aqui não é só um lab.
É o momento que separa quem leu sobre CICS de quem opera CICS de verdade.
Sem comentários:
Enviar um comentário