El flujo de abanico de salida de agregación recibe el mensaje de entrada inicial y lo reestructura para presentar una serie de solicitudes a una serie de aplicaciones de destino.
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 más información sobre las ventajas de configurar flujos de mensajes independientes, consulte Asociar flujos de agregación de abanico de salida y de abanico de entrada.
Puede ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center en línea. Puede ejecutar ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit.
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 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 solicitudes 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 solicitud 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 uno de estos valores, el intermediario presupone que está personalizando el nodo Compute con ESQL que se escribe en el entorno local y que está copiando cualquier elemento de ese árbol que se requiere en el mensaje de salida.
Para modificar el 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 solicitud / 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é solicitud está asociada cada respuesta. Si los nodos de salida no son transaccionales, el mensaje de respuesta puede llegar al flujo de abanico de entrada antes de que se confirme esta actualización de 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.