Zombies dans BizTalk ServerZombies in BizTalk Server

Qu’est un zombie ?What is a zombie?

  • Un message zombie est un message qui a été acheminé vers une orchestration en cours d’exécution à partir de la messagebox et a été « en vol » lorsque l’orchestration prend fin.A zombie message is a message that was routed to a running orchestration from the messagebox and was "in flight" when the orchestration ended. Un message « en vol » est un message qui a été routé vers une instance de service et est donc dans une file d’attente messagebox destiné à l’instance de service.An "in flight" message is a message that has been routed to a service instance and so is in a messagebox queue destined for the service instance. Étant donné que le message n’a n’est plus peut être utilisé par l’instance d’orchestration abonnée, le message est interrompu et marqué avec la valeur ServiceInstance/état « Suspendu (Non-peut être repris) ».Since the message can no longer be consumed by the subscribing orchestration instance, the message is suspended and marked with a ServiceInstance/State value of "Suspended (Non-resumable)".

  • Une instance de service zombie est une instance d’orchestration qui a pris fin pendant un message qui a été acheminé vers l’instance d’orchestration à partir de la messagebox se trouvait encore « en vol ».A zombie service instance is an instance of an orchestration which has completed while a message that was routed to the orchestration instance from the messagebox was still "in flight". Dans la mesure où l’instance d’orchestration est terminée, il ne peut pas consommer les messages « en vol » et par conséquent, est suspendue et marqué avec la valeur ServiceInstance/état « Suspendu (Non-peut être repris) ».Since the orchestration instance has ended, it cannot consume the "in flight" messages and so is suspended and marked with a ServiceInstance/State value of "Suspended (Non-resumable)".

Causes courantesTypical causes

Les occurrences de zombies appartiennent généralement à une des catégories suivantes :The occurrence of zombies typically falls into one of the following categories:

  1. Messages de contrôle d’arrêt – le moteur d’orchestration permet l’utilisation des messages de contrôle pour annuler tout le travail en cours d’exécution dans une instance d’orchestration spécifique.Terminate control messages – The orchestration engine allows the use of control messages to cancel all currently running work in a specific orchestration instance. Étant donné que le message de contrôle stoppe immédiatement l’orchestration en cours d’exécution, les instances zombies ne sont pas inattendues.Since the control message immediately halts the running orchestration, zombie instances are not unexpected. Un certain nombre de Workflow humain indépendantes conceptions ont tendance à utiliser ce mécanisme, ainsi que certains autres conceptions.A number of Human Workflow related designs tend to use this mechanism as well as some other designs.

  2. Réceptions en écoute parallèle : dans ce scénario de l’instance de service attend 1 sur n messages et quand elle reçoit certains messages il effectue certaines tâches et se termine.Parallel listen receives – In this scenario the service instance waits for 1 of n messages and when it receives certain messages it does some work and terminates. Si les messages sont reçus sur une branche parallèle, tout comme l’arrêt de l’instance de service, des zombies sont créés.If messages are received on a parallel branch just as the service instance is terminating, zombies are created.

  3. Convois séquentiels avec points de terminaison non déterministes – dans ce scénario, une planification d’orchestration principale est conçue pour gérer tous les messages d’un certain type afin de répondre à un type d’exigence de conception de système.Sequential convoys with non-deterministic endpoints – In this scenario, a master orchestration schedule is designed to handle all messages of a certain type in order to meet some type of system design requirement. Ces exigences de conception peuvent inclure livraison chronologique des messages, distributeurs de ressources et le traitement par lots.These design requirements may include ordered delivery, resource dispenser, and batching. Pour ce scénario, la tendance consiste à définir un certain temps entourant une forme écouter avec une branche réception et l’autre forme attente, suivie d’une construction qui définit des variables pour indiquer que la boucle while de boucle doit s’arrêter.For this scenario, the tendency is to define a while loop surrounding a listen with one branch having a receive and the other having a delay shape followed by some construct which sets some variable to indicate that the while loop should stop. Cela n’est pas déterministe, car le délai peut être déclenché, mais un message peut toujours être remis.This is non-deterministic since the delay could be triggered, but a message could still be delivered. Points de terminaison non déterministes comme ceci sont sujets à générer des zombies.Non-deterministic endpoints like this are prone to generating zombies.

    Lorsqu’une instance de service zombie est suspendue, le message d’erreur suivant est généré :When a zombie service instance is suspended, the following error message is generated:

0xC0C01B4C The instance completed without consuming all of its messages. The instance and its unconsumed messages have been suspended.

Vous pouvez utiliser la BizTalk Terminator pour supprimer les zombies.You can use the BizTalk Terminator to help remove zombies.

Voir aussiSee Also

Suppression d’Instances de Service suspendues dans le l’interface utilisateur des conseils et les développeurs espace de noms référence de l’APIin the UI guidance and developers API namespace referenceRemoving Suspended Service Instances dans le l’interface utilisateur des conseils et les développeurs espace de noms référence de l’APIin the UI guidance and developers API namespace reference