Translate

Mostrar mensagens com a etiqueta troubleshooting cics. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta troubleshooting cics. Mostrar todas as mensagens

quinta-feira, 11 de dezembro de 2025

💥 CEMT NÃO MORREU — MAS O CICS EXPLORER DOMINA: Como Manipular Dados no CICS Explorer no IBM z17 (Guia Definitivo para Dev COBOL Sênior)

 

Bellacosa Mainframe em aquilo que não tem contaram sobre CICS Explorer Data

💥 CEMT NÃO MORREU — MAS O CICS EXPLORER DOMINA: Como Manipular Dados no CICS Explorer no IBM z17 (Guia Definitivo para Dev COBOL Sênior)

Se você vive de COBOL em CICS, já sabe:
o terminal 3270 moldou gerações — mas o jogo mudou.

No IBM z17 com CICS Explorer, você não apenas “consulta recursos”…
👉 você visualiza, filtra, manipula e governa o runtime em tempo real.

E mais: com muito mais segurança, contexto e velocidade.

Este guia é direto ao ponto, profundo e prático — do jeito que um dev COBOL sênior precisa.


🧠 De onde veio o CICS Explorer (e por que ele importa)

Antes:

  • CEMT INQ TRANS
  • CEDA DEFINE
  • CEMT SET FILE
  • Telas fragmentadas
  • Memorização pesada
  • Contexto limitado

Agora:

👉 Interface baseada em Eclipse
👉 Integração com CMCI
👉 Visão consolidada
👉 Operação gráfica + inteligente

💡 O Explorer não substitui o CEMT — ele o abstrai e potencializa.


🔥 O que significa “Manipulating CICS Explorer Data”

No Explorer, “dados” não são só registros.

São recursos vivos do CICS:

  • Transações
  • Programas
  • Arquivos VSAM
  • Filas TS/TD
  • Tasks
  • Conexões
  • Métricas runtime
  • Definições BAS/CSD

👉 Você está manipulando o estado do sistema em produção.


🧩 1) Views: seu novo painel operacional

Cada view é uma tabela dinâmica:

  • Linha = recurso
  • Coluna = atributo

Exemplo (Local Transactions):

NAME | STATUS | PROGRAM | PRIORITY | USE COUNT | DUMPING

💡 Isso substitui múltiplos comandos CEMT.


⚡ Personalização que muda o jogo

Você pode:

✔ Mostrar/ocultar colunas
✔ Reordenar (drag & drop)
✔ Filtrar dados
✔ Ordenar por qualquer atributo


💥 Exemplo real

Você está investigando lentidão:

ANTES:
NAME | GROUP | DESCRIPTION | PROGRAM | PRIORITY | STATUS

DEPOIS:
NAME | STATUS | PRIORITY | USE COUNT | RESPONSE TIME

👉 Em segundos, você enxerga o problema.


🔀 2) Drag & Drop: simples, poderoso, subestimado

Clique no cabeçalho → arraste → solte.

Parece trivial.

👉 Mas em produção isso economiza minutos — e minutos salvam SLA.


🔍 3) Filtering: o bisturi do operador

Ambientes reais têm:

  • Centenas de transações
  • Múltiplas regiões
  • CICSPlex

Sem filtro = caos.

Com filtro:

NAME LIKE PAY*
STATUS = ENABLED
PRIORITY > 200

👉 Você reduz milhares de linhas para o que importa.


📊 4) Sorting: enxergando padrões invisíveis

Clique na coluna → ordena.

Use para:

  • Identificar gargalos
  • Ver consumo alto
  • Detectar anomalias

💡 Ordenar por USE COUNT ou CPU revela muito mais do que logs.


✏️ 5) Editor View: onde o poder mora

Duplo clique em um recurso → abre o Editor.

Aqui você:

  • Visualiza todos os atributos
  • Modifica valores
  • Aplica mudanças em tempo real

🧠 Tipos de atributos

🔽 Lista (seguro)

  • ENABLED / DISABLED
  • TRANDUMP / NOTRANDUMP

