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 salida de agregación

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.

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.

Para revisar un ejemplo de un flujo de abanico de salida que se proporciona con WebSphere Message Broker, consulte el ejemplo siguiente:

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:

  1. Cree un flujo de mensajes para proporcionar el proceso de abanico de salida. Para obtener más información, consulte Crear un flujo de mensajes.
  2. Añada los siguientes nodos al flujo de mensajes y luego configure y conéctelos, tal como se describe.
    Nodo de entrada
    El nodo de entrada recibe un mensaje de entrada desde el que se generan varios mensajes de solicitud. Este nodo puede ser cualquiera de los nodos incorporados, o un nodo de entrada definido por el usuario.
    1. Seleccione el nodo de entrada para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    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 Nombre de cola. El nodo MQInput recupera mensajes de esta cola.
    3. Opcional: establezca valores para cualquier otra propiedad que desee configurar para este nodo. Por ejemplo, para asegurar que los mensajes de solicitud agregados se transfieran bajo punto de sincronismo, establezca la propiedad Modalidad de transacción en . Esta opción evita una situación en la que el nodo AggregateReply recibe mensajes de respuesta antes de haber recibido el mensaje de control que le informa de la instancia de agregación. Al poner el flujo de abanico de salida bajo control transaccional se asegura que el flujo de abanico de salida se complete antes de que los mensajes de respuesta lleguen a AggregateReply.
    4. Conecte el terminal Out (de salida) del nodo de entrada al terminal In (de entrada) de un nodo AggregateControl. Esto representa la configuración más sencilla; si procede, puede incluir otros nodos entre el nodo de entrada y el nodo AggregateControl. Por ejemplo, almacene la solicitud para fines de auditoría (en un nodo Database) o añada un identificador exclusivo al mensaje (en un nodo Compute).
    5. Opcional: si los flujos de abanico de salida y abanico de entrada se combinan en un flujo de mensajes, modifique Modalidad de orden en el separador Avanzadas. Seleccione la propiedad Por orden de cola y asegúrese de que la opción Orden lógico también esté seleccionada. Estas opciones hacen que el nodo de entrada sea de una sola hebra para mantener el orden lógico de los mensajes que llegan en la cola. Todas las hebras de instancias adicionales que queden disponibles se compartirán sólo entre los nodos de entrada de abanico de entrada para mejorar el rendimiento de la agregación. Si los flujos de abanico de entrada y de abanico de salida están en flujos de mensajes separados, este paso no es necesario porque puede dejar hebras adicionales disponibles específicamente para el flujo de abanico de entrada.
    Nodo AggregateControl
    El nodo AggregateControl actualiza el entorno local asociado al mensaje de entrada con la información que requiere el nodo AggregateRequest. El nodo AggregateControl crea la carpeta LocalEnvironment.ComIbmAggregateControlNode. Esta carpeta y los campos dentro de ella son para uso interno de WebSphere Message Broker y el usuario no debe basarse en su existencia ni sus valores cuando desarrolla sus flujos de mensajes.
    1. Seleccione el nodo AggregateControl para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    2. Establezca la propiedad Nombre de agregación del nodo AggregateControl de modo que identifique esa agregación en particular. Esto se utiliza posteriormente para asociar ese nodo AggregateControl a un nodo AggregateReply específico. El Nombre de agregación que especifique debe tener un contexto exclusivo dentro de un intermediario.
    3. Opcional: establezca la propiedad Tiempo de espera para especificar cuánto tiempo espera el intermediario a que lleguen las respuestas antes de llevar a cabo alguna acción (lo que se describe en Establecer valores de tiempo de espera para agregación). Si no se establece un tiempo de espera en el nodo AggregateControl, las solicitudes de agregación almacenadas internamente no se eliminarán a menos que se devuelvan todos los mensajes de respuesta de agregación. Esta situación podría causar una acumulación gradual de mensajes en las colas internas. Para evitar esta situación, establezca el tiempo de espera en un valor distinto de cero (cero significa que nunca se excede el tiempo de espera) para que al alcanzar el tiempo de espera las solicitudes se eliminen y las colas no se llenen con solicitudes redundantes. Incluso si no se requieren o esperan tiempos de espera, es aconsejable establecer el valor de tiempo de espera en un valor alto; por ejemplo, 86400 segundos (24 horas) para que las colas se vacíen ocasionalmente de agregaciones antiguas.
    4. Conecte el terminal de salida del nodo AggregateControl al terminal de entrada de uno o más nodos Compute que permitan el análisis y desglose de la solicitud del mensaje de entrada que se propaga en este terminal.
    Atención: El terminal de control del nodo AggregateControl dejó de utilizarse en la versión 6.0 y, de forma predeterminada, se ignorarán todas las conexiones (directas o indirectas) de este terminal al nodo AggregateReply. Esta configuración maximiza la efectividad de los flujos de agregación y no afecta a la fiabilidad de las agregaciones. Ésta es la configuración óptima.

    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.

    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 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:

    1. Seleccione el nodo Compute para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    2. Seleccione un valor para la propiedad básica Modalidad de cálculo. Esta propiedad especifica las secciones del árbol de mensaje que modifica el nodo. El nodo AggregateControl inserta elementos en el árbol del entorno local en el mensaje de entrada que lee el nodo AggregateRequest cuando el mensaje llega a él. Asegúrese de que el entorno local se copia del mensaje de entrada al mensaje de salida del nodo Compute. Esta configuración se produce automáticamente a menos que especifique un valor que incluya el entorno local (que puede ser Todo, Entorno local, Entorno local y mensaje o Excepción y entorno local).

      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;
    3. Opcional: establezca valores para cualquier otra propiedad 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 a partir del mensaje de entrada de este nodo.
    Nodo de salida
    Incluya un nodo de salida para cada mensaje de salida que genere en el flujo de abanico de salida. Configure cada nodo tal como se describe a continuación en esta sección con las modificaciones adecuadas para cada destino.

    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).

    1. Seleccione el nodo de salida para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    2. Especifique el destino de los mensajes de salida de este nodo. Por ejemplo, especifique el nombre de una cola de WebSphere MQ en la propiedad Nombre de cola a la que el nodo MQOutput envía los mensajes. La aplicación de destino debe procesar su solicitud y enviar la respuesta al destino de respuesta indicado en su mensaje de entrada (por ejemplo WebSphere MQ ReplyToQueue).
    3. Pulse Solicitud en la vista de la izquierda y establezca valores para estas propiedades para especificar que las respuestas se envían a la cola de entrada del flujo.
    4. Opcional: establezca valores para cualquier otra propiedad 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 requiere el nodo AggregateRequest.

      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).

    Nodo AggregateRequest
    Incluya un nodo AggregateRequest para cada mensaje de salida que genere en el flujo de abanico de salida.
    1. Seleccione el nodo AggregateRequest para abrir la vista Propiedades. Se visualizarán las propiedades del nodo.
    2. Establezca la propiedad básica Nombre de carpeta en un valor que identifique el tipo de solicitud que se ha enviado. Este valor lo utiliza el nodo AggregateReply para compararlo con el mensaje de respuesta cuando éste se recibe en el flujo de abanico de entrada. El nombre de carpeta que especifique para cada solicitud que genere el flujo de abanico de salida debe ser exclusivo.

    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.

    PRECAUCIÓN:
    Aunque el uso de tiempos de espera puede ayudar a evitar la situación descrita anteriormente, configure el flujo de abanico de salida para que sea transaccional. De este modo, los mensajes de respuesta no pueden llegar al flujo de abanico de entrada antes de que los nodos AggregateRequest correspondientes hayan confirmado sus actualizaciones de base de datos.
  3. Para guardar el flujo de mensajes y validar su configuración, pulse Control-S o pulse Archivo > Guardar.
Para recopilar las respuestas de agregación iniciadas por el flujo de abanico de salida, cree un flujo de abanico de entrada, como se describe en Crear el flujo de abanico de entrada de agregación.
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 | ac12290_