Persistenza del flusso di lavoroWorkflow Persistence

La persistenza del flusso di lavoro è l'acquisizione durevole di uno stato di un'istanza del flusso di lavoro, indipendentemente dalle informazioni relative al processo o al computer.Workflow persistence is the durable capture of a workflow instance's state, independent of process or computer information. In questo modo viene fornito un punto noto di ripristino dell'istanza del flusso di lavoro in caso di errore di sistema o viene conservata memoria scaricando istanze del flusso di lavoro il cui funzionamento non viene eseguito in modo attivo o ancora viene spostato lo stato dell'istanza del flusso di lavoro da un nodo a un altro in una server farm.This is done to provide a well-known point of recovery for the workflow instance in the event of system failure, or to preserve memory by unloading workflow instances that are not actively doing work, or to move the state of the workflow instance from one node to another node in a server farm.

La persistenza abilita agilità di processo, scalabilità, ripristino nonostante errori e la possibilità di gestire la memoria in modo più efficiente.Persistence enables process agility, scalability, recovery in the face of failure, and the ability to manage memory more efficiently. Il processo di persistenza include l'identificazione di un punto di persistenza, la raccolta dei dati da salvare e infine la delega dell'archiviazione effettiva dei dati a un provider di persistenza.The persistence process includes the identification of a persistence point, the gathering of the data to be saved, and finally the delegation of the actual storage of the data to a persistence provider.

Per abilitare la persistenza per un flusso di lavoro, è necessario associare un archivio di istanze con il WorkflowApplication o WorkflowServiceHost come indicato nella procedura: abilitare la persistenza per Flussi di lavoro e i servizi flusso di lavoro.To enable persistence for a workflow, you need to associate an instance store with the WorkflowApplication or WorkflowServiceHost as mentioned in How to: Enable Persistence for Workflows and Workflow Services. Il WorkflowApplication e WorkflowServiceHost utilizzare l'archivio di istanze associata per consentire di rendere persistenti le istanze del flusso di lavoro in un archivio di persistenza e il caricamento di istanze del flusso di lavoro in memoria in base ai dati di istanza del flusso di lavoro archiviati nell'archivio di persistenza.The WorkflowApplication and WorkflowServiceHost use the instance store associated with them to enable persisting workflow instances into a persistence store and loading workflow instances into memory based on the workflow instance data stored in the persistence store.

Il .NET Framework 4.6.1.NET Framework 4.6.1 viene fornito con il SqlWorkflowInstanceStore (classe), che consente la persistenza dei dati e i metadati relativi a istanze di flusso di lavoro in un database di SQL Server 2005 o SQL Server 2008.The .NET Framework 4.6.1.NET Framework 4.6.1 ships with the SqlWorkflowInstanceStore class, which allows persistence of data and metadata about workflow instances into a SQL Server 2005 or SQL Server 2008 database. Vedere archivio di istanze del flusso di lavoro SQL per altri dettagli.See SQL Workflow Instance Store for more details.

Per archiviare e caricare i dati specifici dell'applicazione insieme alle informazioni correlate all'istanza del flusso di lavoro, è possibile creare partecipanti di persistenza che estendono la classe PersistenceParticipant.To store and load your application-specific data along with the workflow instance-related information, you can create persistence participants that extend the PersistenceParticipant class. Un partecipante di persistenza fa parte del processo di persistenza per salvare dati serializzabili personalizzati nell'archivio di persistenza, per caricare i dati dall'archivio di istanze in memoria ed eseguire qualsiasi logica aggiuntiva in una transazione di persistenza.A persistence participant participates in the persistence process to save custom serializable data into the persistence store, to load the data from the instance store into memory, and to perform any additional logic under a persistence transaction. Per ulteriori informazioni, vedere i partecipanti di persistenza.For more information, see Persistence Participants.

Windows Server AppFabric semplifica il processo di configurazione della persistenza.Windows Server App Fabric simplifies the process of configuring persistence. Per altre informazioni, vedere concetti di persistenza con Windows Server AppFabricFor more information, see Persistence Concepts with Windows Server App Fabric

Punti di persistenza implicitiImplicit Persistence Points

Nell'elenco seguente sono contenuti esempi di condizioni in base alle quali un flusso di lavoro viene reso persistente quando un archivio di istanze è associato a un flusso di lavoro.The following list contains examples of the conditions upon which a workflow is persisted when an instance store is associated with a workflow.

  • Quando un TransactionScope al completamento dell'attività o un TransactedReceiveScope al completamento dell'attività.When a TransactionScope activity completes or a TransactedReceiveScope activity completes.

  • Quando un'istanza del flusso di lavoro diventa inattiva e WorkflowIdleBehavior viene impostato sull'host del flusso di lavoro.When a workflow instance becomes idle and the WorkflowIdleBehavior is set on workflow host. Ciò si verifica, ad esempio, quando si usano attività di messaggistica o ritardo attività.This occurs, for example, when you use messaging activities or a Delay activity.

  • Quando WorkflowApplication diventa inattivo e PersistableIdle dell'applicazione è impostata su Persistableidleaction.When a WorkflowApplication becomes idle and the PersistableIdle property of the application is set to PersistableIdleAction.Persist.

  • Quando a un'applicazione host viene richiesto di rendere persistente o scaricare un'istanza del flusso di lavoro.When a host application is instructed to persist or unload a workflow instance.

  • Quando un'istanza del flusso di lavoro viene terminata o termina.When a workflow instance is terminated or finishes.

  • Quando un Persist attività viene eseguita.When a Persist activity executes.

  • Quando un'istanza di un flusso di lavoro sviluppata usando una versione precedente di Windows Workflow Foundation incontra un punto di persistenza durante l'esecuzione interoperativa.When an instance of a workflow developed using a previous version of Windows Workflow Foundation encounters a persistence point during interoperable execution.

In questa sezioneIn This Section