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