WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Crear el flujo de abanico de entrada de agregación

El flujo de abanico de entrada de agregación recibe las respuestas a los mensajes de solicitud enviados por el flujo de abanico de salida, y crea un mensaje de respuesta combinado que contiene todas las respuestas recibidas.

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 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. No despliegue varias copias del mismo flujo de abanico de entrada para los mismos grupos de ejecución o grupos de ejecución diferentes.

Si no configura el flujo de abanico de salida para que sea transaccional, los valores de tiempo de espera que ha especificado pueden hacer que el mensaje de respuesta combinado se genere antes de que el flujo de abanico de entrada haya recibido todas las respuestas. Para obtener más información, consulte Crear el flujo de abanico de salida de agregación.

A continuación puede ver un ejemplo de flujo 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 abanico de entrada:

  1. Cree un flujo de mensajes para proporcionar el proceso de abanico de entrada.
  2. Añada los nodos siguientes en la vista del editor y configure y conéctelos como se describe:
    Nodo de entrada
    El nodo de entrada recibe las respuestas a los múltiples mensajes de solicitud que se generan a partir del flujo de abanico de salida.

    Este nodo debe ser un nodo de entrada que soporte el modelo de solicitud/respuesta, por ejemplo un nodo MQInput, o una combinación de estos nodos (dependiendo de los requisitos de las aplicaciones que envíen estas respuestas). La respuesta que reciba cada nodo de entrada debe enviarse a través del mismo protocolo que la solicitud con la que se corresponde. Por ejemplo, si incluye un nodo MQOutput en el flujo de abanico de salida, la respuesta a esa solicitud debe recibirla un nodo MQInput en este flujo de abanico de salida.

    1. Seleccione el nodo de entrada para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    2. Especifique el nombre de una cola de WebSphere MQ en la propiedad básica Nombre de cola de la que el nodo MQInput recupera los mensajes.
    3. Opcional: especifique valores para cualquier otra propiedad que desee configurar para este nodo.
    4. Conecte el terminal de salida (Out) al nodo de entrada en el terminal de entrada (In) de un nodo AggregateReply.

      Conecte los terminales de este modo para crear la configuración más sencilla; si procede, puede incluir otros nodos entre el nodo de entrada y el nodo AggregateReply; por ejemplo, es posible que desee almacenar las respuestas para fines de auditoría (en un nodo Database).

    Incluya un solo nodo de entrada que reciba todos los mensajes de respuesta de agregación al principio del flujo de abanico de entrada tal como se ha descrito anteriormente. Si incluye varios nodos de entrada, las hebras iniciadas por un nodo de entrada de respuesta específico pueden completar la agregación y la ejecución del flujo de mensajes mientras que otras hebras envían sus mensajes de respuesta al nodo AggregateReply siendo susceptibles de exceder el tiempo de espera. Utilice un nodo de entrada único para habilitar el proceso secuencial de réplicas para cada agregación. Especifique instancias adicionales para proporcionar un mayor rendimiento de proceso en este nodo único, consulte Propiedades configurables del flujo de mensajes.

    Nodo AggregateReply
    El nodo AggregateReply recibe las respuestas entrantes del nodo de entrada a través de su terminal In. El nodo AggregateReply almacena todos los mensajes de respuesta para procesarlos posteriormente.

    Cuando se han recopilado todas las respuestas para un determinado grupo de solicitudes de agregación, el nodo AggregateReply crea un mensaje de respuesta agregado y lo propaga a través del terminal Out.

    1. Seleccione el nodo AggregateReply para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    2. Establezca la propiedad Nombre de agregación del nodo AggregateReply de modo que identifique esa agregación. Establezca este valor en el mismo valor que ha establecido para la propiedad Nombre de agregación en el nodo AggregateControl correspondiente del flujo de abanico de salida.
    3. Opcional: para retener un mensaje no reconocido antes de propagarlo al terminal Unknown (desconocido), establezca un valor para la propiedad Tiempo de espera de mensaje desconocido. Si está utilizando flujos de abanico de salida y abanico de entrada separados, establezca este valor en un número que no sea cero si el mensaje de control puede retrasarse.
    4. Opcional: para manejar explícitamente los mensajes no reconocidos, conecte el terminal Unknown a otro nodo o secuencia de nodos. Si no conecta este terminal a otro nodo del flujo de mensajes, se descartarán los mensajes propagados a través de este terminal.
    5. Opcional: si ha especificado un valor de tiempo de espera para esta agregación en el nodo AggregateControl y desea manejar explícitamente los tiempos de espera excedidos que se producen antes de que se reciban todas las respuestas, conecte el terminal Timeout (de tiempo de espera) a otro nodo o secuencia de nodos. Las respuestas agregadas parcialmente completas se envían al terminal Timeout si se excede el tiempo de espera. Si no conecta este terminal a otro nodo del flujo de mensajes, se descartarán los mensajes propagados a través de este terminal.
    6. Opcional: especifique valores para cualquier otra propiedad que desee configurar para este nodo.
    7. Conecte el terminal de salida del nodo AggregateReply al terminal de entrada de un nodo Compute.
    Atención: El terminal de control del nodo AggregateReply se ha dejado de utilizar en la versión 6.0 y, de forma predeterminada, se ignoran las conexiones a este terminal (ya sean directas o indirectas). Este cambio maximiza la efectividad de los flujos de agregación y no afecta a la fiabilidad de las agregaciones. Esta configuración proporciona el contenido óptimo.

    Sin embargo, si desea que el nodo AggregateReply reciba en su terminal de control el mensaje de control enviado por el nodo AggregateControl correspondiente en el flujo de abanico de salida, debe realizar las conexiones necesarias como se indica en Crear el flujo de abanico de salida de agregación. Mantenga la vía de acceso del nodo AggregateReply al nodo de salida lo más directa posible para maximizar el rendimiento de las agregaciones. No modifique el contenido de este mensaje de control.

    Además, para poder reconocer el terminal Control y las conexiones al mismo, debe habilitar la variable de entorno MQSI_AGGR_COMPAT_MODE. Si elige esta opción, el rendimiento y el comportamiento de las agregaciones de mensajes pueden verse afectados; para obtener una descripción completa de estas implicaciones y de la variable de entorno, consulte Utilizar mensajes de control en flujos de agregación.

    Los mensajes agregados que se enviaron desde los terminales de salida (out y Timeout) del nodo AggregateReply ya no se validan. La validación de datos debe efectuarse antes de enviar mensajes al nodo AggregateReply y se ignoran las opciones de validación cuando se reconstruyen los mensajes almacenados.

    Nodo Compute
    El nodo Compute recibe el mensaje que contiene las respuestas combinadas. Normalmente, el formato de este mensaje combinado no es válido para la salida, ya que el mensaje de respuesta agregado tiene una estructura inusual y no se puede analizar para la corriente de bits que requieren algunos nodos, por ejemplo el nodo MQOutput. Los terminales de salida (Out) y de tiempo de espera (Timeout) siempre propagan un mensaje de respuesta agregado, que siempre requiere un proceso adicional para poder propagarse a un nodo MQOutput. Por lo tanto debe incluir un nodo Compute y configurarlo para crear un mensaje de salida válido.
    1. Seleccione el nodo Compute para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    2. Especifique en la propiedad básica Módulo ESQL el nombre del módulo que personaliza la función de este nodo.
    3. Pulse el botón derecho del ratón en el nodo y pulse Abrir ESQL para abrir el archivo ESQL que contiene el módulo para este nodo. El módulo queda resaltado en la vista del Editor ESQL.
    4. Codifique el ESQL para crear un solo mensaje de salida a partir de las respuestas agregadas del mensaje de entrada.

      El mensaje de respuesta agregado se propaga a través del terminal de salida. Encontrará información sobre la forma de acceder a su contenido en Acceso al contenido de los mensajes combinados.

    5. Opcional: especifique valores para cualquier otra propiedad que desee configurar para este nodo.
    6. Conecte el terminal de salida del nodo Compute al terminal de entrada del nodo de salida que represente el destino del único mensaje de respuesta.
    Nodo de salida
    Incluya un nodo de salida para el flujo de abanico de entrada. Este nodo puede ser cualquiera de los nodos incorporados, o un nodo de salida definido por el usuario.
    1. Seleccione el nodo de salida para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    2. Especifique en la propiedad básica Nombre de cola el nombre de una cola de WebSphere MQ a la que el nodo MQOutput envía los mensajes.
    3. Opcional: especifique valores para cualquier otra propiedad que desee configurar para este nodo.
  3. Para guardar el flujo de mensajes y validar su configuración, pulse Ctrl-S o pulse Archivo > Guardar.

