Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Instanzspeicher ist ein logischer Container von Instanzen. Es ist der Ort, an dem die Instanzdaten und Metadaten gespeichert werden. Ein Instanzspeicher impliziert keinen dedizierten physischen Speicher. Ein Instanzspeicher kann dauerhafte Informationen in einer SQL Server-Datenbank oder nicht dauerhafte Zustandsinformationen in einem Speicher enthalten. Das .NET Framework 4.6.1 wird mit dem SQL-Workflowinstanzspeicher ausgeliefert. Dies ist eine konkrete Implementierung eines Instanzspeichers, mit dem Workflows Instanzdaten und Metadaten in einer SQL Server 2005- oder SQL Server 2008-Datenbank speichern können. Zusätzlich bietet Windows Server App Fabric eine konkrete Implementierung eines Instanzspeichers. Weitere Informationen finden Sie unter Windows Server AppFabric-Instanzspeicher, Abfrage und Steuerelementanbieter.
Die Persistenz-API ist die Schnittstelle zwischen einem Host und einem Instanzspeicher, die es dem Host ermöglicht, Befehlsanforderungen (z. B. LoadWorkflowCommand und SaveWorkflowCommand) an den Instanzspeicher zu senden. Die konkrete Implementierung dieser API wird als Persistenzanbieter bezeichnet. Der Persistenzanbieter empfängt Anforderungen von einem Host und ändert den Instanzspeicher.
Hosts und Instanzspeicher sind austauschbar, sodass ein Host mit vielen Instanzenspeichern verwendet werden kann, und ein Instanzspeicher kann mit vielen Hosts verwendet werden. Ein Instanzspeicher ist in der Regel für die Verwendungsmuster eines bestimmten Hosts optimiert, obwohl sich der Instanzspeicher und -host bei unabhängigen Lebenszyklen entwickeln kann. Beispielsweise sind WorkflowServiceHost und SqlWorkflowInstanceStore so konzipiert, dass sie gut zusammenarbeiten. Sie können einen eigenen Instanzspeicher erstellen, um Daten und Metadaten von Workflowdienstinstanzen zu speichern und diesen Instanzspeicher mit workflowServiceHost zu verwenden. Sie können beispielsweise einen OracleWorkflowInstanceStore erstellen, mit dem Workflows Informationen in einer Oracle-Datenbank beibehalten können, anstatt sie in einer SQL Server-Datenbank zu speichern.
Es ist üblich, dass Hosts mit zusätzlichen Funktionen erweitert werden, die die beibehaltenen Objekte ändern. Ein Instanzpersistenzsystem kann z. B. über einen Workflowhost, eine Erweiterung, die den „Suspend“-Vorgang unterstützt, und einen SQL-Instanzspeicher verfügen. Der Workflowhost sendet möglicherweise einen Standardbefehl wie "Speichern" oder "Laden", um einen Workflow aus einem Instanzspeicher zu speichern oder zu laden oder einen Workflow in einem Instanzspeicher zu speichern. Die Anhalteerweiterung fügt möglicherweise zusätzliche Semantik zu den Befehlen zum Speichern und Laden von Workflowinstanzen hinzu, sodass eine angehaltene Workflowinstanz nicht geladen werden kann. Der Persistenzanbieter für den SQL-Instanzspeicher versteht die Befehle zum Speichern und Laden von Workflowinstanzen und implementiert die Befehle durch Aufrufen geeigneter gespeicherter Prozeduren, die die Tabellen persistenter Objekte in einer SQL Server-Datenbank ändern.
Ein Host fungiert als Instanzbesitzer innerhalb eines Instanzspeichers. Ein Host kann gleichzeitig als mehr als ein Instanzbesitzer mit mehr als einem Instanzspeicher fungieren. Der Host stellt GUIDs für Instanzschlüssel bereit, die den Instanzen zugeordnet sind. Ein Instanzschlüssel ist ein eindeutiger Alias, der eine Instanz identifiziert. Das Persistenzsystem erstellt, aktualisiert und löscht Instanzbesitzerinformationen, während befehle ausgeführt werden, die von Hosts angefordert werden.
Die folgende Liste enthält die wichtigen Schritte, die für die Interaktion des Hosts mit dem Instanzspeicher erforderlich sind:
Abrufen eines InstanceStore von einem Persistenzanbieter
Rufen Sie das Handle für eine Instanz ab, indem Sie die CreateInstanceHandle Methode im InstanceStore aufrufen.
Rufen Sie Befehle für das Instanzhandle auf, indem Sie die Execute Methode im InstanceStore aufrufen.
Untersuchen des von InstanceViewInstanceStore.Execute zurückgegebenen -Elements, um die Ergebnisse der Befehle zu ermitteln