Attivazione di istanzeInstance Activation

L'archivio di istanze del flusso di lavoro SQL esegue un'attività interna che attiva e rileva periodicamente istanze del flusso di lavoro eseguibili o attivabili nel database di persistenza.The SQL Workflow Instance Store runs an internal task that periodically wakes up and detects runnable or activatable workflow instances in the persistence database. Se rileva un'istanza del flusso di lavoro eseguibile, notifica all'host del flusso di lavoro la possibilità di attivare l'istanza.If it finds a runnable workflow instance, it notifies the workflow host that is capable of activating the instance. Se l'archivio di istanze rileva un'istanza del flusso di lavoro attivabile, invia una notifica a un host generico che attiva un host del flusso di lavoro il quale, a sua volta, esegue l'istanza del flusso di lavoro.If the instance store finds an activatable workflow instance, it notifies a generic host that activates a workflow host, which in turn runs the workflow instance. Nelle sezioni seguenti di questo argomento viene illustrato dettagliatamente il processo di attivazione delle istanze.The following sections in this topic explain the instance activation process in detail.

Rilevamento e attivazione di istanze del flusso di lavoro eseguibiliDetecting and Activating Runnable Workflow Instances

L'archivio di istanze del flusso di lavoro SQL considera un'istanza del flusso di lavoro eseguibile se l'istanza non è in stato di sospensione o di completamento e soddisfa le condizioni seguenti:The SQL Workflow Instance Store considers a workflow instance runnable if the instance is not in the suspended state or the completed state and satisfies the following conditions:

  • L'istanza è sbloccata e dispone di un timer in sospeso scaduto.The instance is unlocked and has a pending timer that has expired.

  • Nell'istanza è presente un blocco scaduto.The instance has an expired lock on it.

  • L'istanza è sbloccata e il suo stato sia durante l'esecuzione di.The instance is unlocked and its status is Executing.

L'archivio di istanze del flusso di lavoro SQL genera l'oggetto HasRunnableWorkflowEvent quando rileva un'istanza eseguibile.The SQL Workflow Instance Store raises the HasRunnableWorkflowEvent when it finds a runnable instance. Successivamente, l'oggetto SqlWorkflowInstanceStore arresta il monitoraggio finché l'oggetto TryLoadRunnableWorkflowCommand non viene chiamato una volta sull'archivio.After this, the SqlWorkflowInstanceStore stops monitoring until the TryLoadRunnableWorkflowCommand is called once on the store.

Un host del flusso di lavoro che ha sottoscritto l'oggetto HasRunnableWorkflowEvent ed è in grado di caricare l'istanza, esegue l'oggetto TryLoadRunnableWorkflowCommand sull'archivio di istanze per caricare l'istanza in memoria.A workflow host that has subscribed for the HasRunnableWorkflowEvent and capable of loading the instance executes the TryLoadRunnableWorkflowCommand against the instance store to load the instance into memory. Un host del flusso di lavoro viene considerato capace di caricare un'istanza del flusso di lavoro, se l'host e l'istanza dispone di proprietà dei metadati WorkflowServiceType impostata sullo stesso valore.A workflow host is considered capable of loading a workflow instance if the host and the instance have metadata property WorkflowServiceType set to the same value.

Rilevamento e attivazione di istanze del flusso di lavoro attivabiliDetecting and Activating Activatable Workflow Instances

Un'istanza del flusso di lavoro viene considerata attivabile se l'istanza è eseguibile e non esiste nessun host del flusso di lavoro è in grado di caricare l'istanza è in esecuzione nel computer.A workflow instance is considered activatable if the instance is runnable and there is no workflow host that is capable of loading the instance is running on the computer. Vedere la sezione precedente Rilevamento e attivazione di istanze del flusso di lavoro eseguibili per la definizione di un'istanza del flusso di lavoro eseguibile.See Detecting and Activating Runnable Workflow Instances above for the definition of a runnable workflow instance.

