El flujo de mensajes de abanico de salida de agregación recibe el mensaje de entrada inicial y lo reestructura para presentar un número de peticiones a un número de aplicaciones de destino.
Antes de empezar:
Puede incluir el flujo de abanico de salida y de abanico de entrada dentro del mismo flujo de mensajes. Aunque, si lo prefiere, puede crear dos flujos distintos. Para obtener información sobre las ventajas de configurar flujos de mensajes independientes, consulte Asociar flujos de agregación de mensajes de abanico de salida y de abanico de entrada.
Para crear el flujo de mensajes de abanico de salida:
No obstante, si desea que se envíe un mensaje de control desde el nodo AggregateControl al nodo AggregateReply, deberá conectar el terminal de control al nodo AggregateReply correspondiente en el flujo de abanico de entrada (directa o indirectamente, como se explica en Asociar flujos de agregación de mensajes de abanico de salida y de abanico de entrada). Si lo conecta indirectamente al nodo AggregateReply, por ejemplo mediante un nodo MQOutput, deberá incluir un nodo Compute para añadir las cabeceras adecuadas al mensaje y asegurarse de que puede transmitirse de forma segura.
Además, para poder reconocer el terminal de control y las conexiones desde el mismo, debe habilitar la variable de entorno MQSI_AGGR_COMPAT_MODE. No obstante, esta opción tiene implicaciones relacionadas con el rendimiento y el comportamiento de las agregaciones de mensaje. Para ver una descripción completa de estas implicaciones y de la variable de entorno, consulte Utilizar mensajes de control en flujos de agregación.
Si las aplicaciones de destino que manejan las peticiones de subtarea pueden extraer la información que requieren del mensaje de entrada individual, no es necesario que incluya un nodo Compute para dividir el mensaje. Puede pasar el mensaje de entrada completo a todas las aplicaciones de destino.
Si las aplicaciones de destino esperan recibir una petición individual, no el mensaje de entrada completo, debe incluir un nodo Compute para generar cada mensaje de salida de subtarea individual a partir del mensaje de entrada. Configure cada nodo Compute del modo siguiente, copiando el subconjunto adecuado del mensaje de entrada en cada mensaje de salida:
Si especifica alguno de estos valores, el intermediario supone que está personalizando el nodo Compute con ESQL que se escribe en el entorno local y que copiará sobre cualquier elemento del árbol que se requiera en el mensaje de salida.
Si desea modificar Entorno local, añada la sentencia siguiente para copiar la información de agregación necesaria del mensaje de entrada al mensaje de salida.
SET OutputLocalEnvironment.ComIbmAggregateControlNode = InputLocalEnvironment.ComIbmAggregateControlNode;
El nodo de salida ha de ser un nodo de salida que tenga soporte para el modelo de petición / respuesta, por ejemplo un nodo MQOutput o una combinación de esos nodos (dependiendo de los requisitos de las aplicaciones de destino).
La información que escriben los nodos incorporados es el nombre de cola, el nombre del gestor de colas, el ID de mensaje y el ID de correlación (del MQMD) y el identificador de respuesta del mensaje (que se establece en el mismo valor que el ID de mensaje).
El nodo AggregateRequest graba un registro en WebSphere MQ para cada mensaje que procesa. Ese registro permite al nodo AggregateReply identificar con qué petición está asociada cada respuesta. Si los nodos de salida no son transaccionales, es posible que el mensaje de respuesta llegue en el flujo de mensajes de abanico de entrada que se haya confirmado esta actualización de la base de datos. Para obtener detalles sobre el modo de utilizar tiempos de espera para evitar esta situación, consulte Establecer valores de tiempo de espera para agregación.