🧠 Explicação
O comando EXEC CICS ABEND
é utilizado para encerrar uma transação de forma anormal, ou seja, provocar um ABEND intencional no programa. Pode ser usado para interromper a execução em casos de erro crítico, violação de regras de negócio ou falhas que impedem a continuação da tarefa.
Esse encerramento pode gerar um despejo (dump) do ambiente de execução, dependendo das opções utilizadas. O CICS libera toda a memória associada à tarefa encerrada e notifica o Language Environment sobre o erro.
🛠️ Usos mais comuns
-
Encerrar uma tarefa quando ocorre um erro irrecuperável
-
Forçar o término de uma transação com dump para análise
-
Simular falhas para fins de teste de robustez e tratamento
-
Cancelar manipulações feitas com
HANDLE ABEND
🧾 Sintaxe
EXEC CICS ABEND
[ABCODE('xxxx')]
[CANCEL]
[NODUMP]
END-EXEC.
💻 Exemplo prático
IF VALOR-INVALIDO
EXEC CICS ABEND
ABCODE('ERRO')
END-EXEC.
Esse exemplo encerra a tarefa com o código 'ERRO'
, que será exibido no relatório de dump.
⚙️ Opções disponíveis
Opção | Função |
---|---|
ABCODE('X') |
Define o código de encerramento a ser usado no dump. Ex: 'VALD' , 'ERRO' |
CANCEL |
Ignora qualquer HANDLE ABEND ativo e força o término imediato |
NODUMP |
Encerra a tarefa sem gerar dump, mesmo que existam regras definidas para isso |
📋 Detalhamento das opções
▶ ABCODE('XXXX')
-
Gera um dump da tarefa com o código fornecido.
-
Útil para análise posterior.
-
⚠️ Não use códigos iniciados com a letra A — reservados pelo CICS.
▶ CANCEL
-
Remove todos os manipuladores
HANDLE ABEND
ativos. -
Força o término anormal da tarefa ignorando capturas programadas.
-
Pode ser usado como "último recurso" quando um erro deve interromper tudo.
▶ NODUMP
-
Finaliza a tarefa sem gerar despejo.
-
Recomendado em ambientes produtivos para evitar geração excessiva de dumps.
-
Em alguns casos, pode ser ignorado (ex: configurações de dump forçado no CICS).
📘 Mensagem gerada no Language Environment
Ao executar um EXEC CICS ABEND
, a seguinte mensagem é gravada no CEEMSG:
CEE3250C O sistema ou usuário finalizou de forma anormal XXXX
Onde XXXX
será o valor definido em ABCODE
.
💡 Dicas
-
Use
HANDLE ABEND
para capturar abends controladamente, se quiser evitar o encerramento abrupto. -
Utilize
NODUMP
em ambientes onde você não deseja gerar logs de erro. -
Crie um padrão de
ABCODE
com 4 letras significativas (ex:'VAL1'
,'DBER'
,'FILE'
). -
Evite usar
CANCEL
se o programa puder tratar o erro normalmente comHANDLE ABEND
.
✅ Conclusão
O comando EXEC CICS ABEND
é uma ferramenta poderosa para forçar o encerramento de uma transação CICS de maneira controlada ou crítica. Ele deve ser usado com responsabilidade, sempre considerando as opções ABCODE
, CANCEL
e NODUMP
conforme o objetivo: depurar, cancelar ou simplesmente evitar falhas maiores. Dominar seu uso é essencial para garantir a robustez dos sistemas CICS em produção.