Capturando Exceções em um Nó TryCatch

Você pode projetar um fluxo de mensagens para capturar exceções antes que sejam retornados ao nó input. Dentro de um único fluxo, você pode incluir um ou mais nós TryCatch para fornecer um único ponto de defeito 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 forma alguma, ele representa apenas um ponto de decisão em um fluxo de mensagens. Quando o nó TryCatch recebe uma mensagem, ele o 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 uma exceção for emitida no fluxo de tentativas, o intermediário retornará o controle para o nó TryCatch. O nó grava o conteúdo atual de Lista de Exceção para o registro de erros local, em seguida grava as informações para a exceção atual para Lista de Exceção, substituindo as informações armazenadas nesse local.

O nó agora propaga a mensagem para a seqüência de nós para o terminal catch (o fluxo de capturas). O conteúdo da árvore de mensagens que é propagado é idêntico ao conteúdo que foi propagado para o terminal try, que é o conteúdo da árvore quando o nó TryCatch o recebeu primeiramente. 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 Nós para Fluxos de Mensagens Coordenados.

O intermediário retorna o controle para o próximo ponto de captura no fluxo de mensagens (que pode ser outro nó TryCatch, mas é sempre, no último caso, o nó input) se:

O exemplo abaixo mostra como você pode configurar o fluxo para capturar as exceções no nó input. O terminal catch do nó MQInput está conectado a um nó Trace para registrar o erro.


Esse fluxo de mensagens possui um nó MQInput, um nó Compute e um nó MQOutput. O terminal de captura do nó MQInput está conectado a um nó Trace.

No exemplo abaixo, o fluxo de mensagens possui dois fluxos de processamento separados conectados aos terminais true e false do nó Filter. Aqui, um nó TryCatch é incluído em cada uma das duas rotas que a mensagem pode seguir. O terminal catch dos dois terminais TryCatch está conectado a um subfluxo comum de processamento de erro.


Esse fluxo de mensagens possui um nó MQInput seguido por um nó Filter que foi codificado para testar um valor na mensagem. Um nó TryCatch está conectado ao terminal true do nó Filter e seu terminal é conectado a um nó Compute seguido por um terminal MQOutput. O terminal catch é conectado a um subfluxo denominado error1 que fornece uma rotina de processamento de erro comum. Um segundo terminal TryCatch é conectado ao terminal false do nó Filter. Os terminais de tentativa e de captura são conectados para seqüências de nós idênticas ao primeiro terminal TryCatch.

Se o nó input no fluxo de mensagens não possui um terminal catch (por exemplo, Real-timeInput), e você deseja processar os erros no fluxo, terá que incluir um nó TryCatch. O exemplo abaixo mostra como você poderia conectar um fluxo para fornecer esse processamento de erro. Nesse exemplo, você poderia configurar o ESQL no nó Compute do fluxo de captura para examinar a exceção que foi capturada e definir o nome da fila de saída dinamicamente.


Esse fluxo de mensagens possui um nó Real-timeInput seguido de um nó TryCatch. O terminal de tentativa do nó TryCatch é conectado ao fluxo de saída normal (Compute seguido por Publication), o terminal de captura é conectado ao fluxo de captura (Trace seguido por Compute seguido por MQOutput).
Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Visão Geral da Implementação
Tarefas relacionadas
Utilizando Subfluxos
Criação de um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Editando Propriedades Configuráveis
Configurando Nós para Fluxos de Mensagens Coordenados
Manipulação de Exceções em Fluxos de Agregação
Referências relacionadas
Nós Internos
WebSphere MQ Enterprise Transport
WebSphere MQ Mobile Transport
WebSphere MQ Multicast Transport
WebSphere MQ Real-time Transport
WebSphere MQ Telemetry Transport
WebSphere MQ Web Services Transport
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac18880_