⌨️ Freeform (perigoso 😅)

  • PRIORITY
  • TIMEOUT
  • Limites

💥 Exemplo prático (vida real)

Transação com abend intermitente:

  1. Abrir Editor
  2. Alterar:
DUMPING = TRANDUMP
  1. Ctrl + S
  2. Reproduzir erro
  3. Analisar dump

👉 Sem restart. Sem JCL. Sem drama.


🟡 O famoso “>” — detalhe que salva carreira

Se aparecer:

> PRIORITY = 255

👉 Significa:

⚠️ Alterado
⚠️ NÃO salvo

💡 Esse símbolo já causou incidentes reais.


💾 Salvamento — onde muitos erram

Você só aplica mudanças com:

✔ Ctrl + S
✔ Ícone de disquete
✔ Fechar + confirmar

👉 Enter NÃO salva.


🛡️ Validação: o guardião silencioso

Se você tentar algo inválido:

❌ Não salva
❌ Mostra erro
❌ Protege o CICS

Exemplo:

PRIORITY = 9999 → rejeitado

📚 Help do CICS Explorer — sua arma secreta

Aqui está um diferencial absurdo.


⚡ F1: magia instantânea

Em uma view:

👉 Explica a tela

Em um atributo:

👉 Explica o campo

  • Significado
  • Valores válidos
  • Impacto
  • Dependências

💬 Infopop (easter egg de produtividade)

Pop-up rápido com ajuda contextual.

👉 Não abre janela
👉 Não quebra fluxo
👉 Fecha com ESC

💡 É como um “Google interno do CICS”.


🔎 Busca avançada

Você pode buscar:

  • Termos técnicos
  • Mensagens
  • Atributos
  • Procedimentos

🏢 Easter egg corporativo (nível elite)

Você pode integrar documentação interna:

  • Runbooks
  • Playbooks
  • Procedimentos
  • Guias de incidente

👉 E pesquisar tudo via Help.

🔥 Isso transforma o Explorer em um portal DevOps mainframe.


📜 Error Log — a caixa preta do Explorer

Acesse:

Window > Show View > Error Log

Mostra:

  • Informational
  • Warning
  • Error

💥 Quando usar

  • Conexão falha
  • Operação não funciona
  • Comportamento estranho
  • Debug de ambiente

🧠 Dica de ouro

Leia nessa ordem:

  1. Error
  2. Warning
  3. Info

👉 Isso conta a história do problema.


🏆 Workflow completo (nível sênior)

Situação: problema em produção.

Você:

  1. Filtra a view
  2. Reorganiza colunas
  3. Ordena por impacto
  4. Identifica recurso
  5. Abre Editor
  6. Ajusta atributo
  7. Salva
  8. Monitora
  9. Usa Help se necessário
  10. Consulta Error Log

👉 Tudo no Explorer.

Sem sair. Sem 3270.


🤯 Curiosidades que poucos sabem

  • O Explorer é baseado em Eclipse RCP
  • Usa CMCI (HTTP) para comunicação
  • Pode integrar docs internas
  • Funciona como cliente DevOps
  • Substitui dezenas de comandos CEMT
  • Permite operação multi-região (CICSPlex)

💎 Conclusão (sem romantizar)

👉 O CEMT não morreu.
👉 Mas o Explorer mudou o jogo.

Para um dev COBOL sênior:

  • Não é só UI
  • É produtividade
  • É segurança
  • É velocidade
  • É visão sistêmica

🚀 Em uma frase

👉 Quem domina CICS Explorer não opera CICS — governa o ambiente.


sexta-feira, 16 de agosto de 2013

☕🔥 EIBRESP no CICS — O “DNA” dos Erros e Respostas do Mainframe

 



☕🔥 EIBRESP no CICS — O “DNA” dos Erros e Respostas do Mainframe

No universo CICS, existe uma verdade absoluta:

“Se você não trata RESP e RESP2… o CICS tratará você.”

