Trwałość przepływu pracy
Trwałość przepływu pracy to trwałe przechwytywanie stanu wystąpienia przepływu pracy, niezależne od informacji o procesie lub komputerze. Jest to wykonywane w celu zapewnienia dobrze znanego punktu odzyskiwania dla wystąpienia przepływu pracy w przypadku awarii systemu lub zachowania pamięci przez zwolnienie wystąpień przepływu pracy, które nie działają aktywnie lub przeniesienie stanu wystąpienia przepływu pracy z jednego węzła do innego węzła w farmie serwerów.
Trwałość umożliwia zwinność procesu, skalowalność, odzyskiwanie w obliczu awarii oraz wydajniejsze zarządzanie pamięcią. Proces trwałości obejmuje identyfikację punktu trwałości, zbieranie danych do zapisania, a na koniec delegowanie rzeczywistego przechowywania danych do dostawcy trwałości.
Aby włączyć trwałość przepływu pracy, należy skojarzyć magazyn wystąpień z elementem WorkflowApplication lub WorkflowServiceHost , jak wspomniano w temacie How to: Enable Persistence for Workflows and Workflow Services (Jak włączyć trwałość przepływów pracy i usług przepływu pracy). Atrybut WorkflowApplication i WorkflowServiceHost używają skojarzonego z nim magazynu wystąpień, aby umożliwić utrwalanie wystąpień przepływu pracy w magazynie trwałości i ładowanie wystąpień przepływu pracy do pamięci na podstawie danych wystąpienia przepływu pracy przechowywanych w magazynie trwałości.
Program .NET Framework 4.6.1 jest dostarczany z klasą SqlWorkflowInstanceStore , która umożliwia trwałość danych i metadanych dotyczących wystąpień przepływu pracy w bazie danych programu SQL Server 2005 lub SQL Server 2008. Aby uzyskać więcej informacji, zobacz Magazyn wystąpień przepływu pracy SQL.
Aby przechowywać i ładować dane specyficzne dla aplikacji wraz z informacjami dotyczącymi wystąpienia przepływu pracy, możesz utworzyć uczestników trwałości rozszerzających klasę PersistenceParticipant . Uczestnik trwałości uczestniczy w procesie trwałości w celu zapisania niestandardowych danych z możliwością serializacji w magazynie trwałości, załadowania danych z magazynu wystąpień do pamięci i wykonania dowolnej dodatkowej logiki w ramach transakcji trwałości. Aby uzyskać więcej informacji, zobacz Uczestnicy trwałości.
Usługa Windows Server App Fabric upraszcza proces konfigurowania trwałości. Aby uzyskać więcej informacji, zobacz Pojęcia dotyczące trwałości w usłudze Windows Server App Fabric
Niejawne punkty trwałości
Poniższa lista zawiera przykłady warunków, w których przepływ pracy jest utrwalany, gdy magazyn wystąpień jest skojarzony z przepływem pracy.
Po zakończeniu działania TransactionScope lub zakończeniu działania TransactedReceiveScope .
Gdy wystąpienie przepływu pracy stanie się bezczynne, a element WorkflowIdleBehavior jest ustawiony na hoście przepływu pracy. Dzieje się tak na przykład w przypadku korzystania z działań obsługi komunikatów lub działania Opóźnienia .
Gdy aplikacja WorkflowApplication stanie się bezczynna, a właściwość PersistableIdle aplikacji jest ustawiona na Wartość PersistableIdleAction.Persist.
Gdy aplikacja hosta jest poinstruowana, aby utrwała lub zwolniła wystąpienie przepływu pracy.
Po zakończeniu lub zakończeniu wystąpienia przepływu pracy.
Gdy zostanie wykonane działanie Utrwalanie.
Gdy wystąpienie przepływu pracy opracowane przy użyciu poprzedniej wersji programu Windows Workflow Foundation napotka punkt trwałości podczas wykonywania współdziałania.