Translate

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

terça-feira, 6 de janeiro de 2026

📘 REPOST: CICS Command Level para padawans

 

CICS Command Level for Padawans


📘 CICS Command Level para padawans

Um guia passo a passo para entender o que é CICS, aprender e planejar um roteiro de estudos com o orquestrador do online em Mainframe.

#ibm #mainframe #cobol #cics #t3270 #vsam #bms #ksds #esds #ceda #ceci #cemt 


Post no Linkedin








1


segunda-feira, 1 de junho de 2020

CICS BMS para Desenvolvedores COBOL – Parte 3

 

Bellacosa Mainframe e a terceira parte do mini curso CICS BMS

☕ Um Café no Bellacosa Mainframe

CICS BMS para Desenvolvedores COBOL – Parte 3

Construindo uma Aplicação Real: Cadastro de Clientes, Pseudo-Conversação e Troubleshooting

"Até agora aprendemos o que é BMS, como criar mapas, compilá-los, instalá-los no CICS e navegar entre SEND MAP, RECEIVE MAP e HANDLE AID. Agora chegou a hora de montar uma aplicação semelhante às encontradas em bancos, seguradoras e empresas de telecomunicações."

Pegue mais um café, abra uma sessão do IPCS, outra do SDSF e vamos colocar a mão na massa.


O Projeto

Nosso sistema será composto por uma transação chamada:

CLI1

Associada ao programa:

CLICAD

Utilizando o MAPSET:

CLIMAP

Nossa tela

Visualmente teremos:

----------------------------------------------------------

               CADASTRO DE CLIENTES


Codigo.......: _______

Nome.........: ___________________________

CPF..........: ___________

Cidade.......: ___________________________

Telefone.....: ___________

Email........: ___________________________



Mensagem.....:



PF3=Sair   PF5=Limpar   PF7=Consultar


----------------------------------------------------------

O MAPSET

DFHMSD


CLIMAP DFHMSD TYPE=&SYSPARM,
               MODE=INOUT,
               LANG=COBOL,
               STORAGE=AUTO,
               TIOAPFX=YES,
               CTRL=(FREEKB)



DFHMDI


TELA01 DFHMDI SIZE=(24,80)



Campos protegidos

Labels.

Nunca serão alterados.

Exemplo:


DFHMDF POS=(5,2),
        LENGTH=10,
        INITIAL='Codigo:',
        ATTRB=(ASKIP,NORM)



DFHMDF POS=(6,2),
        INITIAL='Nome:',
        LENGTH=10,
        ATTRB=(ASKIP)




Campos de entrada

Código


CODIGO DFHMDF POS=(5,15),
                LENGTH=6,
                ATTRB=(UNPROT,IC),
                PICIN='9(6)'


Observe.

IC

Cursor inicial.


Nome


NOME DFHMDF POS=(6,15),
              LENGTH=30,
              ATTRB=UNPROT



CPF


CPF DFHMDF POS=(7,15),
             LENGTH=11,
             ATTRB=(UNPROT,NUM)



Cidade


CIDADE DFHMDF POS=(8,15),
                 LENGTH=25,
                 ATTRB=UNPROT



Mensagem

Protegida.

Sempre enviada.


MSG DFHMDF POS=(22,2),
             LENGTH=70,
             ATTRB=(PROT,FSET,BRT)



O MDT

Muitos iniciantes demoram a entender.

MDT significa:

Modified Data Tag

Indica se um campo foi alterado.

Se não estiver ligado.

Campo não chega ao COBOL.


FSET

Força transmissão.


ATTRB=(FSET)

Excelente para mensagens.

Datas.

Campos protegidos.


Bloqueando campos

Imagine uma consulta.

Usuário não pode alterar.

Mudamos.

De:

UNPROT

Para:

PROT

Alternando dinamicamente

Muito comum.

Modo Inclusão.

Nome -> UNPROT

Modo Consulta.

Nome -> PROT

Posicionando cursor

Existe um truque elegante.


MOVE -1 TO NOMEL


Depois:


EXEC CICS SEND MAP
CURSOR
END-EXEC


BMS procura.

Campo cujo L=-1.

Cursor aparece ali.


Tratando PF Keys

COPY DFHAID


COPY DFHAID.



Avaliando



EVALUATE EIBAID


WHEN DFHENTER

PERFORM GRAVA



WHEN DFHPF3

PERFORM SAIR



WHEN DFHPF5

PERFORM LIMPA



WHEN DFHPF7

PERFORM CONSULTA



WHEN OTHER

PERFORM ERRO



END-EVALUATE



