Ao utilizar fluxos de agregação, podem ocorre exceções.
Conclua as seguintes tarefas:
Se for detectado um erro no recebimento de dados de um nó AggregateReply, o intermediário emite 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 ocorre, ela é capturada em um de dois locais:
A tabela a seguir lista eventos e descreve o que ocorre a uma exceção e o que ocorre no recebimento de dados do nó AggregateReply.
Evento | Mensagem Propagada | Terminal de Saída | Exceção Capturada em |
---|---|---|---|
Uma resposta esperada chega no nó input e é transmitida para o terminal In do nó AggregateReply. A resposta é a última necessária para tornar uma agregação completa. | Uma mensagem de resposta agregada que contém todas as respostas | Saída | Nó de Entrada |
Uma resposta inesperada chega no nó de entrada e é transmitida ao nó AggregateReply. A resposta não é reconhecida como uma resposta válida e a propriedade Tempo Limite de Mensagem Desconhecido é configurada para 0. | Mensagem recebida | Desc. | Nó de Entrada |
Um tempo limite ocorre porque todas as respostas de uma agregação ainda não chegaram. | Uma mensagem de resposta agregada que contém todas as respostas que foram recebidas | Tempo Limite | Nó AggregateReply |
Ocorre um tempo limite desconhecido, pois uma mensagem retida não está identificada como 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. | Uma mensagem de resposta agregada que contém todas as respostas | Saída | Nó AggregateReply |
Para tratar de erros que ocorrem nos fluxos de agregação, você deve capturar essas exceções em todas as instâncias de cada um desses nós no fluxo de mensagens.
O exemplo de ESQL abaixo mostra como incluir um cabeçalho MQMD e transmitir as respostas recebidas pelo nó AggregateReply:
-- Incluir MQMD SET OutputRoot.MQMD.Version = 2; . -- Incluir respostas consolidadas na mensagem de saída SET OutputRoot.XMLNS.Data.Parsed = InputRoot.ComIbmAggregateReplyBody; .
Para propagar as informações sobre a exceção na mensagem de saída, configure a propriedade Modo de Computação do nó Compute para um valor que inclua Exceção.