Udostępnij za pośrednictwem


Magazyny wystąpień

Magazyn wystąpień jest logicznym kontenerem wystąpień. Jest to miejsce, w którym są przechowywane dane wystąpienia i metadane. Magazyn wystąpień nie oznacza dedykowanego magazynu fizycznego. Magazyn wystąpień może zawierać trwałe informacje w bazie danych programu SQL Server lub nietrwałe informacje o stanie w pamięci. Program .NET Framework 4.6.1 jest dostarczany z magazynem wystąpień przepływu pracy SQL, który jest konkretną implementacją magazynu wystąpień, który umożliwia przepływom pracy utrwalanie danych wystąpienia i metadanych w bazie danych programu SQL Server 2005 lub SQL Server 2008. Ponadto usługa Windows Server App Fabric udostępnia również konkretną implementację magazynu wystąpień. Aby uzyskać więcej informacji, zobacz Windows Server App Fabric Instance Store, Query, and Control Providers (Dostawcy zapytań i kontroli systemu Windows Server App Fabric).

Interfejs API trwałości to interfejs między hostem a magazynem wystąpień, który umożliwia hostowi wysyłanie żądań poleceń (na przykład LoadWorkflowCommand i SaveWorkflowCommand) do magazynu wystąpień. Konkretna implementacja tego interfejsu API jest nazywana dostawcą trwałości. Dostawca trwałości odbiera żądania z hosta i modyfikuje magazyn wystąpień.

Hosty i magazyny wystąpień można podłączyć tak, aby host mógł być używany z wieloma magazynami wystąpień, a magazyn wystąpień może być używany z wieloma hostami. Magazyn wystąpień jest zwykle zoptymalizowany pod kątem wzorców użycia określonego hosta, chociaż magazyn wystąpień i host mogą ewoluować w niezależnych cyklach życia. Na przykład klasy WorkflowServiceHost i SqlWorkflowInstanceStore są zaprojektowane tak, aby działały dobrze razem. Możesz utworzyć własny magazyn wystąpień w celu utrwalania danych i metadanych wystąpień usługi przepływu pracy oraz używania tego magazynu wystąpień za pomocą elementu WorkflowServiceHost. Można na przykład utworzyć magazyn OracleWorkflowInstanceStore, który umożliwia przepływom pracy utrwalanie informacji w bazie danych Oracle zamiast zapisywania ich w bazie danych programu SQL Server.

Hosty mogą być rozszerzane z dodatkowymi funkcjami modyfikującymi utrwalone obiekty. Na przykład system trwałości wystąpienia może mieć hosta przepływu pracy, rozszerzenie obsługujące operację "Wstrzymaj" i magazyn wystąpień SQL. Host przepływu pracy może wysłać standardowe polecenie, takie jak Zapisywanie lub ładowanie, aby zapisać lub załadować przepływ pracy z magazynu wystąpień lub zapisać przepływ pracy w magazynie wystąpień. Rozszerzenie wstrzymania może dodać dodatkowe semantyki do poleceń do zapisywania i ładowania wystąpień przepływu pracy, aby nie można było załadować zawieszonego wystąpienia przepływu pracy. Dostawca trwałości magazynu wystąpień SQL rozumie polecenia służące do zapisywania i ładowania wystąpień przepływu pracy oraz implementuje polecenia, wywołując odpowiednie procedury składowane, które zmieniają tabele obiektów trwałych w bazie danych programu SQL Server.

Host działa jako właściciel wystąpienia w magazynie wystąpień. Host może działać jako więcej niż jeden właściciel wystąpienia z więcej niż jednym magazynem wystąpień w tym samym czasie. Host udostępnia identyfikatory GUID dla kluczy wystąpień skojarzonych z wystąpieniami. Klucz wystąpienia jest unikatowym aliasem identyfikującym wystąpienie. System trwałości tworzy, aktualizuje i usuwa informacje właściciela wystąpienia podczas wykonywania poleceń żądanych przez hosty.

Poniższa lista zawiera ważne kroki związane z interakcją hosta z magazynem wystąpień:

  1. Uzyskaj magazyn wystąpień od dostawcy trwałości.

  2. Uzyskaj dojście do wystąpienia, wywołując metodę CreateInstanceHandle w magazynie wystąpień.

  3. Wywołaj polecenia względem uchwytu wystąpienia, wywołując metodę Execute w magazynie wystąpień.

  4. Sprawdź zwrócone przez wystąpienieStore.Execute, InstanceView aby określić wyniki poleceń.