PF3


EXEC CICS RETURN
END-EXEC



PF5

Limpa campos.


MOVE SPACES TO TELA01O


SEND novamente.


PF7

Consulta.

DB2.

VSAM.

IMS.

Pode ser qualquer backend.


A Arquitetura em 3 Camadas

Poucos percebem.

Já fazíamos isso nos anos 80.


Camada Apresentação

BMS

MAPSET


Camada Negócio

COBOL

CLICAD


Camada Dados

DB2

VSAM

IMS


Visualmente:


Terminal

    │

MAPSET

    │

COBOL

    │

DB2




Pseudo-Conversação

Talvez o conceito mais importante.

Não existe programa residente.

CICS trabalha com tarefas curtas.


Fluxo



Usuário


↓

EXECUTA CLI1



↓

Programa


↓

SEND MAP


↓

RETURN



===================



Usuário ENTER



===================



Nova Task



↓

RECEIVE MAP


↓

Valida


↓

DB2


↓

SEND MAP




Primeira chamada


IF EIBCALEN = ZERO


PERFORM PRIMEIRA-VEZ


END-IF



Retorno



IF EIBCALEN > ZERO


PERFORM RETORNO


END-IF




COMMAREA

Persistência.

Entre tasks.


01 WS-COMM.

05 WS-CODIGO PIC 9(6).

05 WS-MODO PIC X.



RETURN


EXEC CICS RETURN


TRANSID('CLI1')

COMMAREA(WS-COMM)

LENGTH(100)


END-EXEC



Troubleshooting

MAPFAIL

Muito comum.

Usuário apertou PF3.

Sem digitação.

RESP=36

INVREQ

Comando inválido.

Exemplo:

SEND DATAONLY

Antes de MAPONLY.


LENGERR

Tamanho incorreto.


ASRA

Favorito dos desenvolvedores.

Normalmente:

S0C7

S0C4

S0CB


CEDF

Melhor amigo.

Debug online.


CEDF ON



Executa.

Comando por comando.


CECI

Excelente ferramenta.

Testar comandos.

Exemplo.


CECI INQUIRE PROGRAM(CLICAD)




Curiosidades

SDF II

Editor gráfico.

Muito usado.

Década de 80.

Desenhava telas.

Gerava BMS.


Cores

Suportava:

Azul

Branco

Verde

Turquesa

Vermelho

Amarelo


Easter Egg Mainframe

Alguns programadores escondiam mensagens.

Campos DRK.

Exemplo.


DFHMDF POS=(24,1),

ATTRB=(DRK,PROT),

INITIAL='MAY THE COBOL BE WITH YOU'


Usuário nunca via.

Mas um dump IPCS entregava.


Releases do CICS

1970

Primeiros CICS.

1980

BMS consolidado.

1990

SDF II.

2000

CICS TS.

2010

Web Services.

2020

REST.

JSON.

zOS Connect.

2025+

CICS TS 6.x.

IA.

OpenTelemetry.

APIs modernas.


Considerações Finais

Aprender BMS é muito mais do que aprender a desenhar telas 3270.

É compreender a forma como milhares de aplicações críticas foram construídas.

É entender pseudo-conversação.

É conhecer a origem das arquiteturas em camadas.

É perceber que muitos conceitos considerados modernos já estavam presentes em aplicações escritas décadas atrás.

E talvez esta seja a principal lição do universo IBM Z:

A tecnologia muda.

Interfaces mudam.

Frameworks desaparecem.

Mas sistemas bem projetados atravessam gerações.

No próximo café do Bellacosa Mainframe, continuaremos explorando os bastidores do CICS, porque, no IBM Z, sempre existe mais um comando, mais um control block e mais uma curiosidade esperando para ser descoberta.


segunda-feira, 9 de março de 2020

🧪 LAB CICS : 🧠 CICS — O que é (sem enrolação)

 

Bellacosa Mainframe em primeiros passos no mundo CICS Mainframe

🧠 CICS — O que é (sem enrolação)

O IBM CICS Transaction Server é o coração transacional do mainframe.

👉 Pense assim:

  • Batch (JCL) = processamento em lote (fila, previsível)
  • CICS = processamento online em tempo real

📌 Ele gerencia:

  • Transações simultâneas (milhares!)
  • Sessões de usuários (terminais, web, APIs)
  • Integridade (commit/rollback)
  • Integração com DB2, MQ, VSAM

💥 Tradução prática:

Se o usuário apertou ENTER e quer resposta na hora → tem CICS por trás.


🏗️ Arquitetura mental (modo operador)


