Partager via


Procédure : activer la persistance pour les workflows et les services de workflow

Cette rubrique s'applique à Windows Workflow Foundation 4.

Cette rubrique décrit la procédure d'activation de la persistance pour les flux de travail et les services de workflow.

Activation de la persistance pour les flux de travail

Vous pouvez associer un magasin d'instances à une WorkflowApplication à l'aide de la propriété InstanceStore de la classe WorkflowApplication. La méthode Persist enregistre ou rend persistant un flux de travail dans le magasin d'instances associé à l'application. La méthode Unload rend persistant un flux de travail dans le magasin d'instances, puis décharge l'instance de la mémoire. La méthode Load charge un flux de travail en mémoire, à l'aide des données de workflow stockées dans le magasin de persistance d'instances.

La méthode Persist effectue les étapes suivantes :

  1. Suspend le service de planification de workflow et attend jusqu'à ce que le flux de travail entre en état d'inactivité.

  2. Rend persistant le flux de travail ou l'enregistre dans le magasin de persistance.

  3. Reprend le service de planification de workflow.

La méthode Unload effectue les étapes suivantes :

  1. Suspend le service de planification de workflow et attend jusqu'à ce que le flux de travail entre en état d'inactivité.

  2. Rend le flux de travail persistant ou l'enregistre dans le magasin de persistance.

  3. Supprime l'instance de workflow en mémoire.

Les méthodes Persist et Unload se bloquent toutes les deux lorsqu'un flux de travail est en zone sans persistance, et ce jusqu'à ce qu'il la quitte. La méthode poursuit les opérations de persistance ou de déchargement une fois la zone sans persistance fermée. Si la zone sans persistance ne se ferme pas avant que le délai d'attente ne s'écoule ou si le processus de persistance prend trop de temps, une TimeoutException est levée.

Activation de la persistance pour les services de workflow

Le membre DurableInstancingOptions de la classe WorkflowServiceHost a une propriété nommée InstanceStore que vous pouvez utiliser pour associer un magasin d'instances au WorkflowServiceHost.

// wsh is an instance of WorkflowServiceHost class
wsh.DurableInstancingOptions.InstanceStore = new SqlWorkflowInstanceStore();

Une fois le WorkflowServiceHost ouvert, la persistance est activée automatiquement si le DurableInstancingOptions.InstanceStore n'est pas null.

En général, un comportement de service fournit le magasin d'instances concrètes à utiliser avec un hôte de service de workflow, à l'aide de la propriété InstanceStore. Par exemple, le SqlWorkflowInstanceStoreBehavior crée une instance du SqlWorkflowInstanceStore, la configure et l'affecte au DurableInstancingOptions.InstanceStore.

Voir aussi

Concepts

Procédure : activer la persistance pour les workflows et les services de workflow