Existem duas situações que podem requerer a utilização
de tempos limite:
- Em certas situações, você pode receber uma mensagem de resposta agregada dentro de um determinado tempo. Algumas mensagens de resposta podem ser lentas para retornar ou podem nunca chegar.
Para essas situações:
- Alterne para o Perspectiva do Desenvolvimento de Aplicativos do Intermediário.
- Abra o fluxo de mensagens de difusão.
- Defina a propriedade Tempo Limite do nó AggregateControl para especificar
quanto tempo (em segundos) o intermediário deve aguardar respostas.Por padrão, essa propriedade é definida como 0, o que significa que não existe
nenhum tempo limite e o intermediário aguarda indefinidamente.
Se o intervalo de tempo
limite decorrer sem que todas as respostas tenham chegado, as respostas que chegaram
serão transformadas em uma mensagem de resposta agregada pelo nó AggregateReply
correspondente e propagada para seu terminal de tempo limite. Se preferir,
você pode processar essa mensagem de resposta parcial da mesma forma
que uma mensagem de resposta agregada completa.
Se preferir, você pode fornecer processamento especial
para respostas agregadas incompletas.
- Quando uma mensagem chega no terminal de um nó AggregateReply,
ela é examinada para verificar se é uma mensagem de resposta esperada. Se ela não for reconhecida,
será propagada para o terminal desconhecido.
Talvez você queira que o intermediário aguarde um
determinado período de tempo antes de fazer isso, porque:
- A mensagem de resposta pode chegar antes de o trabalho executado pelo nó AggregateRequest
ter sido consolidado de forma transacional. Esta situação pode ser
evitada configurando-se a propriedade Modo de
Transação do nó Input, conforme descrito em Criando o Fluxo de Difusão de Agregação.
- A mensagem de resposta pode chegar antes da mensagem de controle. Essa situação pode
ser evitada deixando desconectado o terminal de controle do nó AggregateControl. Para
obter informações adicionais sobre as implicações de conectar o terminal de controle,
consulte Utilizando Mensagens de Controle em Fluxos de Agregação.
Essas situações têm mais probabilidade de ocorrer se você enviar as mensagens de pedido
a partir de um ponto de sincronização e podem resultar em respostas válidas sendo enviadas
para o terminal desconhecido. Para reduzir a chance de que isso ocorra:
- Alterne para o Perspectiva do Desenvolvimento de Aplicativos do Intermediário.
- Abra o fluxo de mensagens de recepção.
- Defina a propriedade Tempo Limite de Mensagem Desconhecido no nó AggregateReply. Quando você definir essa propriedade, uma mensagem que não pode ser
reconhecida imediatamente como uma resposta válida é mantida dentro
do intermediário de forma persistente pelo número de
segundos especificados para essa propriedade.
Se o intervalo de tempo limite desconhecido expirar e a
mensagem for reconhecida, ela será processada. O nó também verifica se essa mensagem desconhecida
anteriormente é a última resposta necessária para a conclusão de uma agregação.
Se for, a mensagem de resposta agregada será construída e propagada.
Se o intervalo de tempo limite desconhecido expirar e a mensagem ainda não for reconhecida,
a mensagem será propagada para o terminal desconhecido.