Você não precisa decorar tudo — mas precisa entender o jogo:

🔹 Região CICS

  • É como um “mini sistema operacional” dentro do z/OS
  • Tem memória, tarefas e controle próprio

🔹 Transações

  • Código de 4 letras (ex: CEMT, CECI)
  • Entrada do usuário

🔹 Programas

  • Normalmente em COBOL
  • Executados sob controle do CICS

🔹 Recursos

  • Arquivos (VSAM)
  • Bancos (DB2)
  • Filas (MQ)

🎮 Primeiros comandos (sobrevivência no CICS)

Esses aqui são o kit de sobrevivência do operador:

🔹 CEMT — o canivete suíço

CEMT I TASK
CEMT I TRANS
CEMT I FILE

👉 Serve para:

  • Ver tarefas rodando
  • Ver transações ativas
  • Checar arquivos

🔹 CECI — laboratório interativo

CECI

👉 Executa comandos CICS manualmente
👉 Perfeito para testes sem programa


🔹 CESN / CESF — login/logout

CESN (sign on)
CESF (sign off)

🧪 LAB 1 — “Primeiro contato com a Força”

🎯 Objetivo: entender o que está rodando no CICS

Passo a passo:

  1. Acesse o terminal (TSO ou emulador)
  2. Entre no CICS
  3. Digite:
CEMT I TASK

👉 Observe:

  • TASK NUMBER
  • STATUS
  • CPU TIME

💡 Insight Bellacosa:

Cada linha ali é alguém usando o sistema agora — isso é produção viva!


🧪 LAB 2 — Investigando transações

CEMT I TRANS

👉 Veja:

  • Transações habilitadas/desabilitadas
  • Status (ENABLED / DISABLED)

🔥 Teste:

CEMT SET TRANS(xxxx) DISABLED

⚠️ Cuidado:

Você pode derrubar sistema se fizer isso em produção!


🧪 LAB 3 — Teste controlado com CECI

CECI

Execute:

EXEC CICS ASSIGN

👉 Veja:

  • USERID
  • TERMINAL
  • TASK

💥 Isso é introspecção do ambiente


🧪 LAB 4 — Arquivos (VSAM na veia)

CEMT I FILE

👉 Veja:

  • OPEN / CLOSED
  • ENABLED / DISABLED

Teste (ambiente controlado!):

CEMT SET FILE(xxxx) CLOSED

🧭 Mentalidade de Produção (o diferencial)

Aqui está o pulo do gato 🧠

🔥 Você NÃO é desenvolvedor — você é guardião do runtime

Você precisa pensar em:

  • Sistema está lento?
  • Travou?
  • Loop infinito?
  • Recurso indisponível?

👉 Ferramentas-chave:

  • CEMT
  • CEDF (debug de transação)
  • SMF / logs
  • dumps (abend)

⚠️ Erros clássicos de iniciante

❌ Rodar comando sem saber impacto
❌ Derrubar FILE em produção
❌ Desabilitar TRANS crítica
❌ Ignorar mensagens do CICS

💥 Regra de ouro:

“Se você não sabe o efeito → NÃO execute”


🧠 Mapa mental resumido

  • CICS = tempo real
  • TRANS = entrada
  • TASK = execução
  • PROGRAM = lógica
  • FILE/DB = dados

🚀 Próximos passos (nível Jedi)

Se quiser evoluir, recomendo:

  1. Criar sua primeira transação COBOL
  2. Aprender EXEC CICS READ/WRITE
  3. Entender COMMIT/ROLLBACK
  4. Trabalhar com TSQ/TDQ
  5. Explorar integração com APIs (CICS Web Services)

O IBM CICS Transaction Server é o coração transacional do mainframe.

👉 Pense assim:

  • Batch (JCL) = processamento em lote (fila, previsível)
  • CICS = processamento online em tempo real

📌 Ele gerencia:

  • Transações simultâneas (milhares!)
  • Sessões de usuários (terminais, web, APIs)
  • Integridade (commit/rollback)
  • Integração com DB2, MQ, VSAM

💥 Tradução prática:

Se o usuário apertou ENTER e quer resposta na hora → tem CICS por trás.


🏗️ Arquitetura mental (modo operador)


Você não precisa decorar tudo — mas precisa entender o jogo:

🔹 Região CICS

  • É como um “mini sistema operacional” dentro do z/OS
  • Tem memória, tarefas e controle próprio

🔹 Transações

  • Código de 4 letras (ex: CEMT, CECI)
  • Entrada do usuário

🔹 Programas

  • Normalmente em COBOL
  • Executados sob controle do CICS