Acceso al contenido de los mensajes combinados

El nodo AggregateReply crea una carpeta en el árbol de mensajes combinado debajo de Raíz, llamada ComIbmAggregateReplyBody. Bajo de esta carpeta, el nodo crea una serie de subcarpetas que utilizan los nombres que ha establecido en los nodos AggregateRequest. Estas subcarpetas se llenan con los mensajes de respuesta asociados.

Por ejemplo, los mensajes de solicitud pueden tener los nombres de carpeta:

  • TAXI
  • HOTEL

El mensaje de respuesta agregado resultante creado por el nodo AggregateReply puede tener una estructura parecida a la del ejemplo siguiente:

El diagrama muestra el árbol para el contenido de los mensajes agregados bajo el elemento ComIbmAggregateReplyBody en Root. El contenido se describe en el texto que lo acompaña.

Utilice ESQL dentro de un nodo Compute para acceder a la respuesta de la empresa de taxis utilizando el nombre de correlación siguiente:

InputRoot.ComIbmAggregateReplyBody.TAXI.xyz

El nombre de carpeta no tiene que ser exclusivo. Si tiene varias solicitudes con el nombre de carpeta TAXI, puede acceder a las diferentes respuestas utilizando la notación de subíndice de matriz, por ejemplo:

InputRoot.ComIbmAggregateReplyBody.TAXI[1].xyz
InputRoot.ComIbmAggregateReplyBody.TAXI[2].xyz
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:58:24


Tema de tareaTema de tarea | Versión 8.0.0.5 | ac12300_