Optimización de los tiempos de respuesta de los flujos de mensajes

Cuando diseña un flujo de mensajes, la flexibilidad y la riqueza de los nodos incorporados con frecuencia significa que existen numerosos procedimientos para realizar el proceso y, por consiguiente, los resultados finales que necesita. Sin embargo, también puede considerar que las diferentes soluciones ofrecen distintos rendimientos y, si es una consideración importante, al realizar el diseño debe tener en cuenta tanto el rendimiento como el correcto funcionamiento.

Para que las aplicaciones perciban el rendimiento existen dos procedimientos:

  1. Tiempo de respuesta. Indica la velocidad a la que el flujo de mensajes procesa cada mensaje. En este aspecto influye especialmente el diseño de los flujos de mensajes. En este tema se describe con más detalle.
  2. Productividad. Indica el número de mensajes de tamaños específicos que puede procesar un flujo de mensajes en un momento determinado. En este aspecto influye principalmente la configuración y otros factores de los recursos del sistema y, por consiguiente, se trata en el apartado Optimización de la productividad de los flujos de mensajes junto con otras informaciones relacionadas con la configuración del dominio.

En los tiempos de respuesta de los flujos de mensajes influyen numerosos aspectos. Sin embargo, a medida que cree y modifique el diseño del flujo de mensajes para obtener resultados óptimos que satisfagan sus requisitos empresariales específicos, también debe tener en cuenta la eventual complejidad del flujo de mensajes. Los flujos de mensajes más eficaces no son necesariamente los de más fácil comprensión y mantenimiento; experimente con las soluciones disponibles a fin de lograr el equilibrio que más se ajuste a sus necesidades.

En los tiempos de respuesta de los flujos de mensajes influyen numerosos factores:

El número de nodos que incluye en el flujo de mensajes
Cada nodo produce una determinada actividad general de proceso, por lo que debe considerar detenidamente el contenido del flujo de mensajes, incluida la utilización de subflujos.

Utilice el menor número de nodos posible en un flujo de mensajes; cada nodo que incluya en el flujo de mensajes aumenta la actividad general en el intermediario. Existe un número máximo de nodos dentro de un único nodo. Los recursos del sistema rigen este límite, en especial, el tamaño de pila y probablemente se encuentre en torno a 200 nodos.

Cómo el flujo de mensajes direcciona y procesa mensajes
En determinadas situaciones, es posible que los nodos incorporados y, quizá, otros nodos que están disponibles en el sistema, proporcionen más de un procedimiento para la misma función. Intente elegir la configuración más sencilla.Por ejemplo, si desea definir algún proceso específico basado en el valor de un campo en cada mensaje, puede diseñar un flujo de mensajes que tenga una secuencia de nodos Filter para manejar cada caso. Si procede, puede agrupar mensajes a través del nodo Filter para reducir el número de nodos que debe atravesar cada tipo de mensaje antes de su proceso.

Por ejemplo, puede tener un flujo de mensajes que maneje ocho mensajes diferentes (Invoice, Despatch Note y así sucesivamente). Puede incluir un nodo Filter para identificar cada tipo de mensaje y direccionarlo según su tipo. Puede optimizar el rendimiento de esta técnica realizando pruebas para los tipos de mensajes más frecuentes en los primeros nodos Filter. Sin embargo, los ocho tipos de mensajes deben atravesar ocho nodos Filter.

Si puede agrupar los tipos de mensajes (por ejemplo, si el tipo de mensaje es numérico, y puede probar todos los tipos mayores que cuatro y no mayores que cuatro), puede reducir el número de nodos Filter necesarios. El primer nodo Filter prueba los mayores que cuatro y pasa el mensaje a otros dos nodos Filter (conectados a los terminales verdadero y falso) que prueban menor que dos y menor que seis, respectivamente. Cuatro nodos Filter adicionales pueden probar uno o dos, tres o cuatro y así sucesivamente. Aunque el número real de nodos Filter necesarios es el mismo, se reduce el número de nodos a través de los que debe pasar cada mensaje.

La utilización de un nodo RouteToLabel con un conjunto de nodos Label puede considerarse una alternativa adecuada a una secuencia de nodos Filter. Cada mensaje pasa a través de un menor número de nodos, lo que mejora la productividad. Sin embargo, también debe tener en cuenta que la utilización de un nodo RouteToLabel significa la utilización de un nodo Compute: la actividad general de este nodo puede pesar más que las ventajas. Si está tratando un número limitado de tipos de mensajes, es más eficaz utilizar menos nodos Filter.

Si el flujo de mensajes incluye bucles
Evite los bucles de nodos de repetición; pueden afectar a la eficacia y causar problemas de rendimiento y de pilas. Puede considerar que un nodo Compute con varias sentencias PROPAGATE evita la repetición en serie de nodos en bucle.
Eficacia de ESQL
Compruebe todo el código ESQL que ha creado para los nodos de flujos de mensajes. A medida que desarrolla y prueba un nodo, puede mantener sentencias que no son necesarias cuando finaliza el proceso de mensajes. También es posible que alguna de las codificaciones tenga dos sentencias que puedan codificarse como una. Si se toma el tiempo necesario para revisar y comprobar el código ESQL, puede simplificarlo y obtener mejoras de rendimiento.

Si ha importado flujos de mensajes de un release anterior, compruebe las sentencias ESQL con respecto al ESQL disponible de la Versión 5.0 por si puede utilizar nuevas funciones o sentencias que permitan mejorar su eficacia.

Utilización de mensajes permanentes y transaccionales
Los mensajes permanentes se guardan en disco durante el proceso del flujo de mensajes. Se puede evitar si se especifica que los mensajes de entrada, de salida o ambos, sean no permanentes. Si el flujo de mensajes maneja sólo mensajes no permanentes, compruebe la configuración de los nodos y el flujo de mensajes; si los mensajes son no permanentes, es posible que no se necesite soporte transaccional. La configuración por omisión de algunos nodos fuerza la transaccionalidad; si actualiza estas propiedades y vuelve a difundir el flujo de mensajes, los tiempos de respuesta pueden mejorar.
Tamaño del mensaje
Un mensaje grande tarda más en procesarse. Si puede dividir los mensajes grandes en bloques de información más pequeños, puede mejorar la velocidad a la que los maneja el flujo de mensajes.
Formato del mensaje
Aunque WebSphere Business Integration Message Broker ofrece soporte para varios formatos de mensajes y proporciona recursos que se pueden utilizar para la transformación de un formato a otro, puede aumentar la actividad general. Asegúrese de que no realiza conversiones ni transformaciones innecesarias.

Conceptos relacionados
Flujos de mensajes
Difusión de aplicaciones de flujos de mensajes

Tareas relacionadas
Configuración del dominio de intermediarios
Optimización de la productividad de los flujos de mensajes
Diseño de un flujo de mensajes
Utilización de más de un nodo de entrada
Creación de un flujo de mensajes
Definición del contenido del flujo de mensajes
Edición de propiedades configurables

Referencia relacionada
Nodos incorporados