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.
O modo de
operação do seu broker pode afetar o número de fluxos de mensagens que é possível usar; consulte Recursos WebSphere Message Broker and Restrições que se Aplicam em cada modo de operação para obter informações adicionais.
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.
O WebSphere Message Broker Explorer permite que você visualize estatísticas do fluxo de mensagens e dados contábeis. Consulte Visualizando dados contábeis e estatísticos no WebSphere Message Broker Explorer para obter informações adicionais sobre como é possível acessar os dados estatísticos.
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 broker automaticamente inicia uma instância do fluxo de
mensagens para cada nó input que o contém.
Este é o comportamento padrão. Se tiver um fluxo de mensagens que manipule um número muito grande de mensagens, você poderá ativar mais mensagens a serem processadas alocando mais instâncias do fluxo.
É possível atualizar a propriedade Instâncias Adicionais do fluxo de mensagens implementado no arquivo BAR; o broker inicia cópias adicionais do fluxo de mensagens em encadeamentos separados, fornecendo processamento paralelo. Essa opção é a maneira mais eficiente de manipular essa 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ê configurar Modo de Ordem como
Por ID do Usuário ou
Definido pelo Usuário e o fluxo de mensagens
usar os nós de transformação, será aconselhável configurar a
Sincronização de Análise como
Imediata.
- Várias Cópias do Fluxo de Mensagens em um Intermediário
- Também é possível implementar várias cópias do mesmo fluxo de mensagens em diferentes grupos de execução no mesmo broker. Essa opção possui efeitos semelhantes a aumentar o número de encadeamentos de processamentos em um único fluxo de mensagens.
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. Além disso, certifique-se de que os nós de entrada nesses fluxos de mensagens sejam adequados para implementação em processos diferentes.
- 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 pode ser benéfico dividir um fluxo de mensagens:
- Em um fluxo de mensagens que usa um nó RouteToLabel, a fila de entrada pode aumentar em tamanho, indicando que o trabalho chega mais rápido do está sendo processado; isso pode indicar uma necessidade de aumentar a capacidade de processamento. É 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.
- Se você tiver um fluxo de mensagens que processa mensagens muito
grandes que levam uma quantidade de tempo considerável para
processamento, você poderá:
- 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).
- 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.