Creación del flujo ramificado de agregaciones

El flujo ramificado de agregaciones recibe el mensaje de entrada inicial y lo reorganiza de forma que muestre un número de peticiones para un número de aplicaciones de destino.

Antes de empezar:

Para llevar a cabo esta tarea debe haber completado la siguiente:

Para revisar un ejemplo de un flujo ramificado, consulte el ejemplo Línea aérea que se proporciona con WebSphere Business Integration Message Broker.

Para crear el flujo ramificado:

  1. Cambie a la perspectiva Desarrollo de aplicaciones de intermediario.
  2. Cree un nuevo flujo de mensajes para proporcionar el proceso ramificado.
  3. Añada los siguientes nodos en la vista de editor, configúrelos y conéctelos como se describe:
    Nodo de entrada
    El nodo de entrada recibe un mensaje de entrada del que se generan varios mensajes de solicitud. Éste puede ser uno de los nodos incorporados o un nodo de entrada definido por el usuario.
    1. Pulse el botón derecho del ratón en el nodo de entrada y pulse Propiedades.
    2. Especifique el origen de los mensajes de entrada para este nodo. Por ejemplo, especifique el nombre de una cola de WebSphere MQ en la propiedad Básico Nombre de cola de la que el nodo MQInput recupera mensajes.
    3. Opcional: especifique valores para todas las propiedades que desee configurar para este nodo.
    4. Conecte el terminal de salida del nodo de entrada en el terminal de entrada de un nodo AggregateControl.

      Esto representa la configuración más simple; si procede, puede incluir otros nodos entre el nodo de entrada y el nodo AggregateControl. Por ejemplo, es posible que desee almacenar la petición para fines de auditoría (en un nodo Warehouse), o añadir un identificador exclusivo al mensaje (en un nodo Compute).

    Nodo AggregateControl
    El nodo AggregateControl actualiza el entorno local asociado con el mensaje de entrada con información requerida por el nodo AggregateRequest.
    1. Pulse el botón derecho del ratón en el nodo AggregateControl y pulse Propiedades.
    2. Establezca la propiedad Nombre de agregación del nodo AggregateControl de modo que identifique esta agregación concreta. Se utilizará más tarde para asociar este nodo AggregateControl con un nodo AggregateReply concreto. El Nombre de agregación que especifique debe ser exclusivo en su contexto dentro del intermediario.
    3. Opcional: establezca la propiedad Tiempo de espera para especificar el intervalo de tiempo que el intermediario espera a que lleguen respuestas antes de llevar a cabo alguna acción (se describe en Configuración de tiempos de espera para la agregación).
    4. Conecte el terminal de salida del nodo AggregateControl al terminal de entrada de uno o más nodos Compute que proporcionan el análisis y los detalles de la petición en el mensaje de entrada que se propaga en este terminal.
    5. Conecte el terminal de control al correspondiente nodo AggregateReply en el flujo de abanico de entrada (directa o indirectamente, como se describe en Asociación de flujos de agregaciones ramificados y de abanicos de entrada). El nodo AggregateControl propaga un mensaje de control a través de este terminal. No modifique el contenido de este mensaje. No obstante, si lo pasa indirectamente al nodo AggregateReply, por ejemplo a través del nodo MQOutput, debe incluir un nodo Compute para que añada las cabeceras adecuadas al mensaje para asegurarse de que puede transmitirse de forma segura.
    Nodo Compute
    El nodo Compute extrae información del mensaje de entrada y crea un nuevo mensaje de salida.

    Si las aplicaciones de destino que manejan las peticiones de subtareas pueden extraer de un solo mensaje de entrada la información que necesitan, no es necesario incluir un nodo Compute para dividir el mensaje. Puede pasar todo el mensaje de entrada a todas las aplicaciones de destino.

    Si las aplicaciones de destino esperan recibir una petición individual, no todo el mensaje de entrada, debe incluir un nodo Compute para que genere cada mensaje de salida de subtarea individual a partir del mensaje de entrada. Configure cada nodo Compute de la siguiente forma, copiando el subconjunto adecuado del mensaje de entrada en cada mensaje de salida.

    1. Pulse el botón derecho del ratón en el nodo Compute y pulse Propiedades.
    2. Seleccione un valor para la propiedad Básico Modalidad de cálculo. Esta propiedad especifica qué secciones del árbol de mensajes modifica el nodo.

      El nodo AggregateControl inserta elementos en el árbol de entorno local en el mensaje de entrada que el nodo AggregateRequest lee cuando llega el mensaje. Asegúrese de que entorno local se copia del mensaje de entrada al mensaje de salida en el nodo Compute. Esto ocurre de forma automática a menos que especifique un valor que incluya el entorno local (uno de los valores Todos, Entorno local, Entorno local y mensaje o Excepción y entorno local).

      Si especifica uno de estos valores, el intermediario da por supuesto que está personalizando el nodo Compute con ESQL que escribe en el entorno local y que copiará todos los elementos de este árbol que son necesarios en la mensaje de salida.

      Si desea modificar el entorno local, añada la siguiente sentencia para copiar la información de agregación necesaria del mensaje de entrada en el mensaje de salida:

      SET OutputLocalEnvironment.ComIbmAggregateControlNode = 
                  InputLocalEnvironment.ComIbmAggregateControlNode;
    3. Opcional: especifique valores para todas las propiedades que desee configurar para este nodo.
    4. Conecte el terminal de salida de cada nodo Compute al terminal de entrada del nodo de salida que representa el destino del mensaje de solicitud de salida que ha creado desde el mensaje de entrada en este nodo.
    Nodo Output
    Incluya un nodo de salida para cada mensaje de salida que se genere en el flujo ramificado. Configure cada nodo como se describe a continuación, con las modificaciones adecuadas para cada destino.

    Éste debe ser un nodo de salida que dé soporte al modelo de petición/respuesta. Puede utilizar los nodos incorporados MQeOutput y MQOutput, o un nodo de salida definido por el usuario que dé soporte a la petición/respuesta, o una mezcla de estos nodos (en función de los requisitos de las aplicaciones de destino).

    1. Pulse el botón derecho del ratón en el nodo de salida y pulse Propiedades.
    2. Especifique el destino de los mensajes de salida para este nodo. Por ejemplo, especifique el nombre de una cola de WebSphere MQ en la propiedad Básico Nombre de cola a la que el nodo MQOutput envía mensajes. La aplicación de destino debe procesar su petición y enviar la respuesta al destino de respuestas indicado en este mensaje de entrada (por ejemplo la cola de respuestas de WebSphere MQ).
    3. Pulse Petición en la vista de la izquierda y establezca los valores para estas propiedades de forma que especifiquen que las respuestas se envían a la cola de entrada del flujo de abanico de entrada.
    4. Opcional: especifique valores para todas las propiedades que desee configurar para este nodo.
    5. Conecte el terminal de salida del nodo de salida al terminal de entrada de un nodo AggregateRequest. Cuando el mensaje se propaga a través del terminal de salida del nodo de salida, el nodo de salida incorporado actualiza la carpeta WrittenDestination dentro del entorno local asociado con la información adicional que el nodo AggregateRequest necesita.

      La información escrita por los nodos incorporados es el nombre de la cola, el nombre del gestor, el ID de mensaje y el ID de correlación (de MQMD) y el identificador de respuesta de mensaje (establecido en el mismo valor que el ID de mensaje).

      Si utiliza un nodo de salida definido por el usuario, asegúrese de que el nodo almacena información equivalente en WrittenDestination. Para más información, consulte Protocolos soportados para la agregación.

    Nodo AggregateRequest
    Incluya un nodo AggregateRequest para cada mensaje de salida que se genere en el flujo ramificado.
    1. Pulse el botón derecho del ratón en el nodo de salida y pulse Propiedades.
    2. Establezca la propiedad Básico Nombre de carpeta en un valor que identifica el tipo de petición que se ha enviado. Este valor lo utiliza el nodo AggregateReply para realizar la asociación con el mensaje de salida cuando éste se recibe en el flujo de abanico de entrada. El nombre de carpeta que se especifica para cada petición que el flujo ramificado genera debe ser exclusivo.

    El nodo AggregateRequest escribe un registro en la base de datos del intermediario para cada mensaje que procesa. Esto permite al nodo AggregateReply identificar con qué petición 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 que se confirme esta actualización de base de datos. Consulte Configuración de tiempos de espera para la agregación para obtener detalles sobre cómo utilizar los tiempos de espera para evitar que esto ocurra.

  4. Pulse Control-S para guardar el flujo de mensajes y validar su configuración.

Conceptos relacionados
Flujos de mensajes
Árbol LocalEnvironment
Agregación de flujos de mensajes
Nodos de entrada definidos por el usuario
Nodos de salida definidos por el usuario

Tareas relacionadas
Configuración de flujos de agregación
Creación de un flujo de abanico de entrada de agregación
Asociación de flujos de agregaciones ramificados y de abanicos de entrada
Configuración de tiempos de espera para la agregación
Utilización de varios nodos AggregateControl
Manejo de excepciones y puntos muertos de base de datos en flujos de agregaciones
Diseño de un flujo de mensajes
Creación de un flujo de mensajes
Definición del contenido del flujo de mensajes
Generación de varios mensajes de salida
Desarrollo de extensiones definidas por el usuario

Referencia relacionada
Nodo AggregateControl
Nodo AggregateReply
Nodo AggregateRequest
Nodo Compute
Nodo MQeInput
Nodo MQeOutput
Nodo MQInput
Nodo MQOutput