Partager via


Persistance du flux de travail

La persistance du flux de travail est la capture durable de l’état d’une instance de flux de travail, indépendamment des informations de processus ou d’ordinateur. Cela permet de fournir un point de récupération bien connu pour l’instance de flux de travail en cas de défaillance du système, ou pour conserver la mémoire en déchargeant les instances de flux de travail qui ne fonctionnent pas activement, ou pour déplacer l’état de l’instance de flux de travail d’un nœud vers un autre nœud d’une batterie de serveurs.

La persistance permet l’agilité du processus, la scalabilité, la récupération face à une défaillance et la possibilité de gérer la mémoire plus efficacement. Le processus de persistance inclut l’identification d’un point de persistance, la collecte des données à enregistrer, et enfin la délégation du stockage réel des données à un fournisseur de persistance.

Pour activer la persistance d’un flux de travail, vous devez associer un magasin d’instances à WorkflowApplication ou WorkflowServiceHost , comme indiqué dans How to : Enable Persistence for Workflows and Workflow Services. WorkflowApplication et WorkflowServiceHost utilisent le magasin d’instances qui leur est associé pour permettre la persistance des instances de flux de travail dans un magasin de persistance et le chargement d’instances de flux de travail en mémoire en fonction des données d’instance de flux de travail stockées dans le magasin de persistance.

Le .NET Framework 4.6.1 est fourni avec la classe SqlWorkflowInstanceStore , qui permet la persistance des données et des métadonnées sur les instances de flux de travail dans une base de données SQL Server 2005 ou SQL Server 2008. Pour plus d’informations, consultez le Magasin d’instances de flux de travail SQL .

Pour stocker et charger vos données spécifiques à votre application avec les informations relatives à l’instance de workflow, vous pouvez créer des participants de persistance qui étendent la PersistenceParticipant classe. Un participant à la persistance participe au processus de persistance pour enregistrer des données sérialisables personnalisées dans le magasin de persistance, charger les données du magasin d’instances en mémoire et effectuer toute logique supplémentaire dans une transaction de persistance. Pour plus d’informations, consultez Participants de persistance.

Windows Server App Fabric simplifie le processus de configuration de la persistance. Pour plus d’informations, consultez Concepts de persistance avec Windows Server App Fabric

Points de persistance implicites

La liste suivante contient des exemples de conditions sur lesquelles un flux de travail est conservé lorsqu’un magasin d’instances est associé à un flux de travail.

  • Lorsqu’une activité TransactionScope se termine ou qu’une activité TransactedReceiveScope est terminée.

  • Lorsqu'une instance de flux de travail devient inactive et que le comportement d'inactivité Workflow est défini sur l'hôte de flux de travail. Cela se produit, par exemple, lorsque vous utilisez des activités de messagerie ou une activité Delay .

  • Lorsqu’un WorkflowApplication devient inactif et que la propriété PersistableIdle de l’application est définie sur PersistableIdleAction.Persist.

  • Lorsqu’une application hôte est chargée de conserver ou de décharger une instance de flux de travail.

  • Lorsqu’une instance de flux de travail est arrêtée ou terminée.

  • Lorsqu’une activité Persist s’exécute.

  • Lorsqu’une instance d’un flux de travail développé à l’aide d’une version précédente de Windows Workflow Foundation rencontre un point de persistance pendant l’exécution interopérable.

Dans cette section