Cada fluxo de mensagens projetado deve fornecer um conjunto completo de processamento para mensagens recebidas de uma determinada origem. No entanto, isto pode resultar em fluxos de mensagens muito complexos que incluem grandes números de nós e podem causar uma sobrecarga no desempenho e possíveis gargalos. Aumentar o número de fluxos de mensagens que processam suas mensagens fornece a opção de processamento paralelo e, portanto, rendimento do 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:
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 é a forma mais eficiente de tratar esta situação, se você não estiver preocupado com a ordem na qual as mensagens são processadas.
Se o fluxo de mensagens receber mensagens de uma fila do WebSphere MQ, você poderá influenciar de alguma forma a ordem de processamento das mensagens definindo a propriedade Modo de Ordem do nó MQInput:
Para aplicativos de publicação/assinatura que se comunicam com o intermediário por qualquer protocolo suportado, as mensagens de qualquer tópico fornecido são publicadas por intermediários na mesma ordem que são recebidas dos editores (sujeitas à reorganização com base na prioridade da mensagem, se aplicável). Isto normalmente significa que cada assinante recebe mensagens de um intermediário específico, em um tópico específico, de um publicador específico, na ordem que eles são publicados por este publicador.
No entanto, é possível que, ocasionalmente, as mensagens sejam entregues fora de ordem. Isso pode ocorrer, por exemplo, se um link na rede falhar e 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.
Para obter informações adicionais sobre as técnicas recomendadas para todos os usuários de MQI e AMI, consulte o WebSphere MQ Application Programming Guide para programas gravados no MQI e o WebSphere MQ Application Messaging Interface (disponível como SupportPac MA0F no Página da Web do WebSphere MQ SupportPacs) para programas gravados no AMI.
Os aplicativos do WebSphere MQ Everyplace e SCADA utilizam um método diferente de ordenação de mensagens conforme descrito em WebSphere MQ Mobile Transport e WebSphere MQ Telemetry Transport, respectivamente. O intermediário não fornece um pedido de mensagem para as mensagens recebidas no WebSphere MQ Web Services Transport, noWebSphere MQ Real-time Transport ou no WebSphere MQ Multicast Transport.
Esta opção também remove a capacidade de determinar a ordem na qual as mensagens serão processadas. Isso porque, se houver mais de uma cópia do fluxo de mensagens ativa no intermediário, cada cópia poderá estar processando uma mensagem ao mesmo tempo, a partir da mesma fila. O tempo decorrido para processar uma mensagem pode variar e muitos fluxos de mensagens acessando a mesma fila poderia, portanto, ler mensagens da origem de entrada de maneira 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.
Os dois exemplos a seguir mostram quando é conveniente dividir um fluxo de mensagens:
Talvez também seja necessário fornecer outra fila de entrada e outro nó input para concluir qualquer processamento comum ao qual os desvios de Rótulo se conectam após a conclusão do processamento exclusivo.
Também é possível 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 transmitidas imediatamente para ele por esse fluxo) que você modificou para verificar o tamanho da mensagem de entrada e redirecionar as mensagens grandes.
As propriedades a seguir controlam a freqüência com a qual o fluxo de mensagens consolida transações: