Persistencia del flujo de trabajoWorkflow Persistence

La persistencia del flujo de trabajo es la captura duradera de un estado de la instancia de flujo de trabajo, independientemente de la información del proceso o del equipo.Workflow persistence is the durable capture of a workflow instance's state, independent of process or computer information. Esto sirve para proporcionar un punto de recuperación conocido para la instancia de flujo de trabajo en caso de error del sistema, para conservar la memoria descargando instancias de flujo de trabajo que no están funcionando de forma activa o para mover el estado de la instancia de flujo de trabajo de un nodo a otro en una granja de servidores.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 persistencia permite procesar la agilidad, escalabilidad, recuperación en caso de error y la capacidad de administrar la memoria más eficazmente.Persistence enables process agility, scalability, recovery in the face of failure, and the ability to manage memory more efficiently. El proceso de persistencia incluye la identificación de un punto de persistencia, la recopilación de los datos que se van a guardar y finalmente la delegación del almacenamiento real de los datos a un proveedor de persistencia.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.

Para habilitar la persistencia para un flujo de trabajo, debe asociar un almacén de instancias con el WorkflowApplication o WorkflowServiceHost como se mencionó en Cómo: habilitar la persistencia para Los flujos de trabajo y los servicios de flujo de trabajo.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. El WorkflowApplication y WorkflowServiceHost usar el almacén de instancia asociado a ellos para habilitar la persistencia de instancias de flujo de trabajo en un almacén de persistencia y cargar instancias de flujo de trabajo en memoria en función de los datos de instancia de flujo de trabajo almacenados en el almacén de persistencia.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.

El .NET Framework 4.6.1.NET Framework 4.6.1 se suministra con la SqlWorkflowInstanceStore (clase), que permite la persistencia de datos y metadatos acerca de las instancias de flujo de trabajo en una base de datos de 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. Vea almacén de instancias de flujo de trabajo de SQL para obtener más detalles.See SQL Workflow Instance Store for more details.

Para almacenar y cargar los datos específicos de la aplicación junto con la información relacionada con la instancia de flujo de trabajo, puede crear participantes de persistencia que extienden la clase 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. Los participantes de persistencia participan en el proceso de persistencia para guardar los datos serializables personalizados en el almacén de persistencia, para cargar los datos del almacén de instancias en la memoria y para realizar cualquier lógica adicional en una transacción de persistencia.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. Para obtener más información, consulte participantes de persistencia.For more information, see Persistence Participants.

Windows Server APp Fabric simplifica el proceso de configuración de persistencia.Windows Server App Fabric simplifies the process of configuring persistence. Para obtener más información, vea conceptos de persistencia con Windows Server App FabricFor more information, see Persistence Concepts with Windows Server App Fabric

Puntos de persistencia implícitosImplicit Persistence Points

La siguiente lista contiene ejemplos de las condiciones en las que se conserva un flujo de trabajo cuando se asocia un almacén de instancias a este.The following list contains examples of the conditions upon which a workflow is persisted when an instance store is associated with a workflow.

  • Cuando un TransactionScope actividad se completa o una TransactedReceiveScope completa de la actividad.When a TransactionScope activity completes or a TransactedReceiveScope activity completes.

  • Cuando una instancia de flujo de trabajo se vuelve inactiva y el WorkflowIdleBehavior se establece en el host de flujo de trabajo.When a workflow instance becomes idle and the WorkflowIdleBehavior is set on workflow host. Esto ocurre, por ejemplo, cuando use las actividades de mensajería o un retraso actividad.This occurs, for example, when you use messaging activities or a Delay activity.

  • Cuando WorkflowApplication se vuelve inactiva y el PersistableIdle propiedad de la aplicación está establecida en PersistableIdleAction.Persist.When a WorkflowApplication becomes idle and the PersistableIdle property of the application is set to PersistableIdleAction.Persist.

  • Cuando se indica a una aplicación host que conserve o descargue una instancia de flujo de trabajo.When a host application is instructed to persist or unload a workflow instance.

  • Cuándo se finaliza o termina una instancia de flujo de trabajo.When a workflow instance is terminated or finishes.

  • Cuando un Persist actividad se ejecuta.When a Persist activity executes.

  • Cuando una instancia de un flujo de trabajo desarrollada con una versión anterior de Windows Workflow Foundation encuentra un punto de persistencia durante la ejecución interoperable.When an instance of a workflow developed using a previous version of Windows Workflow Foundation encounters a persistence point during interoperable execution.

En esta secciónIn This Section