Criando um Fluxo de Recepção de Agregação

O fluxo de recepção de agregação recebe as respostas para as mensagens de pedido enviadas pelo fluxo de difusão e constrói uma mensagem de resposta combinada contendo todas as respostas recebidas.

Antes de começar:

Para concluir esta tarefa, você deve ter concluído a seguinte tarefa:

Você também é aconselhado a ler a visão geral sobre Agregação de Fluxo de Mensagens antes de concluir esta tarefa.

Dependendo de se o fluxo de fan-out é transacional e, se não for, dos valores de tempo limite especificados, a mensagem de resposta combinada pode ser gerada antes de todas as respostas terem sido recebidas pelo fluxo de fan-in.Consulte Criando o Fluxo de Difusão de Agregação para obter informações adicionais sobre este tópico.

Para revisar um exemplo de um fluxo de fan-in, consulte a amostra Airline fornecida com WebSphere Message Broker.

Para criar o fluxo de recepção:

  1. Alterne para o Perspectiva do Desenvolvimento de Aplicativos do Intermediário.
  2. Crie um fluxo de mensagens para fornecer o processamento de recepção.
  3. Inclua os seguintes nós na visualização do editor e configure e conecte-os conforme descrito:
    Nó de Entrada
    O nó de entrada recebe as respostas para várias mensagens de pedidos geradas a partir do fluxo de difusão.

    Deve ser um nó de entrada que suporte o modelo pedido/resposta, como um nó MQInput ou uma mistura desses nós (dependendo dos requisitos dos aplicativos que enviam essas respostas). A resposta recebida por cada nó de entrada deve ser enviada pelo mesmo protocolo que o pedido ao qual ele corresponde (por exemplo, se você incluir um nó MQOutput no fluxo de difusão, a resposta para esse pedido deverá ser recebida por um nó MQInput nesse fluxo).

    1. Clique com o botão direito no nó de entrada e clique em Propriedades.
    2. Especifique a origem de mensagens de entrada para esse nó. Por exemplo, especifique o nome de uma fila do WebSphere MQ na propriedade Básica Nome da Fila a partir da qual o nó MQInput recupera mensagens.
    3. Opcional: especifique os valores para qualquer outra propriedade que deseja configurar para este nó.
    4. Conecte o terminal de saída do nó de entrada ao terminal de entrada de um nó AggregateReply.

      Isso representa a configuração mais simples; se apropriado, você pode incluir outros nós entre o nó de entrada e o nó AggregateReply. Por exemplo, talvez você queira armazenar as respostas para fins de auditoria (em um nó Warehouse).

    Nó AggregateReply
    O nó AggregateReply recebe as respostas de entrada do nó de entrada através de seu terminal de entrada. Cada mensagem de resposta recebida pelo nó AggregateReply é armazenada de forma persistente no banco de dados do intermediário.

    Quando todas as respostas para um determinado grupo de pedidos de agregação tiverem sido coletadas, o nó AggregateReply criará uma mensagem de resposta agregada e a propagará através do terminal out.

    1. Clique com o botão direito no nó AggregateReply e clique em Propriedades.
    2. Defina a propriedade Nome Agregado de AggregateReply para identificar esta agregação. Defina este valor como o mesmo valor definido para a propriedade Nome Agregado no nó AggregateControl correspondente no fluxo de difusão.
    3. Opcional: defina um valor para Tempo Limite de Mensagem Desconhecida, se desejar reter uma mensagem não reconhecida antes de propagá-la para o terminal desconhecido. Se estiver utilizando fluxos de difusão e de recepção separados, talvez você queira definir esse valor como um número diferente de zero, caso haja atrasos na chegada da mensagem de controle.
    4. Opcional: conecte o terminal unknown a outro nó ou seqüência de nós se desejar tratar explicitamente mensagens não-reconhecidas. Se você não conectar esse terminal a outro nó no fluxo de mensagens, as mensagens propagadas através desse terminal serão descartadas.
    5. Opcional: se você tiver especificado um valor de tempo limite para essa agregação no nó AggregateControl, conecte o terminal timeout a outro nó ou seqüência de nós, se desejar tratar explicitamente tempos limite que expiram antes da recepção de todas as respostas. As respostas agregadas parcialmente completas são enviadas para o terminal timeout, se o cronômetro expirar. Se você não conectar esse terminal a outro nó no fluxo de mensagens, as mensagens propagadas através desse terminal serão descartadas.
    6. Opcional: especifique os valores para qualquer outra propriedade que deseja configurar para este nó.
    7. Conecte o terminal de saída do nó AggregateReply ao terminal de entrada de um nó Compute.
    Nota: O terminal Control do nó AggregateReply está obsoleto na Versão 6.0 e, por padrão, quaisquer conexões a esse terminal (direta ou indireta) serão ignoradas. Isso é para maximizar a eficiência dos fluxos de agregação e não danifica a confiabilidade das agregações. Essa é a configuração otimizada.

    No entanto, se você quiser que o nó AggregateReply receba a mensagem de controle em seu terminal de controle enviada pelo nó AggregateControl correspondente no fluxo de fan-out, você deve fazer as conexões necessárias conforme descrito em Criando o Fluxo de Difusão de Agregação. Recomenda-se que o caminho do nó AggregateReply para o nó de saída seja o mais direto possível. Manter o fluxo de fan-in curto beneficiará o desempenho das agregações. Não modifique o conteúdo dessa mensagem de controle.

    Além disso, para que o terminal Control e conexões a ele sejam reconhecidas, você deve ativar a variável de ambiente MQSI_AGGR_COMPAT_MODE. No entanto, escolher essa opção tem implicações em relação ao desempenho e ao comportamento das agregações de mensagens. Para obter uma descrição completa dessas implicações e da variável de ambiente, consulte Utilizando Mensagens de Controle em Fluxos de Agregação.

    Nó Compute
    O nó Compute recebe a mensagem que contém as respostas combinadas. É improvável que essa mensagem combinada esteja em um formato que seja válido para saída e você deve configurar esse nó para criar uma mensagem de saída válida.
    1. Clique com o botão direito no nó Compute e clique em Propriedades.
    2. Especifique o nome do módulo ESQL que personaliza a função desse nó na propriedade Básica Módulo ESQL.
    3. Clique com o botão direito no nó e clique em Abrir ESQL para abrir o arquivo ESQL que contém o módulo para esse nó. O módulo é realçado na visualização do editor ESQL.
    4. Codifique o ESQL para criar uma única mensagem de saída a partir de respostas agregadas na mensagem de entrada.

      A estrutura da mensagem de resposta agregada que é propagada através do terminal de saída e as informações sobre como acessar seu conteúdo são fornecidas em Acessando o Conteúdo de Mensagens Combinadas.

    5. Opcional: especifique os valores para qualquer outra propriedade que deseja configurar para este nó.
    6. Conecte o terminal de saída do nó Compute ao terminal de entrada do nó de saída que representa o destino da única mensagem de resposta.
    Nó de Saída
    Inclua um nó de saída para seu fluxo de recepção. Esse pode ser qualquer um dos nós internos ou um nó de saída definido pelo usuário.
    1. Clique com o botão direito no nó de saída e clique em Propriedades.
    2. Especifique o destino da mensagem de saída para esse nó. Por exemplo, especifique o nome de uma fila do WebSphere MQ na propriedade Básica Nome da Fila para a qual o nó MQOutput envia mensagens.
    3. Opcional: especifique os valores para qualquer outra propriedade que deseja configurar para este nó.
  4. Pressione Ctrl-S para salvar o fluxo de mensagens e validar sua configuração.

