| Bellacosa Mainframe e a conversação em CICS Parte IV |
☕ Um Café no Bellacosa Mainframe
CICS Conversacional e Pseudo-Conversacional
Parte 4 — COMMAREA, TSQ, TDQ, Temporary Storage, Control Blocks e os Bastidores do CICS
"Salve novamente, jovem Padawan Mainframe! Se você chegou até aqui, parabéns. Você já compreendeu como a pseudo-conversação revolucionou a escalabilidade do CICS, descobriu Channels, Containers, APIs REST e até OpenTelemetry. Mas agora vamos abrir a tampa do motor do CICS. Vamos conhecer o que acontece por trás das cortinas."
Pegue mais um café.
Abra o IPCS.
Deixe o CEDF ligado.
Reserve uma aba do SDSF.
Porque agora vamos entrar na sala das máquinas.
O que realmente acontece dentro do CICS?
Quando executamos:
EXEC CICS SEND MAP
END-EXEC
Muita gente imagina algo parecido com:
Programa
↓
Tela
Fim.
Mas o CICS faz muito mais.
Fluxo interno
Programa COBOL
│
▼
Translator
│
▼
EXEC Interface
│
▼
Kernel CICS
│
▼
Terminal Control
│
▼
BMS
│
▼
TIOA
│
▼
3270
TIOA
Talvez uma das estruturas menos conhecidas pelos iniciantes.
TIOA
Terminal Input Output Area
É uma área onde ficam armazenados.
Dados digitados.
Cursor.
Atributos.
AID Keys.
Exemplo
ENTER
PF3
PF5
CPF
Nome
Cursor linha 7
Cursor coluna 15
Tudo isso.
Na TIOA.
TCA
Task Control Area.
Cada task possui.
Guarda.
Status.
Transação.
Programa.
Recursos.
Flags.
EIB
Você já conhece.
Mas agora sabemos.
Ele é derivado.
Da TCA.
Control Blocks interessantes
TCT
Terminal Control Table
PPT
Program Processing Table
FCT
File Control Table
PCT
Program Control Table
SIT
System Initialization Table
Temporary Storage Queue
TSQ
Muito usada.
Em pseudo-conversação.
Imagine.
1000 registros.
Não cabem.
Na COMMAREA.
Salvamos em TSQ.
EXEC CICS WRITEQ TS
QUEUE('CLI0001')
FROM(WS-DADOS)
END-EXEC
Lendo.
EXEC CICS READQ TS
QUEUE('CLI0001')
INTO(WS-DADOS)
END-EXEC
TDQ
Transient Data Queue
Muito utilizada.
Para logs.
Integração.
Mensageria.
TSQ versus TDQ
| Característica | TSQ | TDQ |
|---|---|---|
| Leitura múltipla | Sim | Não |
| Atualização | Sim | Não |
| Sequencial | Não | Sim |
| Persistência | Opcional | Sim |
| Uso típico | Estado | Logs |
COMMAREA versus TSQ
COMMAREA
64 KB
TSQ
Megabytes
Exemplo bancário
Tela.
↓
Lista.
5000 clientes.
↓
Salvar TSQ.
↓
Usuário PF8.
↓
Recupera TSQ.
↓
Próxima página.
Paginando consultas
PF7
Anterior
PF8
Próxima
IF EIBAID = DFHPF8
PERFORM PAGINA-SEGUINTE
END-IF
Boas práticas
Nunca coloque.
Tabela enorme.
Na COMMAREA.
Use.
TSQ.
Ou.
Containers.
LINK
Outro comando muito importante.
Chamando programa.
EXEC CICS LINK
PROGRAM('CLI0002')
COMMAREA(WS-COMM)
END-EXEC
Retorna.
Para chamador.
XCTL
Diferente.
Não retorna.
EXEC CICS XCTL
PROGRAM('MENU0001')
END-EXEC
Programa anterior.
Morre.
Novo.
Assume controle.
START
Assíncrono.
Agenda execução.
EXEC CICS START
TRANSID('CLI1')
END-EXEC
DELAY
Muito curioso.
EXEC CICS DELAY
FOR SECONDS(5)
END-EXEC
Raramente utilizado.
CEMT
Melhor amigo.
Administrador.
Consultar tasks.
CEMT I TASK
Consultar programas.
CEMT I PROGRAM
Consultar files.
CEMT I FILE
Consultar TSQ.
CEMT I TSQUEUE
CEDF
Ferramenta maravilhosa.
Permite.
Passo a passo.
SEND.
RECEIVE.
LINK.
READ.
WRITE.
DB2.
CEDF ON
CECI
Testador.
Interativo.
CECI READ FILE
CECI RECEIVE MAP
Curiosidades Bellacosa Mainframe
Existem sistemas.
Que utilizam.
TSQ.
Desde 1988.
Ainda funcionando.
No z16.
No z17.
Sem alterações.
Easter Egg Mainframe
Muitos programadores escondiam.
Comentários.
Como.
* THIS PROGRAM IS OLDER THAN YOU
Ou.
* IF IT BREAKS
* RUN AWAY
Ou.
* WRITTEN DURING NIGHT SHIFT
* POWERED BY COFFEE
O que veremos na Parte 5
✔ Program Control;
✔ HANDLE CONDITION;
✔ HANDLE ABEND;
✔ RESP e RESP2;
✔ Syncpoint;
✔ Journaling;
✔ Recoverable Resources;
✔ Mirror Transactions;
✔ DPL;
✔ IPIC;
✔ CICSplex;
✔ CPSM;
✔ Threadsafety;
✔ Open TCBs;
✔ OTE;
✔ E muitos outros segredos do universo CICS.
No Bellacosa Mainframe aprendemos uma regra simples: se você acredita que já conhece o CICS, provavelmente apenas encontrou a próxima porta do labirinto. Porque no IBM Z sempre existe mais um control block para estudar, mais um dump para analisar e mais um café esperando para ser servido.
Sem comentários:
Enviar um comentário