Cada flujo de mensajes que diseñe debe proporcionar un conjunto completo de procesos para los mensajes recibidos de un origen específico. Este diseño puede dar como resultado unos flujos de mensajes muy complejos que incluyen gran número de nodos y causan una disminución del rendimiento y pueden crear posibles cuellos de botella. Puede aumentar el número de flujos de mensajes que procesan los mensajes para ofrecer la oportunidad de realizar procesos paralelos y, por tanto, de mejorar el rendimiento.
También puede tomar en consideración la forma en que se confirman las acciones que toma el flujo de mensajes, y el orden en que se procesan los mensajes.
Tenga en cuenta las siguientes opciones para optimizar el rendimiento del flujo de mensajes:
Puede actualizar la propiedad Instancias adicionales del flujo de mensajes desplegados en el archivo BAR: el intermediario inicia copias adicionales del flujo de mensajes en hebras aparte, que proporcionan procesos en paralelo. Esta opción es la forma más eficaz de manejar esta situación, si no le importa el orden en que se procesen los mensajes.
Si el flujo de mensajes recibe mensajes de una cola de WebSphere MQ, puede influir, hasta cierto punto, en el orden en que se procesan los mensajes, estableciendo la propiedad Modalidad de orden del nodo MQInput:
Para las aplicaciones de publicación/suscripción que se comunican con el intermediario a través de cualquier protocolo soportado, los intermediarios publican los mensajes para un tema específico en el mismo orden en que se reciben de los publicadores (sujeto a reordenación según la prioridad del mensaje, si es aplicable). Por lo tanto, cada suscriptor recibe mensajes de un intermediario específico, sobre un tema específico, de un publicador específico, en el orden en que éste los ha publicado.
Sin embargo, es posible que los mensajes, ocasionalmente, se entreguen de forma desordenada. Esto puede suceder, por ejemplo, si falla un enlace en la red y los mensajes siguientes son direccionados por otro enlace.
Si tiene que asegurar el orden en que se reciben los mensajes, puede utilizar el parámetro SeqNum (número de secuencia) o PubTime (hora de publicación) del mandato Publish para cada mensaje publicado, para calcular el orden de publicación.
Para obtener más información sobre las técnicas recomendadas para todos los usuarios MQI y AMI, consulte las secciones Application Programming Reference y Application
Programming Guide en la publicación Centro de información
en línea de WebSphere MQ Versión 6 o
(para WebSphere MQ Versión 5.3) las publicaciones Application
Programming Guide y Application Programming Reference del
página web de la biblioteca de WebSphere MQ para los
programas escritos para la MQI y la publicación WebSphere MQ Application Messaging Interface para los programas escritos para la AMI.
La publicación WebSphere MQ Application Messaging Interface está disponible en el página web de la biblioteca de WebSphere MQ (que se lista en la versión 5.3), o en SupportPac MA0F en el página web de WebSphere MQ SupportPacs.
Consulte también la sección Publish/Subscribe User's Guide en la publicación
Centro de información
en línea de WebSphere MQ Versión 6 o
(para WebSphere MQ Versión 5.3) la sección Publish/Subscribe
User's Guide en el página web de la biblioteca de WebSphere MQ.
WebSphere MQ Everyplace y las aplicaciones SCADA utilizan un método diferente de orden de mensajes tal como se describe en WebSphere MQ Mobile Transport y WebSphere MQ Telemetry Transport. El intermediario no ordena los mensajes recibidos a través de WebSphere MQ Real-time Transport o WebSphere MQ Multicast Transport.
Esta opción también elimina la posibilidad de determinar el orden en que se procesan los mensajes, porque, si hay más de una copia del flujo de mensajes activa en el intermediario, cada copia puede estar procesando un mensaje al mismo tiempo, de la misma cola. El tiempo que se tarda en procesar un mensaje puede variar y, por tanto, varios flujos de mensajes accediendo a la misma cola podrían leer mensajes del origen de entrada en orden aleatorio. El orden de los mensajes generado por los flujos de mensajes podría no corresponder al orden de los mensajes originales.
Asegúrese de que las aplicaciones que reciben mensajes de estos flujos de mensajes pueden tolerar mensajes que no estén en orden.