WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Configurando Valores de Tempo Limite para Agregação

Você pode utilizar duas propriedades de nós de agregação para definir valores de tempo limite para processamento de mensagens agregadas.

Antes de começar:
Para concluir esta tarefa, você deve ter concluído as tarefas a seguir:
Duas situações poderão exigir o uso de tempos limite:
  • A necessidade de receber uma mensagem de resposta agregada em um tempo especificado. Para essa situação, configure a propriedade Tempo Limite do nó AggregateControl.
  • A necessidade de aguardar antes de propagar uma mensagem não reconhecida ao terminal Desconhecido. Para essa situação, configure a propriedade Tempo Limite de Mensagem Desconhecida no nó AggregateReply.
As seções a seguir descrevem com mais detalhes cada situação.

Para receber uma mensagem de resposta agregada em um tempo especificado

Em algumas situações, pode ser necessário receber uma mensagem de resposta agregada dentro de um tempo especificado. Algumas mensagens de resposta podem ser lentas para retornar ou podem nunca chegar. Para essas situações, abra o fluxo de mensagens de fan-out e configure o intervalo de tempo limite usando uma das seguintes etapas:
Diretamente no nó AggregateControl
Configure a propriedade Tempo Limite do nó AggregateControl para especificar quanto tempo (em segundos) o broker deve aguardar respostas. Por padrão, essa propriedade é configurada como 0 (zero), o que significa que não há tempo limite e o broker espera indefinidamente. Para informações adicionais, consulte Nó AggregateControl.
Usando um serviço configurável de agregação
Também é possível usar o serviço configurável de agregação para especificar o intervalo de tempo limite. É possível criar um serviço configurável de Agregação com o mesmo nome da propriedade Nome Agregado do nó AggregateControl e especificar o valor de tempo limite na propriedade timeoutSeconds do serviço configurável. Como alternativa, é possível criar um serviço configurável de agregação com o mesmo nome do grupo de execução. Os valores de serviços configuráveis de agregação são obtidos na seguinte ordem:
  1. Se o serviço configurável de Agregação existir com o mesmo nome da agregação, que é definido na propriedade Nome do Agregado, esse serviço configurável será usado.
  2. Se não existir um serviço configurável com o mesmo nome da agregação, mas um serviço configurável existir com o mesmo nome do grupo de execução, esse serviço configurável será usado.

Se existir um serviço configurável de agregação com o mesmo nome de um grupo de execução, ele poderá ser usado para cada agregação no grupo de execução. No entanto, se existir um serviço configurável com o mesmo nome de uma agregação no grupo de execução, ele será usado para essa agregação específica. Em cada caso, o valor da propriedade timeoutSeconds do serviço configurável substitui a propriedade Tempo Limite do nó AggregateControl.

Para obter informações adicionais sobre o serviço configurável Agregação, consulte Propriedades de Serviços Configuráveis.

Dinamicamente a partir de uma mensagem recebida

É possível usar a propriedade Local do Tempo Limite do nó AggregateControl para especificar o local de um valor de tempo limite na mensagem recebida. Qualquer valor de tempo limite especificado dessa maneira substitui os valores especificados pelo nó AggregateControl e o serviço configurável de Agregação.

Para informações adicionais, consulte Nó AggregateControl.

A precedência do tempo limite é determinada pelos valores configurados na mensagem, no serviço configurável ou no nó, na seguinte ordem:
  1. Se um valor de tempo limite for especificado na mensagem recebida (no local especificado pela propriedade Local do Tempo Limite do nó AggregateControl) esse valor será usado.
  2. Se nenhum local for especificado pela propriedade Local do Tempo Limite ou se o local na mensagem estiver vazio ou não existir, o valor especificado pela propriedade timeoutSeconds do serviço configurável de Agregação será usado (se existir um).
  3. Se nenhum serviço configurável de Agregação tiver sido definido ou se a propriedade timeoutSeconds do serviço configurável não estiver configurada, será usado o valor que será configurado na propriedade Tempo Limite do nó AggregateControl.

Por padrão, a pesquisa de tempo limite ocorre a cada 5 segundos. Portanto, se você configurar a propriedade Tempo Limite com um valor que não seja múltiplo de 5, um atraso extra ocorrerá. Por exemplo, se você configurar a propriedade Tempo Limite como 7 segundos, verá um atraso de 3 segundos até que a próxima pesquisa de tempo limite ocorra. É possível alterar o intervalo de pesquisa de tempo limite padrão usando a variável de ambiente MQSI_AGGR_WAIT_TIMEOUT. Os valores válidos são 1000 - 5000 milissegundos. Para alterar o intervalo de pesquisa padrão, pare o broker e, em seguida, reinicie-o em um ambiente no qual você tenha configurado a variável de ambiente MQSI_AGGR_WAIT_TIMEOUT.

Se o intervalo de tempo limite decorrer sem que todas as respostas tenham chegado, as respostas que chegaram serão transformadas em uma mensagem de resposta agregada pelo nó AggregateReply correspondente e propagadas para seu terminal de Tempo Limite. É possível processar esta mensagem de resposta parcial da mesma maneira que uma mensagem de resposta agregada completa. Se preferir, você pode fornecer processamento especial para respostas agregadas incompletas.

Para esperar antes de propagar uma mensagem não reconhecida ao terminal Desconhecido

Quando uma mensagem chega ao terminal de Entrada de um nó AggregateReply, ela é examinada para ver se é uma mensagem de resposta esperada. Se não for reconhecida, a mensagem será propagada para o terminal Desconhecido. Talvez você queira que o broker aguarde por um período de tempo específico antes de propagar a mensagem pelos seguintes motivos:
  • A mensagem de resposta poderá chegar antes que o trabalho executado pelo nó AggregateRequest tenha sido confirmado de forma transacional. Essa situação pode ser evitada com a configuração da propriedade Modo de Transação do nó de entrada, conforme descrito em Criando o Fluxo de Difusão de Agregação.
  • A mensagem de resposta pode chegar antes da mensagem de controle. Essa situação pode ser evitada deixando desconectado o terminal de Controle do nó AggregateControl. Para obter informações adicionais sobre as implicações de conectar o Terminal de controle, consulte Utilizando Mensagens de Controle em Fluxos de Agregação.
Essas situações têm mais probabilidade de ocorrer se você enviar as mensagens de solicitação fora do ponto de sincronização, e podem resultar em respostas válidas sendo enviadas para o terminal Desconhecido. Para reduzir a probabilidade desse evento, execute as etapas a seguir.
  1. Abra o fluxo de mensagens de recepção.
  2. Configure a propriedade Tempo Limite de Mensagem Desconhecida do nó AggregateReply.

    Quando você configurar essa propriedade, uma mensagem que não possa ser reconhecida imediatamente como uma resposta válida, será mantida no broker, de forma persistente, pelo número de segundos que você especificar para essa propriedade.

Se o intervalo de tempo limite desconhecido expirar e a mensagem for reconhecida, ela será processada. O nó verifica também se essa mensagem desconhecida anteriormente é a última resposta necessária para a conclusão de uma agregação. Se for, a mensagem de resposta agregada será construída e propagada.

Se o intervalo de tempo limite desconhecido expirar e a mensagem continuar não reconhecida, ela será propagada para o terminal Desconhecido.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:28:22


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | ac12320_