ワークフローの永続化は、プロセスやコンピューターの情報に関係なく、ワークフロー インスタンスの状態を永続的にキャプチャすることです。 これは、システム障害が発生した場合にワークフロー インスタンスの既知の復旧ポイントを提供したり、アクティブに作業していないワークフロー インスタンスをアンロードしたり、ワークフロー インスタンスの状態をサーバー ファーム内のあるノードから別のノードに移動したりして、メモリを保持するために行われます。
永続化により、プロセスの機敏性、スケーラビリティ、障害発生時の復旧、およびメモリをより効率的に管理する機能が可能になります。 永続化プロセスには、永続化ポイントの識別、保存するデータの収集、最後にデータの実際のストレージの永続化プロバイダーへの委任が含まれます。
ワークフローの永続化を有効にするには、「方法: ワークフローとワークフロー サービスの永続化を有効にする」で説明されているように、インスタンス ストアを WorkflowApplication または WorkflowServiceHost に関連付ける必要があります。 WorkflowApplication と WorkflowServiceHost は、関連付けられているインスタンス ストアを使用して、ワークフロー インスタンスを永続化ストアに永続化し、永続化ストアに格納されているワークフロー インスタンス データに基づいてワークフロー インスタンスをメモリに読み込みます。
.NET Framework 4.6.1 には SqlWorkflowInstanceStore クラスが付属しています。これにより、ワークフロー インスタンスに関するデータとメタデータを SQL Server 2005 または SQL Server 2008 データベースに永続化できます。 詳細については、 SQL ワークフロー インスタンス ストア を参照してください。
ワークフロー インスタンスに関連する情報と共にアプリケーション固有のデータを格納および読み込むには、 PersistenceParticipant クラスを拡張する永続化参加要素を作成できます。 永続化参加要素は、永続化プロセスに参加して、カスタムシリアル化可能なデータを永続化ストアに保存し、インスタンス ストアからメモリにデータを読み込み、永続化トランザクションの下で追加のロジックを実行します。 詳細については、「 永続化の参加者」を参照してください。
Windows Server App Fabric を使用すると、永続化を構成するプロセスが簡略化されます。 詳細については、「Windows Server App Fabric での永続化の概念」を参照してください。
暗黙的な永続化ポイント
次の一覧には、インスタンス ストアがワークフローに関連付けられているときにワークフローが永続化される条件の例が含まれています。
TransactionScope アクティビティが完了したとき、または TransactedReceiveScope アクティビティが完了したとき。
ワークフロー インスタンスがアイドル状態になり、ワークフロー ホストで WorkflowIdleBehavior が設定されている場合。 これは、たとえば、メッセージング アクティビティや Delay アクティビティを使用する場合に発生します。
WorkflowApplication がアイドル状態になり、アプリケーションの PersistableIdle プロパティが PersistableIdleAction.Persist に設定されている場合。
ホスト アプリケーションがワークフロー インスタンスを永続化またはアンロードするように指示された場合。
ワークフロー インスタンスが終了または終了したとき。
Persist アクティビティが実行されたとき。
以前のバージョンの Windows Workflow Foundation を使用して開発されたワークフローのインスタンスが、相互運用可能な実行中に永続化ポイントを検出したとき。
このセクションにて
.NET