Evitar la privación de hebras en flujos de abanico de entrada

Siga estas instrucciones para evitar la privación de hebras en flujos de abanico de entrada si el terminal de control del nodo AggregateControl en el flujo de abanico de salida está conectado para producir la salida de los mensajes de control en una cola.

Si no conecta el terminal de control, puede evitar las cuestiones descritas aquí. Para obtener información adicional sobre cómo conectar el terminal de control del nodo AggregateControl, consulte Utilizar mensajes de control en flujos de agregación.

El nodo AggregateReply tiene dos terminales de entrada: In (de entrada) y Control (de control). Si utiliza estos dos terminales, recuerde que el uso del terminal de control es opcional, el modo más eficiente de proporcionar datos al nodo de respuesta de agregación consiste en tener un solo nodo MQInput para el flujo de abanico de entrada seguido de un nodo Filter. El nodo Filter se utiliza para direccionar del modo apropiado un mensaje de entrada a los terminales de entrada o control del nodo de respuesta de agregación.

Utilice un solo nodo MQInput seguido de un nodo Filter en lugar de dos nodos MQInput en el flujo de mensajes: uno para el terminal de entrada y otro para el terminal de control. Debe utilizar un solo nodo MQInput porque no hay forma de especificar cómo se deben distribuir las hebras adicionales (disponibles al utilizar instancias adicionales) entre los dos nodos MQInput. Es probable que haya más tráfico en el terminal de entrada que en el terminal de control del nodo AggregateReply. Por lo tanto, resulta útil tener más hebras ejecutándose en el terminal de entrada del nodo de entrada. Pero no es posible configurar esa operación utilizando dos nodos MQInput. Por consiguiente es posible que el nodo AggregateReply experimente una privación de hebras, haciendo una copia de seguridad de los mensajes de respuesta y obstruyendo los mecanismos de agregación.

En el nodo Filter, utilice un módulo ESQL similar al que se muestra más abajo para asegurarse de que los mensajes se direccionan al terminal apropiado del nodo AggregateReply:
CREATE FILTER MODULE FanIn_Filter
    CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        IF Root.XMLNS.ComIbmAggregateControlNode IS NULL THEN
            RETURN TRUE;  -- enlazado con la entrada
        ELSE
            RETURN FALSE; -- enlazado con el control
        END IF;
    END;
END MODULE;

Si no puede configurar el flujo de abanico de entrada como se describe más arriba, puede forzar que el nodo MQInput que está leyendo los mensajes de control se ejecute en una sola hebra. Realice esta tarea configurando el nodo MQInput. Establezca el valor de la propiedad Modalidad de orden en el panel de propiedades avanzadas, para que sea Por orden de cola y seleccione Orden lógico. Esto libera todas las instancias adicionales configuradas para que las utilice el otro nodo MQInput. Como el rendimiento del primer nodo MQInput quedará gravemente limitado, utilice únicamente esta configuración si no tiene otra alternativa.

Conceptos relacionados
Visión general de flujos de mensajes
Agregación de flujo de mensajes
Tareas relacionadas
Crear el flujo de mensajes de abanico de entrada de agregación
Crear el flujo de mensajes de abanico de salida de agregación
Asociar flujos de agregación de mensajes de abanico de salida y de abanico de entrada
Establecer valores de tiempo de espera para agregación
Utilizar varios nodos AggregateControl
Manejar excepciones en flujos de agregación
Configurar flujos de agregación
Referencia relacionada
Nodo AggregateControl
Nodo AggregateReply
Nodo AggregateRequest
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:53:52

ac12313_