🔹 Recursos

  • Arquivos (VSAM)
  • Bancos (DB2)
  • Filas (MQ)

🎮 Primeiros comandos (sobrevivência no CICS)

Esses aqui são o kit de sobrevivência do operador:

🔹 CEMT — o canivete suíço

CEMT I TASK
CEMT I TRANS
CEMT I FILE

👉 Serve para:

  • Ver tarefas rodando
  • Ver transações ativas
  • Checar arquivos

🔹 CECI — laboratório interativo

CECI

👉 Executa comandos CICS manualmente
👉 Perfeito para testes sem programa


🔹 CESN / CESF — login/logout

CESN (sign on)
CESF (sign off)

🧪 LAB 1 — “Primeiro contato com a Força”

🎯 Objetivo: entender o que está rodando no CICS

Passo a passo:

  1. Acesse o terminal (TSO ou emulador)
  2. Entre no CICS
  3. Digite:
CEMT I TASK

👉 Observe:

  • TASK NUMBER
  • STATUS
  • CPU TIME

💡 Insight Bellacosa:

Cada linha ali é alguém usando o sistema agora — isso é produção viva!


🧪 LAB 2 — Investigando transações

CEMT I TRANS

👉 Veja:

  • Transações habilitadas/desabilitadas
  • Status (ENABLED / DISABLED)

🔥 Teste:

CEMT SET TRANS(xxxx) DISABLED

⚠️ Cuidado:

Você pode derrubar sistema se fizer isso em produção!


🧪 LAB 3 — Teste controlado com CECI

CECI

Execute:

EXEC CICS ASSIGN

👉 Veja:

  • USERID
  • TERMINAL
  • TASK

💥 Isso é introspecção do ambiente


🧪 LAB 4 — Arquivos (VSAM na veia)

CEMT I FILE

👉 Veja:

  • OPEN / CLOSED
  • ENABLED / DISABLED

Teste (ambiente controlado!):

CEMT SET FILE(xxxx) CLOSED

🧭 Mentalidade de Produção (o diferencial)

Aqui está o pulo do gato 🧠

🔥 Você NÃO é desenvolvedor — você é guardião do runtime

Você precisa pensar em:

  • Sistema está lento?
  • Travou?
  • Loop infinito?
  • Recurso indisponível?

👉 Ferramentas-chave:

  • CEMT
  • CEDF (debug de transação)
  • SMF / logs
  • dumps (abend)

⚠️ Erros clássicos de iniciante

❌ Rodar comando sem saber impacto
❌ Derrubar FILE em produção
❌ Desabilitar TRANS crítica
❌ Ignorar mensagens do CICS

💥 Regra de ouro:

“Se você não sabe o efeito → NÃO execute”


🧠 Mapa mental resumido

  • CICS = tempo real
  • TRANS = entrada
  • TASK = execução
  • PROGRAM = lógica
  • FILE/DB = dados

🚀 Próximos passos (nível Jedi)

Se quiser evoluir, recomendo:

  1. Criar sua primeira transação COBOL
  2. Aprender EXEC CICS READ/WRITE
  3. Entender COMMIT/ROLLBACK
  4. Trabalhar com TSQ/TDQ
  5. Explorar integração com APIs (CICS Web Services)

domingo, 18 de fevereiro de 2007

O que é CICS?

 

Bellacosa Mainframe e o que é CICS

O que é CICS?

CICS significa:

Customer Information Control System

É o principal monitor transacional do ambiente Mainframe IBM Z e um dos softwares mais importantes da história da computação corporativa.

Criado pela IBM em 1968, o CICS é responsável por executar milhões de transações online em bancos, seguradoras, governos, companhias aéreas e grandes empresas.


Definição Simples

O CICS é:

um gerenciador de transações online.

Ele permite que milhares de usuários acessem simultaneamente aplicações COBOL, PL/I, C e Java executadas no Mainframe.


Analogia Simples

Imagine um restaurante.

  • O cliente faz o pedido.

  • O garçom recebe.

  • A cozinha prepara.

  • O prato é entregue.

No Mainframe:

Usuário
   ↓
CICS
   ↓
Programa COBOL
   ↓
DB2 / VSAM
   ↓
Resposta

O CICS é o "garçom" que coordena tudo.


Por que o CICS existe?

Sem o CICS, cada usuário precisaria executar diretamente um programa no sistema operacional.

Isso consumiria muitos recursos.

O CICS resolve esse problema:

✅ Compartilhando recursos

✅ Controlando usuários

✅ Gerenciando transações

