🧠 Explicação
O comando EXEC CICS ENDBR é utilizado para encerrar uma operação de navegação sequencial (browse) sobre um arquivo ou tabela de dados no CICS, previamente iniciada com o comando STARTBR. Ele libera os recursos e bloqueios associados à navegação.

É essencial emitir o ENDBR após terminar o browse, especialmente antes de executar comandos como READ UPDATE, para evitar abends de bloqueio. Esse comando também deve ser utilizado antes de um ponto de sincronização, garantindo a liberação correta dos recursos.

🛠️ Usos mais comuns

  • Encerrar uma navegação iniciada com STARTBR e usada com READ NEXT, READ PREV, etc.

  • Evitar erros de bloqueio (como AEI9) ao executar READ UPDATE após navegação.

  • Liberar recursos do CICS associados à sessão de browse antes de um ponto de sincronização.

🧾 Sintaxe

EXEC CICS ENDBR
     FILE(nome-do-arquivo)
     [REQID(identificador-opcional)]
     [SYSID(nome-do-sistema)]
END-EXEC.

💻 Exemplo prático em COBOL

EXEC CICS ENDBR
     FILE('CLIENTES')
END-EXEC.

Neste exemplo, a navegação no arquivo CLIENTES é encerrada, liberando os recursos associados ao browse.

📋 Parâmetros e opções

Opção Descrição
FILE(nome) Nome do arquivo que está sendo navegado. Obrigatório.
REQID(valor) Identificador único para o browse, utilizado para controlar múltiplas operações simultâneas (opcional).
SYSID(nome) Nome do sistema remoto, caso o arquivo esteja em outra região CICS (1 a 4 caracteres).

📌 Regras

  • O ENDBR deve ser chamado após a navegação com STARTBR, mesmo que nenhum registro tenha sido encontrado.

  • Se o STARTBR não foi bem-sucedido, o ENDBR não precisa ser emitido.

  • O uso da opção UPDATE no STARTBR exige o uso de ENDBR antes de qualquer READ UPDATE.

  • O comando é thread-safe apenas se:

    • O arquivo for local (VSAM/RLS).

    • Ou for remoto acessado via IPIC.

  • Não é thread-safe para arquivos BDAM, tabelas compartilhadas ou conexões não-IPIC.

💡 Dicas

  • Sempre que navegar com STARTBR, inclua o ENDBR ao final — mesmo em blocos de tratamento de erro.

  • Se estiver utilizando REQID, mantenha valores distintos para cada operação paralela de browse.

  • Combine ENDBR com SYNCPOINT para garantir consistência e evitar acúmulo de bloqueios.

  • O uso correto de ENDBR evita abends como AEI9 (bloqueio automático).

✅ Conclusão
O comando EXEC CICS ENDBR é fundamental para encerrar corretamente uma operação de navegação sobre arquivos no CICS. Ele garante a liberação dos recursos associados, evita bloqueios indesejados e promove maior controle sobre as transações. Seu uso é simples, mas indispensável em qualquer rotina que utilize STARTBR.