Acessando o Conteúdo de Mensagens Combinadas

O nó AggregateReply cria uma pasta na árvore de mensagens combinadas abaixo da Raiz, chamada ComIbmAggregateReplyBody. Abaixo disso, ele cria várias pastas utilizando os nomes de pastas definidos nos nós AggregateRequest. As mensagens de resposta associadas são colocadas abaixo delas.

Por exemplo, as mensagens de pedidos podem ter nomes de pastas:

  • TAXI
  • HOTEL

A mensagem de resposta agregada resultante criada pelo nó AggregateReply poderá ter uma estrutura semelhante à mostrada abaixo:


Esse é um diagrama da árvore para o conteúdo da mensagem agregada criado sob o elemento ComIbmAggregateReplyBody sob Raiz.Seu conteúdo é descrito no texto circundante.

Você pode utilizar um nó Compute para acessar a resposta da empresa de táxi utilizando o seguinte nome de correlação:

InputRoot.ComIbmAggregateReplyBody.TAXI.xyz

O nome da pasta não precisa ser exclusivo. Se você tiver vários pedidos com o nome de pasta TAXI, poderá acessar as respostas separadas utilizando a notação subscrita da matriz, por exemplo:

InputRoot.ComIbmAggregateReplyBody.TAXI[1].xyz
InputRoot.ComIbmAggregateReplyBody.TAXI[2].xyz
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
ac12300_