Utilice un patrón Divisor de mensajes para dividir un mensaje XML grande en elementos más pequeños para su proceso por uno o más destinos.
Desea compartir información que ha acumulado dentro de una aplicación durante un período de tiempo, con otras aplicaciones. Unos ejemplos podrían ser los datos de ventas acumulados a lo largo de un día o actualizaciones de información recibidas de sus socios. Los datos se acumulan durante un periodo de tiempo determinado y se transmiten como un único mensaje grande. El proceso realizado al final del día en la aplicación o aplicaciones de destino requiere que cada elemento se procese individualmente.
De forma alternativa, una aplicación puede generar un mensaje que contenga una cantidad de registros que se deben distribuir; por ejemplo, donde una aplicación mantiene y distribuye datos de referencia.
Los mensajes grandes que contienen estructuras repetitivas y de proceso pueden provocar un uso excesivo de la memoria, lo que tiene un impacto potencial en otros procesos de mensajes y puede causar un error del intermediario. Este patrón responde al problema de direccionar los elementos de un mensaje grande a destinos diferentes según reglas de direccionamiento definidas.
Utilice este patrón para las aplicaciones que almacenan información sobre una serie de transacciones empresariales y transmiten esta información a uno o más aplicaciones de destino en lotes. Se puede utilizar para gestionar mensajes grandes, sin un uso excesivo de memoria.
Este patrón puede utilizarse cuando la aplicación de origen o las aplicaciones de destino no pueden hacer o procesar llamadas de servicio en tiempo casi real o cuando se necesita procesar información por lotes por razones comerciales.
La solución es implementar un flujo de mensajes que utiliza un árbol de mensajes variable para que los elementos repetibles puedan suprimirse a medida que se procesen. El análisis parcial habilita que elementos únicos se analicen como necesarios y, dado que estos elementos se suprimen al completarse, se impide que el árbol en memoria crezca linealmente con el número de elementos. A medida que se extrae cada elemento, se direcciona a la aplicación de destino adecuada.
El mensaje de entrada y todos los mensajes de salida se procesan en una sola transacción; todos los mensajes de salida son persistentes. No leer el mensaje de entrada XML hace que toda la transacción falle, pero los errores en el proceso de un solo elemento pueden añadir el elemento erróneo a una cola para procesarlo posteriormente, o causar que toda la transacción falle.