Mise en attente et réactivation des orchestrations
Lorsque plusieurs processus d'entreprise à long terme sont exécutés en même temps, la mémoire et les performances constituent des problèmes potentiels. Le moteur d'orchestration résout ces problèmes en « mettant en attente » et en « réalimentant » les instances d'orchestration.
La mise en attente est le processus qui consiste à sérialiser l'état d'une orchestration dans une base de données SQL Server. La réhydratation est l’inverse de ce processus : désérialisation du dernier état d’exécution d’une orchestration à partir de la base de données. La mise en attente est utilisée pour réduire au maximum l'utilisation de ressources système en réduisant le nombre d'orchestrations qui doivent être instanciées simultanément.
Mise en attente
Le moteur d'orchestration est susceptible de déterminer qu'une instance d'orchestration est inactive depuis relativement longtemps. Il calcule des seuils pour déterminer le temps pendant lequel il devra attendre que diverses actions aient lieu. Si ces seuils sont dépassés, il mettra en attente l'instance. Cela peut se produire dans les circonstances suivantes :
Quand l'orchestration attend de recevoir un message et que l'attente est plus longue qu'un seuil déterminé par le moteur.
Lorsque l’orchestration « écoute » un message, comme c’est le cas lorsque vous utilisez une forme d’écoute , et qu’aucune branche n’est déclenchée avant un seuil déterminé par le moteur. La seule exception à cela est lorsque la forme d’écoute contient une réception d’activation.
Quand, dans l'orchestration, un délai est plus long qu'un seuil déterminé par le moteur.
Le moteur met l'instance en attente en enregistrant l'état et libère la mémoire requise par l'instance. En déshydratant les instances d’orchestration dormantes, le moteur permet à un grand nombre de processus métier de longue durée de s’exécuter simultanément sur le même ordinateur.
Douze propriétés sont disponibles pour configurer le fonctionnement de la mise en attente dans BizTalk Server. Les rubriques de cette section fournissent une description de ces propriétés et de leur valeur par défaut, et présentent la manière dont les différentes valeurs affectent le comportement de la mise en attente.
Réactivation
Le moteur d'orchestration peut être amené à réalimenter une instance d'orchestration suite à la réception d'un message ou à l'expiration d'un délai spécifié dans une forme Attente. Il charge ensuite l’orchestration enregistrée instance dans la mémoire, restaure son état et l’exécute à partir du point où il s’est arrêté. Pour plus d’informations sur l’utilisation des formes dans les orchestrations, consultez Formes d’orchestration.
Il est possible de configurer une orchestration pour qu'elle s'exécute sur plusieurs serveurs. Après sa mise en attente, une instance d'orchestration peut être réalimentée sur n'importe lequel de ces serveurs. Si un serveur tombe en panne, le moteur continue d’exécuter l’orchestration sur un autre serveur, en continuant à partir de son état précédent. Cette fonctionnalité permet également au moteur d'implémenter l'équilibrage des charges sur les serveurs.