Hay dos situaciones en las que es posible que tenga que utilizar valores de tiempo de espera:
- En determinadas situaciones, es posible que tenga que recibir un mensaje de respuesta agregado dentro de un período de tiempo determinado. Es posible que algunos mensajes tarden en volver o que no lleguen nunca. Para estas situaciones:
- Vaya a Perspectiva de Desarrollo de aplicaciones de
intermediario.
- Abra el flujo de mensajes de abanico de salida.
- Establezca la propiedad Tiempo de espera del nodo AggregateControl de modo que especifique cuánto tiempo (en segundos) debe esperar el intermediario a recibir las respuestas. Por omisión, esta propiedad se establece en 0, lo que significa que no hay un valor de tiempo de espera y el intermediario espera de modo indefinido.
Si el intervalo de tiempo de espera pasa sin que lleguen respuestas, el nodo AggregateReply correspondiente convierte las respuestas que lleguen en un mensaje de respuesta agregado que se propaga a su terminal de tiempo de espera excedido.
Si lo decide, puede procesar este mensaje de respuesta parcial del mismo modo como un mensaje de respuesta agregado completo. Si lo prefiere, puede proporcionar un proceso especial para las respuestas de agregación incompletas.
- Cuando llega un mensaje al terminal de entrada de un nodo AggregateReply, se analiza para ver si se trata de un mensaje de respuesta esperado. Si no se reconoce, se propaga al terminal desconocido. Es posible que desee que el intermediario espere durante un período de tiempo determinado antes de hacerlo, debido a que:
- El mensaje de respuesta puede llegar antes de que el trabajo realizado por el nodo AggregateRequest
se haya confirmado transaccionalmente. Esta situación se puede evitar configurando
la propiedad Modalidad de transacción
del nodo Input como se describe en Crear el flujo de mensajes de abanico de salida de agregación.
- El mensaje de respuesta puede llegar antes del mensaje de control. Esta situación se puede evitar dejando desconectado el
terminal de control del nodo AggregateControl. Para obtener información
adicional sobre las implicaciones de la conexión del terminal de control,
consulte Utilizar mensajes de control en flujos de agregación.
Estas situaciones suelen suceder si envía los mensajes de petición fuera del punto de sincronización y pueden dar como resultado que las respuestas válidas se envíen al terminal desconocido. Para reducir la posibilidad de que esto ocurra:
- Vaya a Perspectiva de Desarrollo de aplicaciones de
intermediario.
- Abra el flujo de mensajes de abanico de entrada.
- Establezca la propiedad Tiempo de espera de mensaje desconocido en el nodo
AggregateReply. Cuando establece esta propiedad, no se reconocerá de forma inmediata
un mensaje como una respuesta válida que se guarda de forma persistente en el intermediario durante el número de segundos que especifique para esta propiedad.
Si caduca el intervalo de tiempo de espera desconocido y se reconoce el mensaje, se procesará. El nodo también comprueba si el mensaje desconocido anteriormente es la última respuesta necesaria para realizar una agregación completa. Si lo es, se crea el mensaje de respuesta y se propaga.
Si caduca el intervalo de tiempo de espera desconocido y todavía no se ha reconocido el mensaje, el mensaje se propaga al terminal desconocido.