Configuración de tiempos de espera para la agregación

Puede utilizar dos propiedades de los nodos de agregación para establecer los valores de tiempo de espera para el proceso de mensajes agregados.

Antes de empezar:

Para llevar a cabo esta tarea, debe haber completado las siguientes tareas:

Hay dos situaciones que puedan requerir el uso de tiempos de espera:

  1. En determinadas situaciones puede que sea necesario recibir un mensaje de respuesta agregado en un determinado periodo de tiempo. Algunos mensajes de respuestas pueden tardar en llegar o es posible que nunca lleguen. Para estas situaciones, haga lo siguiente:
    1. Cambie a la perspectiva Desarrollo de aplicaciones de intermediario.
    2. Abra el flujo de mensajes ramificado.
    3. Establezca la propiedad Tiempo de espera del nodo AggregateControl para especificar el intervalo de tiempo (en segundos) durante el que el intermediario debe esperar las respuestas. Por omisión, esta propiedad se establece en 0, lo que significa que no hay tiempo de espera y que el intermediario espera indefinidamente.

    Si el intervalo de tiempo de espera transcurre sin que hayan llegado todas las respuestas, el correspondiente nodo AggregateReply convierte las que han llegado en un mensaje de respuesta agregado y se propaga al terminal de tiempo de espera. Si lo desea, puede procesar este mensaje de respuesta agregado parcial de la misma forma que un mensaje de respuesta agregado completo. Si lo prefiere, puede proporcionar un proceso especial para respuestas de agregación incompletas.

  2. Cuando un mensaje llega al terminal de entrada de un nodo AggregateReply, se examina para ver si es un mensaje de respuesta esperado. Si no se reconoce, se propaga al terminal desconocido. Es posible que desee que el intermediario espere durante un determinado periodo de tiempo antes de llevarlo a cabo, porque:
    • El mensaje de respuesta puede llegar antes de que el trabajo realizado por el nodo AggregateRequest se haya confirmado de forma transaccional.
    • El mensaje de respuesta puede llegar antes del mensaje de control.

    Los más probable es que estas situaciones se den si se envían mensajes de solicitud sin el punto de sincronismo, lo que hace que se envíen respuestas válidas al terminal desconocido. Para reducir la posibilidad de que esto ocurra:

    1. Cambie a la perspectiva Desarrollo de aplicaciones de intermediario.
    2. Abra el flujo de mensajes de abanico de entrada.
    3. Establezca la propiedad Tiempo de espera de mensaje desconocido en el nodo AggregateReply. Cuando establece esta propiedad, un mensaje que no puede reconocerse inmediatamente como respuesta válida se retiene de forma permanente dentro del intermediario durante los segundos que se especifiquen en esta propiedad.

    Si el intervalo de tiempo de espera desconocido caduca y se reconoce el mensaje, éste se procesa. El nodo también comprueba si este mensaje desconocido anterior es la última respuesta necesaria para hacer que una agregación sea completa. Si lo es, se crea y propaga el mensaje de respuesta agregado.

    Si el intervalo de tiempo desconocido caduca y el mensaje sigue sin reconocerse, éste se propaga al terminal desconocido.

Conceptos relacionados
Flujos de mensajes
Agregación de flujos de mensajes

Tareas relacionadas
Configuración de flujos de agregación
Creación del flujo ramificado de agregaciones
Creación de un flujo de abanico de entrada de agregación
Asociación de flujos de agregaciones ramificados y de abanicos de entrada
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

Referencia relacionada
Nodo AggregateControl
Nodo AggregateReply
Nodo AggregateRequest