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. 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.

Este 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 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.

Este 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 verdadeiro do nó Filter e seu terminal de tentativas está conectado a um nó Compute seguido por um terminal MQOutput. Seu terminal de captura está conectado a um subfluxo chamado error1, que fornece uma rotina de processamento de erro comum. Um segundo terminal TryCatch está conectado ao terminal falso do nó Filter. Seus terminais try e de captura estão conectados a seqüências de nós idênticos ao primeiro terminal TryCatch.

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.

Este fluxo de mensagens possui um nó Real-timeInput seguido por um nó TryCatch. O terminal de tentativas do nó TryCatch está conectado ao fluxo de saída normal (Compute seguido por Publication), o terminal de captura está 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 Fluxos de Mensagens Coordenados Globalmente
Manipulando 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

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:50

ac18880_