Otimizando o Rendimento do Processamento do Fluxo de Mensagens

Cada fluxo de mensagens projetado deve fornecer um conjunto completo de processamento para mensagens recebidas de uma determinada origem. Este design pode resultar em fluxos de mensagens muito complexos, que incluem grandes números de nós que podem causar uma sobrecarga no desempenho e podem criar possíveis gargalos. É possível aumentar o número de fluxos de mensagens que processam suas mensagens para fornecer a opção de processamento paralelo e, portanto, rendimento de processamento aprimorado.

Leve em consideração também a maneira que as ações tomadas pelo fluxo de mensagens são consolidadas e a ordem em que as mensagens são processadas.

Considere as seguintes opções para otimizar o rendimento do processamento do fluxo de mensagens:

Várias Mensagens de Processamento Encadeadas em um Único Fluxo de Mensagens
Quando você implementa um fluxo de mensagens, o intermediário automaticamente inicia uma instância do fluxo de mensagens para cada nó de entrada que o contém. Este é o comportamento padrão. No entanto, se você possuir um fluxo de mensagens que identifique um número muito grande de mensagens, a origem da entrada (por exemplo, uma fila WebSphere MQ) poderá se tornar um gargalo.

Você pode atualizar a propriedade Instâncias Adicionais do fluxo de mensagens implementado no arquivo BAR: o intermediário inicia cópias adicionais do fluxo de mensagens em encadeamentos separados, portanto, fornecendo processamento paralelo. Esta opção é a maneira mais eficiente de manipular esta situação, se você não estiver preocupado com a ordem na qual as mensagens serão processadas.

Se o fluxo de mensagens receber mensagens de uma fila do WebSphere MQ, você poderá interferir na ordem em que as mensagens serão processadas, configurando a propriedade Modo de Ordem do nó MQInput:

  • Se você definir Modo de Ordem como Por ID do Usuário, o nó garantirá que as mensagens de um usuário específico (identificado pelo campo UserIdentifier no MQMD) serão processadas na ordem garantida. Uma segunda mensagem de um usuário não será processada por uma instância do fluxo de mensagens se uma mensagem anterior desse usuário estiver atualmente sendo processada por outra instância do fluxo de mensagens.
  • Se você definir Ordenar Modo como Por Ordem de Fila, o nó processará uma mensagem de cada vez para preservar a ordem na qual as mensagens são lidas a partir da fila. Portanto, esse nó se comporta como se a propriedade Instâncias Adicionais do fluxo de mensagens estivesse definida para zero.

Para aplicativos de Publicação/Assinatura que se comunicam com o intermediário através de qualquer protocolo suportado, as mensagens para qualquer tópico especificado serão publicadas por intermediários na mesma ordem que foram recebidas de publicadores (sujeitas à reordenação com base na prioridade de mensagem, se aplicável). Portanto, cada assinante recebe mensagens de um intermediário específico, em um tópico específico, de um publicador específico, na ordem que foram publicadas por esse publicador.

No entanto, é possível que, ocasionalmente, as mensagens sejam entregues fora de ordem. Esta situação pode ocorrer, por exemplo, se um link na rede falhar e as mensagens subseqüentes forem roteadas por outro link.

Se você tiver que assegurar a ordem em que as mensagens são recebidas, você pode utilizar tanto o parâmetro SeqNum (número de seqüência) ou o PubTime (marca de hora de publicação) no comando Publish para cada mensagem publicada, para calcular a ordem de publicação.

Início da mudançaPara obter informações adicionais sobre as técnicas recomendadas para todos os usuários MQI e AMI, consulte as seções Referência de Programação de Aplicativo e Guia de Programação do Aplicativo no WebSphere MQ Versão 6: centro de informações on-line ou (para WebSphere MQ Versão 5.3) os manuais Guia de Programação do Aplicativo e Referência de Programação de Aplicativo do WebSphere MQ para programas gravados no MQI e WebSphere MQ a Interface do Sistema de Mensagens do Aplicativo manual para programas escritos no AMI. Fim da mudança

O manual WebSphere MQ Interface de Mensagens do Aplicativo está disponível a partir do WebSphere MQ (listado como Versão 5.3), ou do SupportPac MA0F no WebSphere MQ SupportPacs.

Início da mudançaConsulte também a seção Guia do Usuário de Publicação/Assinatura no WebSphere MQ Versão 6: centro de informações on-line ou (para WebSphere MQ Versão 5.3) o Guia do Usuário de Publicação/Assinatura do WebSphere MQ.Fim da mudança

Os aplicativos do WebSphere MQ Everyplace e do SCADA utilizam um método diferente de ordenação de mensagens, conforme descrito no WebSphere MQ Mobile Transport e no WebSphere MQ Telemetry Transport. O intermediário não fornece ordenação para mensagens recebidas via WebSphere MQ Web Services Transport,WebSphere MQ Real-time Transport, ou WebSphere MQ Multicast Transport.

