Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El almacén de instancias de flujo de trabajo de SQL ejecuta una tarea interna que se inicia periódicamente y que detecta instancias de flujo de trabajo ejecutables o activables en la base de datos de persistencia. Si encuentra una instancia de flujo de trabajo ejecutable, notifica al host de flujo de trabajo que es capaz de activar la instancia. Si el almacén de instancias encuentra una instancia de flujo de trabajo activable, notifica a un host genérico que activa un host de flujo de trabajo, que a su vez ejecuta la instancia de flujo de trabajo. En las secciones siguientes de este tema se explica detalladamente el proceso de activación de instancias.
Detección y activación de instancias de flujo de trabajo ejecutables
El almacén de instancias de flujo de trabajo de SQL considera que se puede ejecutar una instancia de flujo de trabajo si la instancia no está en estado suspendido o el estado completado y satisface las condiciones siguientes:
La instancia está desbloqueada y tiene un temporizador pendiente que ha expirado.
La instancia tiene un bloqueo expirado en ella.
La instancia está desbloqueada y su estado es En ejecución.
El almacén de instancias de flujo de trabajo de SQL lanza HasRunnableWorkflowEvent cuando encuentra una instancia ejecutable. Después de esto, SqlWorkflowInstanceStore detiene la supervisión hasta que se llame a TryLoadRunnableWorkflowCommand cuando se encuentre en el almacén.
Un host del flujo de trabajo que se ha suscrito para HasRunnableWorkflowEvent y que es capaz de cargar la instancia ejecuta TryLoadRunnableWorkflowCommand en el almacén de instancias para cargar la instancia en la memoria. Un host de flujo de trabajo se considera capaz de cargar una instancia de flujo de trabajo si el host y la instancia tienen la propiedad de metadatos WorkflowServiceType establecida en el mismo valor.
Detección y activación de instancias de flujo de trabajo activables
Una instancia de flujo de trabajo se considera activable si la instancia se puede ejecutar y no hay ningún host de flujo de trabajo capaz de cargar la instancia en el equipo. Consulte Detección y activación de instancias de flujo de trabajo ejecutables anteriores para obtener la definición de una instancia de flujo de trabajo ejecutable.
El almacén de instancias de flujo de trabajo de SQL eleva el HasActivatableWorkflowEvent cuando encuentra una instancia de flujo de trabajo activable en la base de datos. Después de esto, SqlWorkflowInstanceStore detiene la supervisión hasta que se llame a QueryActivatableWorkflowsCommand cuando se encuentre en el almacén.
Cuando un host genérico que ha suscrito para HasActivatableWorkflowEvent recibe el evento, ejecuta QueryActivatableWorkflowsCommand en el almacén de instancias para obtener parámetros de activación necesarios para crear un host del flujo de trabajo. El host genérico usa estos parámetros de activación para crear un host de flujo de trabajo, que a su vez carga y ejecuta la instancia de servicio ejecutable.
Hosts genéricos
Un host genérico es un host con el valor de la propiedad de metadatos WorkflowServiceType para hosts genéricos se establece en WorkflowServiceType.Any para indicar que puede controlar cualquier tipo de flujo de trabajo. Un host genérico tiene un parámetro XName denominado ActivationType.
Actualmente, el almacén de instancias de flujo de trabajo en SQL admite hosts genéricos con el valor del parámetro ActivationType establecido en WAS. Si el tipo de activación no está definido en WAS, el almacén de instancias de flujo de trabajo SQL inicia InstancePersistenceException. El servicio de administración de flujos de trabajo que se incluye con las características de hospedaje de AppFabric de Windows Server es un host genérico que tiene el tipo de activación establecido en WAS.
Para la activación de WAS, un host genérico requiere un conjunto de parámetros de activación para derivar la dirección del punto de conexión en la cual se pueden activar nuevos hosts. Los parámetros de activación para la activación WAS son el nombre del sitio, la ruta de acceso a la aplicación relativa al sitio y la ruta de acceso al servicio en relación con la aplicación. El almacén de instancias de flujo de trabajo de SQL almacena estos parámetros de activación durante la ejecución de SaveWorkflowCommand.
Período de detección de instancias ejecutables
La propiedad Período de detección de instancias ejecutables del almacén de instancias de flujo de trabajo de SQL especifica el período de tiempo después del cual el almacén de instancias de flujo de trabajo de SQL ejecuta una tarea de detección para detectar cualquier instancia de flujo de trabajo ejecutable o activable en la base de datos de persistencia después del ciclo de detección anterior. Consulte Período de detección de instancias ejecutables para más detalles sobre esta propiedad.