Você pode projetar um fluxo de mensagens para capturar exceções antes que sejam retornados ao nó input. Em um único fluxo, você pode incluir um ou mais nós TryCatch parra fornecer um único ponto de falha para uma seqüência de nós. Com essa técnica, você pode fornecer uma recuperação ou processamento de erros muito específico.
Um nó TryCatch não processa uma mensagem de nenhuma maneira, ele representa apenas um ponto de decisão em um fluxo de mensagens. Quando o nó TryCatch recebe uma mensagem, ele a propaga para o terminal Try. O intermediário analisa o controle para a seqüência de nós conectados a esse terminal (o fluxo de tentativas).
Se for emitida uma exceção no fluxo de tentativa, o intermediário retornará o controle ao nó TryCatch. O nó grava o conteúdo atual da árvore ExceptionList no log de erros local, em seguida, grava as informações para a exceção atual em ExceptionList, sobrescrevendo as informações armazenadas lá.
O nó agora propaga a mensagem para a seqüência de nós conectados ao terminal Catch (o fluxo de captura). O conteúdo da mensagem propagada é idêntico ao conteúdo que foi propagado para o terminal Ttry, que é o conteúdo da árvore quando o nó TryCatch o recebeu pela primeira vez. Incrementa essa árvore com novas informações de exceção que gravou para Lista de Exceção. Quaisquer modificações ou adições que os nós no fluxo de tentativas façam na árvore de mensagens não estão presentes na árvore de mensagens que é propagada para o fluxo de capturas.
Entretanto, se o fluxo de tentativas tiver concluído o processamento que envolva as atualizações para os bancos de dados externos, eles não serão perdidos. As atualizações persistem enquanto a mensagem for processada pelo fluxo de capturas e a decisão sobre se as atualizações são consolidadas ou revertidas é feita na configuração do seu fluxo de mensagens e nós individuais que interagem com os bancos de dados. Se as atualizações forem consolidadas devido à configuração que você definiu, será necessário incluir a lógica no seu fluxo de captura que reverte as alterações feitas.
Para rever as opções para configuração, consulte Configurando Fluxos de Mensagens Coordenados Globalmente.
O intermediário retorna o controle ao próximo ponto de captura no fluxo de mensagens (que pode ser outro nó TryCatch, mas é sempre, no último caso, o nó de entrada) se uma das seguintes condições for verdadeira:
O exemplo a seguir mostra como você pode configurar o fluxo para capturar exceções no nó de entrada. O terminal Catch do nó MQInput está conectado a um nó Trace para registrar o erro.
No exemplo a seguir, o fluxo de mensagens possui dois fluxos de processamento separados conectados aos terminais True e False do nó Filter. Aqui um nó TryCatch está incluído em cada uma das duas rotas que a mensagem pode percorrer. O terminal Catch dos nós TryCatch está conectado a um subfluxo de processamento de erros comum.
Se o nó de entrada em seu fluxo de mensagens não tiver um terminal Catch (por exemplo, Real-timeInput) e você desejar processar erros no fluxo, será necessário incluir um nó TryCatch. O exemplo a seguir mostra como você pode conectar um fluxo para fornecer esse processamento de erro. Neste exemplo, você pode configurar a ESQL no nó Compute no fluxo de captura para examinar a exceção que foi capturada e configurar o nome da fila de saída dinamicamente.