 |
| CICS Tipos de Programas CEMT CEDA |
🔥 Types of Programs used in CICS
☕ Midnight Lunch, PROG definido e alguém pergunta “esse é de quê?”
13h19.
O operador roda um CEMT I PROG.
Uma lista infinita aparece.
Alguém novo pergunta:
“Mas… por que tem tanto tipo de programa?”
O veterano fecha o terminal, sorri e diz:
“Porque CICS não executa código.
Ele orquestra funções.”
Hoje vamos mapear os principais tipos de programas usados no CICS, com história, prática, armadilhas e aquele tempero Bellacosa.
🏛️ História: programas com papel definido
Desde o início, o CICS entendeu algo essencial:
Por isso surgiram tipos de programas, não por sintaxe, mas por função.
📌 Quem mistura papel, cria caos.
🧠 Conceito essencial
Em CICS, programa não é só código.
É um papel dentro da transação.
🧩 Principais tipos de programas no CICS
Vamos aos que realmente importam no dia a dia.
1️⃣ Terminal Control Programs (Programas de Tela)
Função
Características
✔ Lidam com INPUT/OUTPUT
✔ Normalmente pseudo-conversacionais
✔ Usam SEND / RECEIVE
📌 São a “cara” da aplicação.
2️⃣ Application / Business Logic Programs
Função
-
Regras de negócio
-
Validações
-
Cálculos
Características
✔ Chamados via LINK
✔ Reentrantes
✔ Sem lógica de tela
📌 Aqui mora o valor do sistema.
3️⃣ File Handling Programs
Função
Características
✔ Controle de concorrência
✔ Tratamento de erro rigoroso
✔ Uso intenso de RESP/RESP2
📌 Arquivo é responsabilidade séria.
4️⃣ Database Interface Programs (DB2 / IMS)
Função
-
Comunicação com banco
-
Execução de SQL
-
Controle transacional
Características
✔ Unidade de trabalho integrada
✔ Recovery automático
✔ Alto impacto em performance
📌 Aqui o desenho pesa.
5️⃣ Communication Programs (MQ / Web / API)
Função
Exemplos
-
IBM MQ
-
Web Services (SOAP/REST)
-
APIs CICS
📌 O CICS falando com o mundo.
6️⃣ Utility / Common Service Programs
Função
-
Funções reutilizáveis
-
Serviços comuns
Exemplos
-
Formatação
-
Validação
-
Log
-
Conversões
📌 O famoso “programa comum” — bem feito, é ouro.
7️⃣ Error Handling Programs
Função
Uso típico
-
HANDLE ABEND
-
Logging em TDQ/SMF
📌 Erro tratado é maturidade.
8️⃣ Control / Flow Programs
Função
-
Controlar navegação
-
Decidir próximo passo
Comandos usados
📌 Fluxo limpo evita bug fantasma.
🥊 Programas bem separados vs monolito
| Abordagem | Resultado |
|---|
| Programas especializados | Manutenção fácil |
| Programa “faz tudo” | Incidente garantido |
| LINK bem usado | Arquitetura limpa |
| XCTL mal usado | Fluxo perdido |
📌 CICS não perdoa bagunça.
🛠️ Passo a passo Bellacosa (como organizar)
1️⃣ Programa de tela só tela
2️⃣ Regra de negócio sem I/O
3️⃣ Acesso a dados isolado
4️⃣ Serviços reutilizáveis
5️⃣ Tratamento de erro centralizado
📌 Separação de responsabilidade é sobrevivência.
⚠️ Erros clássicos (easter eggs)
🐣 Lógica de negócio dentro de programa de tela
🐣 SQL espalhado por todo lado
🐣 Programa “genérico” gigante
🐣 LINK circular entre tipos
🐣 Reentrância ignorada
📌 Todo legado problemático começa assim.
📚 Guia de estudo para mainframers
Domine estes tópicos:
-
Program Control
-
Transaction design
-
Reentrancy
-
Error handling
-
Performance tuning
📖 Manual essencial: CICS Application Programming Guide
🤓 Curiosidades de boteco mainframe
🍺 CICS separava camadas antes do MVC
🍺 Muitos sistemas ainda seguem esse modelo
🍺 O pior programa é o que “resolve tudo”
🍺 Programas bem desenhados sobrevivem décadas
💬 Comentário El Jefe Midnight Lunch
“Programa bom não é o que faz tudo.
É o que faz uma coisa certa.”
🚀 Aplicações reais hoje
-
Core bancário
-
Cartões de crédito
-
Seguros
-
Governo
-
Integração híbrida
🎯 Conclusão Bellacosa
No CICS, tipo de programa é disciplina, não burocracia.
Quem entende:
-
Mantém sistema saudável
-
Evita incidentes
-
Facilita evolução
🔥 Arquitetura clara envelhece bem.