Manipulação de Exceções em Fluxos de Agregação

Ao utilizar fluxos de agregação, você pode descobrir a ocorrência de exceções. Este tópico informa como manipulá-las.

Antes de começar:

Para concluir esta tarefa, você deve ter concluído as tarefas a seguir:

Lidando com Exceções

Se for detectado um downstream de um nó AggregateReply, o intermediário emitirá uma exceção. Outro nó no fluxo de mensagens também pode emitir uma exceção utilizando a instrução ESQL THROW. Em qualquer caso, quando uma exceção é emitida, ela é capturada de um de dois locais:

  • O nó input no qual as respostas chegam
  • No nó AggregateReply

A tabela a seguir lista eventos e o que ocorre a uma exceção emitida downstream do nó AggregateReply.

Evento Mensagem Propagada Terminal de Saída Exceção Capturada em
Uma resposta esperada chega no nó de entrada e é transmitida para o terminal In do nó AggregateReply. É a última resposta necessária para concluir uma agregação. Mensagem de resposta agregada contendo todas as respostas Saída Nó de Entrada
Uma resposta inesperada chega no nó de entrada e é transmitida para o nó AggregateReply. Ela não é reconhecida como uma resposta válida e a propriedade Tempo Limite de Mensagem Desconhecido é definida como 0. Mensagem recebida Desc. Nó de Entrada
Um tempo limite ocorre porque todas as respostas de uma agregação ainda não chegaram. Mensagem de resposta agregada contendo todas as respostas que foram recebidas Tempo Limite Nó AggregateReply
Um tempo limite desconhecido ocorre porque uma mensagem retida não foi identificada como sendo uma resposta válida. Mensagem retida Desc. Nó AggregateReply
Descobre-se que uma agregação foi concluída em algum momento diferente de quando a última resposta chegou. Mensagem de resposta agregada contendo todas as respostas Saída Nó AggregateReply

Se desejar tratar erros que ocorrem em fluxos de agregação, é necessário capturar estas exceções em todas as instâncias de cada um destes nós no fluxo de mensagens. Para isso:

  1. Alterne para o Perspectiva do Desenvolvimento de Aplicativos do Intermediário.
  2. Abra o fluxo de mensagens com o qual deseja trabalhar.
  3. Se você mesmo desejar tratar essas exceções, conecte o terminal catch de cada nó de entrada e AggregateReply a uma seqüência de nós que tratam o erro ocorrido.

    Se desejar uma abordagem unificada para o manuseio de erros, conecte os terminais catch de todos esses nós com uma única seqüência de nós ou crie um subfluxo que manuseie erros de uma forma única e consistente e que conecte esse subfluxo a cada terminal catch.

  4. Se desejar que o intermediário manuseie essas exceções utilizando técnicas de manuseio de erros padrão, não conecte os terminais catch desses nós.
Se conectar o terminal de captura do nó AggregateReply, e quiser enviar a mensagem propagada através deste terminal a um destino no qual ela possa ser recuperada para um processamento posterior, você deve incluir um nó Compute no fluxo de captura para fornecer qualquer processamento específico para transporte. Por exemplo, você deve incluir um cabeçalho MQMD se quiser colocar a mensagem em uma fila do WebSphere MQ a partir de um nó MQOutput.

O exemplo ESQL abaixo mostra como incluir um cabeçalho MQMD e como transmitir as respostas recebidas pelo nó AggregateReply:

-- Incluir MQMD
SET OutputRoot.MQMD.Version = 2;
.
-- Incluir respostas consolidadas na mensagem de saída
SET OutputRoot.XML.Data.Parsed = InputRoot.ComIbmAggregateReplyBody;
.

Se deseja propagar a informação sobre a exceção da mensagem de saída, você também deve definir a propriedade do modo Compute do nó Compute para um valor que inclua a Exceção.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac12340_