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

sexta-feira, 8 de julho de 2011

🔥 File Handling no CICS

 


🔥 File Handling no CICS



☕ Midnight Lunch, arquivo aberto e o NOTFND clássico

12h55.
A transação entra.
O operador olha o console.
Você já sabe o final:

NOTFND

E alguém pergunta, com a serenidade de quem já sofreu:

“Esse arquivo está OPEN?”

Hoje o prato principal é File Handling no CICS — VSAM, controle de concorrência, comandos, erros clássicos e aquela sabedoria que só o mainframe ensina com dor.


🏛️ História: arquivos online antes do “real-time” virar moda

Antes de:

  • NoSQL

  • APIs

  • Microservices

o CICS já fazia acesso concorrente a arquivos VSAM, com controle transacional, locking fino e integridade garantida.

📌 File Handling no CICS é um tratado de engenharia.


🧠 Conceito essencial (grave isso)

Arquivo no CICS não é batch
Cada READ é uma negociação com o sistema

Aqui não existe “abre, lê tudo e fecha”.


📂 Tipos de arquivos usados no CICS

📌 VSAM KSDS

  • O mais comum

  • Acesso direto por chave

  • Ideal para online

📌 VSAM ESDS

  • Acesso sequencial

  • Muito usado para log

📌 VSAM RRDS

  • Acesso relativo

  • Menos comum, mas existe

📌 Se não é VSAM, pense duas vezes antes de usar no CICS.


🛠️ Principais comandos de File Handling

🔹 READ

Lê um registro por chave ou sequencial.

EXEC CICS READ FILE('ARQCLI') INTO(WS-REG) RIDFLD(WS-CHAVE) RESP(WS-RESP) END-EXEC.

🔹 WRITE

Inclui novo registro.

EXEC CICS WRITE FILE('ARQCLI') FROM(WS-REG) RIDFLD(WS-CHAVE) END-EXEC.

🔹 REWRITE

Atualiza registro existente.

EXEC CICS REWRITE FILE('ARQCLI') FROM(WS-REG) END-EXEC.

🔹 DELETE

Remove registro.

EXEC CICS DELETE FILE('ARQCLI') RIDFLD(WS-CHAVE) END-EXEC.

🔐 Concorrência e locking (onde mora o perigo)

READ com UPDATE

  • Bloqueia o registro

  • Exige REWRITE ou DELETE depois

READ sem UPDATE

  • Leitura limpa

  • Sem lock

📌 UPDATE sem REWRITE é pecado capital.


🧠 File Handling e transação (UOW)

CICS garante:

  • Atomicidade

  • Consistência

  • Rollback automático em caso de abend

Se a task cai:

  • Updates não commitados voltam

  • Locks são liberados

📌 CICS faz isso há décadas.


⚠️ Erros clássicos (easter eggs)

🐣 NOTFND tratado como erro fatal
🐣 DUPREC em produção às 14h
🐣 READ UPDATE esquecido (deadlock)
🐣 Arquivo fechado no CICS

🐣 DELETE sem validar dependências

🐣 Ignorar RESP1 / RESP2

📌 Todo file handling errado vira incidente.


🛠️ Passo a passo Bellacosa (fluxo seguro)

Defina intenção (ler ou alterar)

1️⃣ READ sem UPDATE para validar
2️⃣ READ UPDATE se for alterar
3️⃣ Tratar NOTFND e DUPREC
4️⃣ REWRITE ou DELETE imediatamente
5️⃣ Logar erros relevantes

📌 Lock curto é sinal de maturidade.


📦 Integração com Recovery

  • Arquivos participam da UOW

  • Backout automático se houver erro

  • Logs garantem consistência

📌 CICS é ACID antes do termo existir.


📦 Integração com TSQ, TDQ e logs

Boas práticas:

  • TSQ para staging temporário

  • TDQ para auditoria de alterações

  • Log funcional separado de log técnico

📌 Arquivo sem log é auditoria esperando desastre.


📚 Guia de estudo para mainframers

Estude com carinho:

  • VSAM internals

  • CICS File Control

  • Locking e ENQ/DEQ

  • RESP / RESP2

  • Recovery e backout

  • CEMT I FILE

📖 Manual essencial: CICS File Control Guide


🤓 Curiosidades de boteco mainframe

🍺 CICS controla lock em nível de registro
🍺 Muitos sistemas ainda usam ESDS como log
🍺 RRDS quase ninguém usa, mas ele está lá
🍺 Já vi READ UPDATE sem REWRITE travar região inteira

🍺 KSDS já sustentou banco inteiro
🍺 READ UPDATE mal usado é vilão silencioso
🍺 CICS libera lock até em abend (milagre técnico)
🍺 Já vi arquivo “perfeito” virar gargalo por lógica ruim


💬 Comentário El Jefe Midnight Lunch

“Arquivo em CICS é compromisso.
Leu com UPDATE? Case e honre.”

        “Arquivo não trava sistema.

        Programador que segura lock, sim.” 


🚀 Aplicações reais hoje

  • Core bancário

  • Cadastro de clientes

  • Processamento de seguros

  • Sistemas governamentais

  • Plataformas 24x7 

  • Sistemas de pagamento

  • Seguros e previdência

  • Governo e utilities

  • Ambientes híbridos VSAM + DB2


🎯 Conclusão Bellacosa

File Handling no CICS é simples na sintaxe
e profundo no impacto.

É disciplina, tempo e respeito à concorrência.

Quem domina:

  • Evita deadlock

  • Mantém integridade

  • Ganha confiança do ambiente

🔥 Arquivo mal tratado não perdoa.

🔥 CICS não é lento. Lento é o desenho errado.