O campo EIBRESP é um dos mecanismos mais importantes do ambiente transacional IBM Mainframe.

Ele informa:

  • se o comando executou corretamente

  • qual erro ocorreu

  • qual condição excepcional aconteceu

  • se houve problema de terminal

  • erro de VSAM

  • problema de comunicação

  • rollback

  • timeout

  • lock

  • storage

  • autorização

  • spool

  • task

  • map

  • TSQ

  • TDQ

  • intersystem

  • e dezenas de outros cenários


☕ O que é EIBRESP?

O EIBRESP pertence ao:

EXEC CICS HANDLE CONDITION

e principalmente ao:

RESP()
RESP2()

Exemplo clássico:

EXEC CICS READ
     FILE('CLIENTE')
     INTO(WS-REGISTRO)
     RIDFLD(WS-CHAVE)
     RESP(WS-RESP)
     RESP2(WS-RESP2)
END-EXEC

Após o comando:

  • WS-RESP recebe o código principal

  • WS-RESP2 traz detalhes adicionais


☕ Por que isso é tão importante?

Porque no CICS:

Nem todo erro gera ABEND.

Na verdade:

  • a maioria dos problemas retorna EIBRESP

  • e o programa CONTINUA

Ou seja:

se você não tratar…

o sistema segue em frente silenciosamente.

Isso é perigosíssimo.


☕ Exemplo clássico de desastre

Imagine:

EXEC CICS READ FILE('CLIENTE')
END-EXEC

Registro não existe.

O CICS retorna:

RESP = 13 (NOTFND)

Mas o programador ignorou.

Resultado:

  • dados inválidos

  • tela lixo

  • cálculos incorretos

  • SQL errado

  • corrupção lógica

Sem abend.
Sem dump.
Sem aviso.

O erro fica “fantasma”.


☕ Arquitetura Interna do EIB

O EIB é:

EXEC Interface Block

Área automática criada pelo CICS para cada task.

Contém:

  • EIBRESP

  • EIBRESP2

  • EIBTRNID

  • EIBTASKN

  • EIBTIME

  • EIBDATE

  • EIBAID

  • EIBCALEN

  • EIBFN

  • etc.

É literalmente o “contexto vivo” da transação.


☕ O fluxo REAL do CICS

Internamente:

Programa envia comando EXEC CICS
↓
Translator converte para CALL DFHEI1
↓
Kernel EXEC Interface processa
↓
Resource Manager executa
↓
Retorno é gravado em EIBRESP
↓
Programa decide o que fazer

Ou seja:

EIBRESP é praticamente o “status code” do kernel CICS.


☕ As categorias dos EIBRESP

Os códigos podem ser agrupados em:

CategoriaExemplos
Arquivo VSAMNOTFND, DUPKEY, ENDFILE
ComunicaçãoTERMERR, SYSIDERR
StorageNOSTG
SegurançaNOTAUTH
QueueQZERO, QBUSY
MAP/BMSMAPFAIL
ProgramasPGMIDERR
TransaçõesTRANSIDERR
SyncpointROLLEDBACK
InterSystemISCINVREQ

☕ Os códigos MAIS IMPORTANTES do mundo real


🔥 01 — ERROR

Erro genérico.

Normalmente significa:

  • comando falhou

  • condição inesperada

  • sem tratamento específico

Exemplo:

IF WS-RESP = DFHRESP(ERROR)

Curiosidade:

Muitos dumps antigos de CICS começam aqui.


🔥 13 — NOTFND

O mais famoso de todos.

Registro não encontrado.

Exemplo:

EXEC CICS READ
     FILE('CLIENTE')
     RIDFLD(WS-ID)
     RESP(WS-RESP)
END-EXEC

Se chave não existir:

RESP = 13

☕ Analogia real

É o equivalente mainframe de:

SELECT * FROM TABELA
WHERE ID=999

Sem linhas retornadas.


☕ Dica profissional

TODO READ deveria tratar:

