Freigeben über


Instanzaktivierung

Der SQL-Workflowinstanzspeicher führt eine interne Aufgabe aus, die in regelmäßigen Abständen aktiviert wird und ausführbare oder aktivierbare Workflowinstanzen in der Persistenzdatenbank ermittelt. Wenn eine ausgeführte Workflowinstanz gefunden wird, benachrichtigt sie den Workflowhost, der die Instanz aktivieren kann. Wenn der Instanzspeicher eine aktivierbare Workflowinstanz findet, benachrichtigt er einen generischen Host, der einen Workflowhost aktiviert, wodurch wiederum die Workflowinstanz ausgeführt wird. In den folgenden Abschnitten in diesem Thema wird der Instanzaktivierungsprozess ausführlich erläutert.

Erkennen und Aktivieren von ausführbaren Workflowinstanzen

Der SQL-Workflowinstanzspeicher betrachtet eine Workflowinstanz , die ausgeführt werden kann , wenn sich die Instanz nicht im angehaltenen Zustand oder im abgeschlossenen Zustand befindet und die folgenden Bedingungen erfüllt:

  • Die Instanz ist entsperrt und verfügt über einen ausstehenden Timer, der abgelaufen ist.

  • Die Instanz weist eine abgelaufene Sperre auf.

  • Die Instanz ist entsperrt und ihr Status ist auf Ausführung.

Der SQL-Workflowinstanzspeicher löst das HasRunnableWorkflowEvent aus, wenn eine ausführbare Instanz gefunden wird. Anschließend wird die Überwachung gestoppt, bis TryLoadRunnableWorkflowCommand einmal für den Speicher aufgerufen wird.

Ein Workflow-Host, der für HasRunnableWorkflowEvent abonniert hat und in der Lage ist, die Instanz zu laden, führt TryLoadRunnableWorkflowCommand gegen den Instanzspeicher aus, um die Instanz in den Arbeitsspeicher zu laden. Ein Workflowhost gilt als fähig, eine Workflowinstanz zu laden, wenn der Host und die Instanz die Metadateneigenschaft WorkflowServiceType auf denselben Wert festgelegt haben.

Erkennen und Aktivieren von aktivierbaren Workflowinstanzen

Eine Workflowinstanz gilt als aktivierbar , wenn die Instanz ausgeführt werden kann und kein Workflowhost vorhanden ist, der die Instanz auf dem Computer laden kann. Informationen zur Definition einer runnablen Workflowinstanz finden Sie oben unter Erkennen und Aktivieren von runnablen Workflowinstanzen.

Der SQL-Workflowinstanzspeicher löst das HasActivatableWorkflowEvent aus, wenn eine aktivierbare Workflowinstanz in der Datenbank gefunden wird. Anschließend wird die Überwachung gestoppt, bis QueryActivatableWorkflowsCommand einmal für den Speicher aufgerufen wird.

Wenn ein generischer Host, der das Ereignis HasActivatableWorkflowEvent abonniert hat, das Ereignis erhält, führt er QueryActivatableWorkflowsCommand gegen den Instanzspeicher aus, um die Aktivierungsparameter abzurufen, die zum Erstellen eines Workflowhosts erforderlich sind. Der generische Host verwendet diese Aktivierungsparameter, um einen Workflowhost zu erstellen, der wiederum die ausführungsfähige Dienstinstanz lädt und ausführt.

Generische Hosts

Ein generischer Host ist ein Host, bei dem der Wert der Metadateneigenschaft WorkflowServiceType für generische Hosts auf WorkflowServiceType.Any gesetzt ist, um anzuzeigen, dass er jeden Workflowtyp verarbeiten kann. Ein generischer Host verfügt über einen XName-Parameter namens ActivationType.

Derzeit unterstützt der SQL-Workflowinstanzspeicher generische Hosts mit dem Wert des ActivationType-Parameters, der auf WAS festgelegt ist. Wenn der ActivationType nicht auf WAS festgelegt ist, löst der SQL Workflow Instance Store einen InstancePersistenceException aus. Der Workflowverwaltungsdienst, der mit den Hostingfeatures von Windows Server AppFabric ausgeliefert wird, ist ein generischer Host, der den Aktivierungstyp auf WAS festgelegt hat.

Für die WAS-Aktivierung erfordert ein generischer Host eine Reihe von Aktivierungsparametern, um die Endpunktadresse abzuleiten, an der neue Hosts aktiviert werden können. Die Aktivierungsparameter für die WAS-Aktivierung sind der Name der Site, der Pfad zur Anwendung relativ zur Site und der Pfad zum Dienst relativ zur Anwendung. Der SQL-Workflowinstanzspeicher speichert diese Aktivierungsparameter während der Ausführung der SaveWorkflowCommand.

Ausführungsfähiger Erkennungszeitraum für Instanzen

Die Eigenschaft " Runnable Instances Detection Period " des SQL-Workflowinstanzspeichers gibt den Zeitraum an, nach dem der SQL-Workflowinstanzspeicher eine Erkennungsaufgabe ausführt, um ausgeführte oder aktivierbare Workflowinstanzen in der Persistenzdatenbank nach dem vorherigen Erkennungszyklus zu erkennen. Weitere Informationen zu dieser Eigenschaft finden Sie unter Ausführungsinstanzenerkennungszeitraum .