Partager via


Activation d’instance

Le magasin d’instances de flux de travail SQL exécute une tâche interne qui se réveille régulièrement et détecte les instances de flux de travail exécutables ou activables dans la base de données de persistance. S’il trouve une instance de flux de travail exécutable, il avertit l’hôte de flux de travail capable d’activer l’instance. Si le magasin d’instances trouve une instance de workflow activable, il avertit un hôte générique qui active un hôte de workflow, et exécute ensuite l’instance de workflow. Les sections suivantes de cette rubrique expliquent en détail le processus d’activation de l’instance.

Détection et activation d’instances de flux de travail exécutables

Le magasin d’instances de flux de travail SQL considère qu’une instance de flux de travail peut être exécutée si l’instance n’est pas dans l’état suspendu ou dans l’état terminé et satisfait aux conditions suivantes :

  • L’instance est déverrouillée et a un minuteur en attente qui a expiré.

  • L'instance a un verrou périmé.

  • L’instance est déverrouillée et son état est en cours d’exécution.

Le magasin d’instances de flux de travail SQL soulève le HasRunnableWorkflowEvent lorsqu'il trouve une instance exécutable. Après cela, SqlWorkflowInstanceStore arrête la surveillance jusqu'à ce que le TryLoadRunnableWorkflowCommand soit appelé une seule fois sur le store.

Un hôte de flux de travail qui s’est abonné à HasRunnableWorkflowEvent et qui est capable de charger l’instance exécute le TryLoadRunnableWorkflowCommand dans le stockage d’instances pour charger l'instance en mémoire. Un hôte de flux de travail est considéré comme capable de charger une instance de flux de travail si l’hôte et l’instance ont la propriété de métadonnées WorkflowServiceType définie sur la même valeur.

Détection et activation d’instances de flux de travail pouvant être activées

Une instance de flux de travail est considérée comme activable si l’instance est exécutable et qu’il n’existe aucun hôte de flux de travail capable de charger l’instance s’exécute sur l’ordinateur. Consultez Détection et activation des instances de flux de travail exécutables ci-dessus pour la définition d’une instance de flux de travail exécutable.

Le magasin d'instances de flux de travail SQL déclenche l’événement HasActivatableWorkflowEvent lorsqu’il trouve une instance de flux de travail activable dans la base de données. Après cela, SqlWorkflowInstanceStore arrête la surveillance jusqu'à ce que le QueryActivatableWorkflowsCommand soit appelé une seule fois sur le store.

Lorsqu’un hôte générique qui s’est abonné au HasActivatableWorkflowEvent reçoit l’événement, il exécute le QueryActivatableWorkflowsCommand contre le magasin d’instances pour obtenir les paramètres requis d’activation nécessaires à la création d’un hôte de flux de travail. L’hôte générique utilise ces paramètres d’activation pour créer un hôte de flux de travail, qui charge et exécute à son tour l’instance de service exécutable.

Hôtes génériques

Un hôte générique est un hôte avec la valeur de la propriété de métadonnées WorkflowServiceType pour les hôtes génériques est défini sur WorkflowServiceType.Any pour indiquer qu’il peut gérer n’importe quel type de flux de travail. Un hôte générique a un paramètre XName nommé ActivationType.

Actuellement, le magasin d'instances de workflow SQL prend en charge les hôtes génériques dont la valeur du paramètre ActivationType est définie sur WAS. Si le paramètre ActivationType n'est pas défini sur WAS, le magasin d'instances de workflow SQL lève un objet InstancePersistenceException. Le service de gestion des flux de travail fourni avec les fonctionnalités d’hébergement de Windows Server AppFabric est un hôte générique dont le type d’activation est défini sur WAS.

Pour l’activation WAS, un hôte générique nécessite un ensemble de paramètres d’activation pour dériver l’adresse de point de terminaison à laquelle les nouveaux hôtes peuvent être activés. Les paramètres d’activation pour l’activation WAS sont le nom du site, le chemin d’accès à l’application par rapport au site et le chemin du service par rapport à l’application. Le magasin d’instances de flux de travail SQL stocke ces paramètres d’activation pendant l’exécution du SaveWorkflowCommand.

Période de détection des instances activables

La propriété Période de détection des instances runnables du magasin d’instances de flux de travail SQL spécifie la période après laquelle le magasin d’instances de flux de travail SQL exécute une tâche de détection pour détecter les instances de flux de travail exécutables ou pouvant être activées dans la base de données de persistance après le cycle de détection précédent. Pour plus d’informations sur cette propriété, consultez Période de détection des instances exécutables.