Várias Cópias do Fluxo de Mensagens em um Intermediário
Você também pode implementar várias cópias do mesmo fluxo de mensagens em diferentes grupos de execução no mesmo intermediário. Esta opção possui efeitos semelhantes a aumentar o número de encadeamentos de processamentos em um único fluxo de mensagens, embora, geralmente, oferece menos ganhos notáveis.

Esta opção também remove a capacidade de determinar a ordem na qual as mensagens são processadas, porque, se houver mais de uma cópia do fluxo de mensagens ativa no intermediário, cada cópia poderá processar uma mensagem ao mesmo tempo, a partir da mesma fila. O tempo gasto para processar uma mensagem pode variar e, portanto, vários fluxos de mensagens que acessam a mesma fila podem ler mensagens da origem de entrada em uma ordem aleatória. A ordem das mensagens produzidas pelos fluxos de mensagens pode não corresponder à ordem das mensagens originais.

Verifique se os aplicativos que recebem mensagens desses fluxos de mensagens podem suportar mensagens fora de ordem.

Cópias do Fluxo de Mensagens em Vários Intermediários
Você pode implementar várias cópias do mesmo fluxo de mensagens em diferentes intermediários. Esta opção requer alterações em sua configuração, porque é necessário assegurar que os aplicativos que fornecem mensagens para o fluxo de mensagens podem colocar suas mensagens na fila ou porta de entrada correta. Geralmente, essas alterações podem ser feitas na implementação do fluxo de mensagens, definindo-se as propriedades configuráveis do fluxo de mensagens.
O Escopo do Fluxo de Mensagens
Você pode observar que, em algumas circunstâncias, poderá dividir um único fluxo de mensagens em vários fluxos diferentes para reduzir o escopo de trabalho que cada fluxo de mensagens executa. Se você dividir seu fluxo de mensagens, observe que não será possível executar os fluxos de mensagens separados na mesma unidade de trabalho e, se existirem aspectos transacionais em seu fluxo de mensagens (por exemplo, a atualização de vários bancos de dados), esta opção não fornecerá uma solução apropriada.

Os dois exemplos a seguir mostram quando é conveniente dividir um fluxo de mensagens:

  1. Em um fluxo de mensagens que utiliza um nó RouteToLabel, a fila de entrada se tornou um gargalo. É possível utilizar outra cópia do fluxo de mensagens em um segundo grupo de execução, mas esta opção não será apropriada se você desejar que todas as mensagens sejam manipuladas na ordem em que são mostradas na fila. Pode ser recomendável a divisão de cada ramificação do fluxo de mensagens que começa com um nó Label, fornecendo uma fila de entrada e um nó de entrada para cada ramificação. Esta opção pode ser apropriada, porque, quando a mensagem for roteada pelo nó RouteToLabel para o nó Label relevante, ela terá algum nível de independência das demais mensagens.

    Também pode ser necessário fornecer outra fila de entrada e nó de entrada para concluir qualquer processamento comum ao qual as ramificações do nó Label se conectam quando o processamento exclusivo tiver sido concluído.

  2. Se você tiver um fluxo de mensagens que processa mensagens muito grandes que levam uma quantidade de tempo considerável para processamento, você poderá:
    1. Criar outras cópias do fluxo de mensagens que utilizem uma fila de entrada diferente (você pode configurar esta opção no próprio fluxo de mensagens ou pode atualizar esta propriedade quando implementar o fluxo de mensagens).
    2. Configurar aliases de filas do WebSphere MQ para redirecionar mensagens de alguns aplicativos para a fila e fluxo de mensagens alternativos.

    Também pode criar um novo fluxo de mensagens que replique a função do fluxo de mensagens original, mas que processe apenas mensagens grandes que são imediatamente transmitidas para ele pelo fluxo de mensagens original, que você modificou para verificar o tamanho da mensagem de entrada e redirecionar as mensagens grandes.

Freqüência de Consolidações
If a message flow receives input messages on a WebSphere MQ queue, you can improve its throughput for some message flow scenarios by modifying its default properties after you have added it to a BAR file. (Essas opções não estarão disponíveis se as mensagens de entrada forem recebidas por outros nós de entrada; em cada mensagem são realizadas consolidações nos fluxos de mensagens).

As propriedades a seguir controlam a freqüência com a qual o fluxo de mensagens consolida transações:

  • Contagem de Consolidação. Esta propriedade representa o número de mensagens processadas a partir da fila de entrada antes da emissão de um MQCMIT.
  • Intervalo da Consolidação. Esta propriedade representa o intervalo de tempo decorrido antes do início de um MQCMIT.
Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Visão Geral da Implementação
Tarefas relacionadas
Otimizando Tempos de Resposta do Fluxo de Mensagens
Criação de um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Editando Propriedades Configuráveis
Referências relacionadas
Nós Internos
Propriedades Configuráveis do Fluxo de Mensagens
Início da mudançaMensagem de PublicaçãoFim da mudança
Informações relacionadas
Centro de Informações On-line do WebSphere MQ Versão 6
Página da Web da Biblioteca do WebSphere MQ
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

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

ac00350_