EVALUATE WS-RESP
   WHEN DFHRESP(NORMAL)
      CONTINUE

   WHEN DFHRESP(NOTFND)
      MOVE 'N' TO WS-EXISTE

   WHEN OTHER
      PERFORM 9000-ERRO
END-EVALUATE

🔥 14 — DUPREC

Registro duplicado.

Muito comum em ESDS/RRDS.


🔥 15 — DUPKEY

Chave duplicada no KSDS.

Clássico de cadastro.

Exemplo:

EXEC CICS WRITE
     FILE('CLIENTE')

Tentou inserir chave já existente.


☕ Curiosidade

Em muitos bancos:

  • o COBOL captura DUPKEY

  • e transforma em mensagem amigável:

CLIENTE JÁ CADASTRADO

Sem o usuário perceber que foi um erro VSAM.


🔥 16 — INVREQ

“Invalid Request”.

Talvez o erro MAIS traiçoeiro do CICS.

Significa:

“Você pediu algo inválido para ESTE contexto.”

Exemplos:

  • READ sem arquivo aberto

  • START inválido

  • LINK incorreto

  • COMMAREA errada

  • comando proibido


☕ Easter Egg técnico

Grande parte dos:

AEI*

internamente começa com INVREQ.


🔥 17 — IOERR

Erro físico/lógico de I/O.

Pode indicar:

  • VSAM corrompido

  • CI quebrado

  • erro disco

  • problema buffer

  • catálogo inconsistente

Quando aparece:

⚠️ operadores começam a ficar nervosos.


🔥 18 — NOSPACE

Sem espaço.

Pode ocorrer em:

  • TSQ

  • TDQ

  • datasets

  • spool

  • buffers

Muito comum em ambientes mal dimensionados.


🔥 22 — LENGERR

Erro de tamanho.

Lenda absoluta do CICS.

Exemplo clássico:

EXEC CICS RECEIVE
     MAP('TELA1')
     INTO(WS-AREA-100)
END-EXEC

Mas o mapa possui 120 bytes.

Boom:

LENGERR

☕ O terror do COBOL antigo

Copys desatualizadas.

O mapa mudou.
O programa não recompilou.

Resultado:

RESP=22

🔥 25 — QBUSY

Queue ocupada.

Muito comum em concorrência pesada.


🔥 27 — PGMIDERR

Programa não encontrado.

Causas:

  • PPT errado

  • programa não instalado

  • nome incorreto

  • loadlib ausente

Exemplo:

EXEC CICS LINK
     PROGRAM('PGMXYZ')

Se não existir:

PGMIDERR

☕ Curiosidade histórica

Nos anos 80:

PGMIDERR era um dos erros mais comuns em produção noturna.

Especialmente após promotes manuais.


🔥 28 — TRANSIDERR

Transação inexistente.

Exemplo:

EXEC CICS START
     TRANSID('ABCD')

Se não existir no PCT:

TRANSIDERR

🔥 29 — ENDDATA

Fim de dados.

Muito comum em:

  • TSQ

  • TDQ

  • browse

Equivalente ao EOF lógico.


🔥 36 — MAPFAIL

Talvez o mais famoso do BMS.

Ocorre quando:

  • usuário pressionou ENTER sem dados

  • MDT desligado

  • campo vazio

  • RECEIVE não trouxe informação


☕ Exemplo REAL

Usuário entra na tela:

CPF: ________

Pressiona ENTER vazio.

CICS:

MAPFAIL

☕ Dica profissional importantíssima

Nunca trate MAPFAIL como erro fatal.

É fluxo normal de tela.


🔥 40 — OVERFLOW

Overflow de armazenamento/dados.

Pode ocorrer em:

  • TSQ

  • COMMAREA

  • buffers


🔥 42 — NOSTG

Sem storage.

Extremamente sério.

O CICS está sem memória suficiente.

Operações podem começar a degradar rapidamente.


☕ Bastidores

Quando NOSTG aparece em sequência:

  • SOS condition

  • short-on-storage

  • risco de região cair

É situação crítica.


🔥 44 — QIDERR

