Ao projetar seu fluxo de mensagens, você deve considerar
quais terminais no nó input devem ser conectados:
- Se o nó detectar um erro, ele sempre propagará a mensagem para o
terminal de falha se o nó possui um e se você tiver conectado um
fluxo de falhas.
- Se você conectar o terminal catch (se o nó possuir um), isso
indica que você deseja manipular todas as exceções que são geradas no
fluxo de saída. Isso trata dos erros que podem ser esperados no fluxo
de saída. O intermediário não toma nenhuma medida, a menos
que exista uma exceção no fluxo de captura e a mensagem seja
transacional.
Você pode conectar o terminal failure para manipular esse caso, se
preferir.
- Se você não conectar o terminal de captura ou o nó não possuir o
terminal de captura, o intermediário fornecerá o processamento
padrão. Isso depende do nó e se a mensagem é transacional. O
processamento de mensagens não transacionais está descrito neste
tópico. Consulte Tratamento de Erro de MQInput para obter detalhes sobre como esses nós manipulam mensagens transacionais (outros nós de entrada não suportam mensagens transacionais).
Todos os nós de entrada processam mensagens não transacionais
e não persistentes.
Os nós de entrada internos manipulam falhas e exceções associadas a
essas mensagens da seguinte maneira:
- Se o nó detectar um erro interno:
- Se o nó tiver propagado com êxito a mensagem para o terminal de
saída e uma exceção posterior resultar na mensagem que está sendo
retornada ao nó input:
- Se você não conectou o terminal catch ou o nó não possui um
terminal catch, o nó registrará o erro no registro de erros local e
descartará a mensagem.
- Se você conectou o terminal catch, será responsável pelo
tratamento do erro no fluxo de capturas. O intermediário
cria uma nova Lista de Exceção para representar o erro que é propagado
no terminal catch como parte da árvore de mensagens, mas nem o nó e
nem o intermediário fornecem qualquer processamento adicional
de exceções.
- Se o nó já propagou a mensagem para o terminal catch e uma
exceção for emitida no fluxo catch:
- Se o nó tiver propagado a mensagem para o terminal failure e uma
exceção for emitida no fluxo de falha, o nó registrará o erro no registro
de erros local e descartará a mensagem.
Essa ação é resumida na tabela abaixo:
Evento de Erro |
Terminal Failure Conectado |
Terminal Failure Não Conectado |
Terminal Catch Conectado |
Terminal Catch Não Conectado |
Nó Detecta Erro Interno |
Fluxo de Falhas Manipula o Erro |
Nó Registra o Erro e Descarta a Mensagem |
Não se aplica |
Não se aplica |
Nó propaga a mensagem para terminal de saída,
ocorre exceção no fluxo de saída. |
Não se aplica |
Não se aplica |
Fluxo de captura trata do erro |
Nó Registra o Erro e Descarta a Mensagem |
Nó propaga a mensagem para o terminal catch,
ocorre exceção no fluxo catch |
Fluxo de Falhas Trata do Erro (não
SCADAInput) |
Nó Registra o Erro e Descarta a Mensagem |
Não se aplica |
Não se aplica |
Nó propaga mensagem para terminal failure,
ocorre exceção no fluxo de falha |
Não se aplica |
Não se aplica |
Nó Registra o Erro e Descarta a Mensagem |
Nó Registra o Erro e Descarta a Mensagem |