Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'archivio di istanze del flusso di lavoro SQL esegue un'attività interna che riattiva periodicamente e rileva istanze del flusso di lavoro eseguibili o attivabili nel database di persistenza. Se trova un'istanza del flusso di lavoro eseguibile, notifica all'host del flusso di lavoro che è in grado di attivare l'istanza. Se l'archivio istanze trova un'istanza del flusso di lavoro attivabile, invia una notifica a un host generico che attiva un host del flusso di lavoro, che a sua volta esegue l'istanza del flusso di lavoro. Le sezioni seguenti di questo argomento illustrano in dettaglio il processo di attivazione dell'istanza.
Rilevamento e attivazione di istanze del flusso di lavoro eseguibili
L'archivio di istanze del flusso di lavoro SQL considera un'istanza del flusso di lavoro eseguibile se l'istanza non è nello stato sospeso o nello stato completato e soddisfa le condizioni seguenti:
L'istanza è stata sbloccata e il timer in sospeso è scaduto.
L'istanza ha un blocco scaduto.
L'istanza viene sbloccata e il relativo stato è In esecuzione.
L'archivio di istanze del flusso di lavoro SQL genera HasRunnableWorkflowEvent quando trova un'istanza eseguibile. Successivamente, SqlWorkflowInstanceStore interrompe il monitoraggio finché non viene richiamato una volta il comando TryLoadRunnableWorkflowCommand sullo store.
Un host del flusso di lavoro che ha sottoscritto per il HasRunnableWorkflowEvent e che è in grado di caricare l'istanza esegue il TryLoadRunnableWorkflowCommand contro l'archivio di istanze per caricare l'istanza nella memoria. Un host del flusso di lavoro è considerato in grado di caricare un'istanza del flusso di lavoro se l'host e l'istanza hanno la proprietà dei metadati WorkflowServiceType impostata sullo stesso valore.
Rilevamento e attivazione di istanze del flusso di lavoro attivabili
Un'istanza del flusso di lavoro viene considerata attivabile se l'istanza è eseguibile e non esiste alcun host del flusso di lavoro in grado di caricare l'istanza è in esecuzione nel computer. Per la definizione di un'istanza del flusso di lavoro eseguibile, vedere Rilevamento e attivazione di istanze del flusso di lavoro eseguibili.
L'archivio di istanze del flusso di lavoro SQL genera HasActivatableWorkflowEvent quando trova un'istanza del flusso di lavoro attivabile nel database. Successivamente, SqlWorkflowInstanceStore interrompe il monitoraggio finché non viene richiamato una volta il comando QueryActivatableWorkflowsCommand sullo store.
Quando un host generico che ha sottoscritto l'evento HasActivatableWorkflowEvent riceve l'evento, esegue l'oggetto QueryActivatableWorkflowsCommand nell'archivio di istanze per ottenere i parametri di attivazione necessari per creare un host del flusso di lavoro. 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.
Host generici
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. Un host generico ha un parametro XName denominato ActivationType.
Attualmente, l'archivio di istanze del flusso di lavoro SQL supporta host generici con il valore del parametro ActivationType impostato su WAS. Se ActivationType non è impostato su WAS, l'archivio di istanze del flusso di lavoro SQL genera un'eccezione InstancePersistenceException. Il servizio di gestione del flusso di lavoro fornito con le funzionalità di hosting di Windows Server AppFabric è un host generico con il tipo di attivazione impostato su WAS.
Per l'attivazione WAS, un host generico richiede un set di parametri di attivazione per derivare l'indirizzo dell'endpoint in corrispondenza del quale è possibile attivare nuovi host. I parametri di attivazione per l'attivazione WAS sono il nome del sito, il percorso dell'applicazione rispetto al sito e il percorso del servizio rispetto all'applicazione. L'archivio di istanze del flusso di lavoro SQL archivia questi parametri di attivazione durante l'esecuzione di SaveWorkflowCommand.
Periodo di rilevamento delle istanze eseguibili
La proprietà Periodo di rilevamento istanze eseguibili dell'archivio di istanze del flusso di lavoro SQL specifica il periodo di tempo dopo il quale l'archivio di istanze del flusso di lavoro SQL esegue un'attività di rilevamento per rilevare eventuali istanze eseguibili o attivabili del flusso di lavoro nel database di persistenza dopo il ciclo di rilevamento precedente. Per altri dettagli su questa proprietà, vedere Periodo di rilevamento delle istanze eseguibili .