✅ Controlando memória

✅ Gerenciando comunicação


Onde o CICS é usado?

Praticamente em:

  • Bancos

  • PIX

  • TED

  • Cartões de crédito

  • Internet Banking

  • Seguradoras

  • Governo

  • Telecomunicações

  • Companhias aéreas


Arquitetura Simplificada

Terminal
    ↓
CICS
    ↓
Programa COBOL
    ↓
DB2
    ↓
Resposta

Exemplo Real

Cliente consulta saldo:

ATM
 ↓
CICS
 ↓
COBOL
 ↓
DB2
 ↓
Saldo exibido

Tudo acontece em poucos milissegundos.


O que é uma Transação CICS?

É uma operação identificada por um código de 4 caracteres.


Exemplos

CUST
SALD
PIX1
PAGT

Fluxo

Usuário digita:

SALD

O CICS:

Localiza programa
       ↓
Executa COBOL
       ↓
Retorna resultado

Programas CICS

Normalmente escritos em:

  • COBOL

  • PL/I

  • C

  • Java


Exemplo COBOL CICS

Recebendo dados:

EXEC CICS RECEIVE
     MAP('TELA1')
END-EXEC.

Enviando dados

EXEC CICS SEND
     MAP('TELA2')
END-EXEC.

O que é uma MAP?

Tela utilizada pelo usuário.


Exemplo

+----------------------+
| CONSULTA CLIENTE     |
| CONTA: ________      |
| SALDO: ________      |
+----------------------+

BMS

Basic Mapping Support.

Ferramenta usada para criar telas CICS.


COMMAREA

Área usada para passar dados entre programas.


Exemplo

Programa A:

EXEC CICS LINK
     PROGRAM('PROG2')
     COMMAREA(WS-AREA)
END-EXEC.

Programa B

Recebe os dados pela COMMAREA.


Principais Comandos CICS

LINK

Chama outro programa.

EXEC CICS LINK
END-EXEC

XCTL

Transfere controle sem retorno.

EXEC CICS XCTL
END-EXEC

RETURN

Finaliza transação.

EXEC CICS RETURN
END-EXEC

SEND

Envia tela.

EXEC CICS SEND
END-EXEC

RECEIVE

Recebe dados.

EXEC CICS RECEIVE
END-EXEC

CICS e DB2

Integração extremamente comum.


Exemplo

EXEC SQL

   SELECT SALDO
   INTO :WS-SALDO

   FROM CLIENTES

END-EXEC.

CICS e VSAM

Também muito utilizado.


Exemplo

READ ARQCLI

CICS e Segurança

Normalmente integrado ao:

  • RACF

  • ACF2

  • Top Secret


Regiões CICS

O CICS executa dentro de uma região.


Exemplos

CICSA
CICSPRD
CICSTST

O que é uma Região?

Ambiente onde as transações executam.


Monitoramento

Comandos comuns:

CEMT
CEDA
CEDF
CECI

CEMT

Monitor operacional.


Exemplo

CEMT I TASK

Mostra tarefas ativas.


CEDA

Administração de recursos.


CEDF

Debug interativo.


CECI

Executa comandos CICS manualmente.


Erros Comuns (ABENDs CICS)

AICA

Timeout.


AEI0

Programa não encontrado.


AEIV

Erro COMMAREA.


ASRA

Exceção de programa.

Equivalente a:

S0C7
S0C4

Conceito de Transação

Uma transação deve obedecer:

ACID


Atomicidade

Tudo ou nada.


Consistência

Dados válidos.


Isolamento

Transações independentes.


Durabilidade

Dados persistem após COMMIT.


Curiosidades

1. O CICS existe desde 1968

2. Processa bilhões de transações diariamente

3. É considerado o maior monitor transacional do mundo

4. Grande parte dos sistemas bancários utiliza CICS

5. Muitas transações PIX passam por aplicações COBOL/CICS


Resumo Rápido

ConceitoFunção
CICSMonitor transacional
TransaçãoOperação online
MAPTela usuário
BMSCriação de telas
COMMAREAPassagem de dados
LINKChama programa
XCTLTransfere controle
SENDEnvia tela
RECEIVERecebe dados
CEMTAdministração
CEDADefinição recursos
CEDFDebug
CECITestes

Conclusão

O CICS (Customer Information Control System) é o principal monitor de processamento online do Mainframe IBM Z. Ele gerencia transações, usuários, programas COBOL, acesso a DB2 e VSAM, permitindo que milhões de operações críticas sejam executadas com segurança, desempenho e alta disponibilidade em tempo real.


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