Persistencia del flujo de trabajo
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. 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.
La persistencia permite procesar la agilidad, escalabilidad, recuperación en caso de error y la capacidad de administrar la memoria más eficazmente. 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.
Para habilitar la persistencia para un flujo de trabajo, necesita asociar un almacén de instancias a WorkflowApplication o WorkflowServiceHost, tal como se menciona en Cómo habilitar la persistencia para flujos de trabajo y servicios de flujo de trabajo. WorkflowApplication y WorkflowServiceHost usan el almacén de instancias asociado a ellos para permitir la persistencia de instancias de flujo de trabajo en un almacén de persistencia y la carga de instancias de flujo de trabajo en la memoria según los datos de la instancia de flujo de trabajo almacenados en el almacén de persistencia.
.NET Framework 4.6.1 se distribuye con la clase SqlWorkflowInstanceStore, que permite la persistencia de datos y metadatos sobre las instancias de flujo de trabajo en una base de datos de SQL Server 2005 o SQL Server 2008. Consulte Almacén de instancias de flujo de trabajo de SQL para más detalles.
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. 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. Para más información, consulte Participantes de persistencia.
Windows Server APp Fabric simplifica el proceso de configuración de persistencia. Para más información, consulte Conceptos de persistencia con Windows Server App Fabric.
Puntos de persistencia implícitos
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.
Cuando se completa una actividad TransactionScope o una actividad TransactedReceiveScope.
Cuando una instancia de flujo de trabajo se vuelve inactiva y la clase WorkflowIdleBehavior está establecida en el host de flujo de trabajo. Por ejemplo, esto se produce al usar actividades de mensajería o una actividad Delay.
Cuando WorkflowApplication se vuelve inactivo y la propiedad PersistableIdle de la aplicación está establecida en PersistableIdleAction.Persist.
Cuando se indica a una aplicación host que conserve o descargue una instancia de flujo de trabajo.
Cuándo se finaliza o termina una instancia de flujo de trabajo.
Cuando se ejecuta una actividad Persist.
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.