L'archivio di istanze del flusso di lavoro SQL genera l'oggetto HasActivatableWorkflowEvent quando rileva un'istanza del flusso di lavoro eseguibile nel database.The SQL Workflow Instance Store raises the HasActivatableWorkflowEvent when it finds an activatable workflow instance in the database. Successivamente, l'oggetto SqlWorkflowInstanceStore arresta il monitoraggio finché l'oggetto QueryActivatableWorkflowsCommand non viene chiamato una volta sull'archivio.After this, the SqlWorkflowInstanceStore stops monitoring until the QueryActivatableWorkflowsCommand is called once on the store.

Quando un host generico che ha sottoscritto l'oggetto HasActivatableWorkflowEvent riceve l'evento, esegue l'oggetto QueryActivatableWorkflowsCommand sull'archivio di istanze per ottenere i parametri di attivazione necessari per creare un host del flusso di lavoro.When a generic host that has subscribed for the HasActivatableWorkflowEvent receives the event, it executes the QueryActivatableWorkflowsCommand against the instance store to obtain activation parameters required to create a workflow host. L'host generico usa questi parametri di attivazione per creare un host del flusso di lavoro che, a sua volta, carica ed esegue l'istanza del servizio eseguibile.The generic host uses these activation parameters to create a workflow host, which in turn loads and runs the runnable service instance.

Host genericiGeneric Hosts

Un host generico è un host con il valore della proprietà dei metadati WorkflowServiceType per gli host generici è impostato su workflowservicetype. Any per indicare che può gestire qualsiasi tipo di flusso di lavoro.A generic host is a host with the value of the metadata property WorkflowServiceType for generic hosts is set to WorkflowServiceType.Any to indicate that it can handle any workflow type. Un host generico dispone di un parametro XName denominato ActivationType.A generic host has an XName parameter named ActivationType.

Attualmente, l'archivio di istanze del flusso di lavoro SQL supporta un host generico con il valore del parametro ActivationType impostato su WAS.Currently, the SQL Workflow Instance Store supports generic hosts with value of the ActivationType parameter set to WAS. Se il parametro ActivationType non è impostato su WAS, l'archivio di istanze del flusso di lavoro SQL genera un'eccezione InstancePersistenceException.If the ActivationType is not set to WAS, the SQL Workflow Instance Store throws an InstancePersistenceException. Il servizio di gestione del flusso di lavoro fornito con il funzionalità di hosting di Windows Server AppFabrichosting features of Windows Server AppFabric è un host generico che ha il tipo di attivazione impostato su WAS.The Workflow Management Service that ships with the funzionalità di hosting di Windows Server AppFabrichosting features of Windows Server AppFabric is a generic host that has the activation type set to WAS.

Per l'attivazione di WAS, un host generico richiede un set di parametri di attivazione per derivare l'indirizzo dell'endpoint in cui possono essere attivati nuovi host.For WAS activation, a generic host requires a set of activation parameters to derive the endpoint address at which new hosts can be activated. I parametri per l'attivazione di WAS sono: nome del sito, percorso dell'applicazione relativa al sito e percorso del servizio relativo all'applicazione.The activation parameters for WAS activation are name of the site, path to the application relative to the site, and path to the service relative to the application. L'archivio di istanze del flusso di lavoro SQL archivia questi parametri di attivazione durante l'esecuzione dell'oggetto SaveWorkflowCommand.The SQL Workflow Instance Store stores these activation parameters during the execution of the SaveWorkflowCommand.

Runnable Instances Detection PeriodRunnable Instances Detection Period

Il Runnable Instances Detection Period proprietà dell'archivio di istanze del flusso di lavoro SQL specifica il periodo di tempo trascorso il quale l'archivio di istanze del flusso di lavoro SQL esegue un'attività di rilevamento per rilevare qualsiasi flusso di lavoro eseguibile o attivabili istanze nel database di persistenza dopo il ciclo di rilevamento precedente.The Runnable Instances Detection Period property of the SQL Workflow Instance Store specifies the time period after which the SQL Workflow Instance Store runs a detection task to detect any runnable or activatable workflow instances in the persistence database after the previous detection cycle. Vedere Runnable Instances Detection Period per ulteriori informazioni su questa proprietà.See Runnable Instances Detection Period for more details on this property.