Queue inexistente.

Muito comum em TSQ/TDQ.


🔥 53 — SYSIDERR

Erro de sistema remoto.

Clássico em:

  • MRO

  • ISC

  • IPIC

  • APPC

O sistema remoto:

  • caiu

  • não respondeu

  • não existe

  • sessão falhou


🔥 70 — NOTAUTH

Falha de autorização.

O RACF disse:

NO.

☕ Integração CICS + RACF

Aqui ocorre:

  • verificação de transação

  • FILE

  • TDQ

  • TSQ

  • PROGRAM

  • SURROGAT

  • resources


🔥 73 — WRONGSTAT

Estado inválido.

Muito comum em sessões/APPC.


🔥 76 — CCERROR

Erro de controle de comunicação.


🔥 77 — MAPERROR

Erro estrutural de mapa.

Diferente de MAPFAIL.

MAPERROR normalmente significa:

  • definição inconsistente

  • estrutura inválida

  • problema BMS


🔥 80 — NOSPOOL

Sem spool.

Muito comum em ambientes JES saturados.


🔥 81 — TERMERR

Erro terminal/dispositivo.

Pode indicar:

  • sessão caiu

  • VTAM problemático

  • LU desconectada

  • timeout terminal


🔥 82 — ROLLEDBACK

Rollback executado.

Um dos mais importantes do mundo transacional.

Significa:

SUAS ALTERAÇÕES FORAM DESFEITAS

☕ Cenário clássico

UPDATE CONTA A
UPDATE CONTA B
ERRO NO FINAL
SYNCPOINT ROLLBACK

CICS:

ROLLEDBACK

🔥 84 — DISABLED

Recurso desabilitado.

Pode ser:

  • FILE

  • TRANSACTION

  • TERMINAL

  • PROGRAM

  • CONNECTION


☕ A diferença entre RESP e RESP2

RESP:

erro genérico

RESP2:

detalhamento interno

Exemplo:

RESP  = INVREQ
RESP2 = 8

Cada RESP2 possui significado específico.

É aí que mora o troubleshooting avançado.


☕ Exemplo profissional completo

EXEC CICS READ
     FILE('CLIENTE')
     RIDFLD(WS-CHAVE)
     INTO(WS-REG)
     RESP(WS-RESP)
     RESP2(WS-RESP2)
END-EXEC

EVALUATE WS-RESP

   WHEN DFHRESP(NORMAL)
      CONTINUE

   WHEN DFHRESP(NOTFND)
      MOVE 'CLIENTE INEXISTENTE'
        TO WS-MSG

   WHEN DFHRESP(NOTAUTH)
      MOVE 'SEM AUTORIZACAO'
        TO WS-MSG

   WHEN OTHER
      DISPLAY 'RESP=' WS-RESP
      DISPLAY 'RESP2=' WS-RESP2
      PERFORM 9999-ABEND

END-EVALUATE

☕ Dica de arquiteto CICS

Os melhores sistemas enterprise:

✅ tratam TODOS os RESP
✅ logam RESP2
✅ possuem tabelas de tradução
✅ transformam erro técnico em mensagem funcional
✅ evitam abends desnecessários


☕ Curiosidade histórica

Antes do uso massivo de:

RESP()

muitos programas dependiam de:

HANDLE CONDITION

Isso tornava o fluxo:

  • difícil de rastrear

  • cheio de GO TO

  • quase impossível de debugar

RESP revolucionou o tratamento moderno.


☕ Easter Egg Mainframe

Veteranos conseguem identificar problemas olhando apenas:

AEI9
AEY9
ASRA
MAPFAIL
INVREQ
PGMIDERR

É quase uma linguagem secreta do CICS.


☕ Regra de ouro do CICS

“O comando EXEC CICS nunca deve ser confiado cegamente.”

Sempre:

  • RESP

  • RESP2

  • HANDLE CONDITION

  • HANDLE ABEND

Porque no mundo transacional:

o programa pode continuar funcionando…

mesmo completamente errado.