Поделиться через


Сохраняемость рабочего процесса

Сохраняемость рабочего процесса - это постоянное отслеживание состояний экземпляра рабочего процесса независимо от выполняемого процесса или данных компьютера. Делается это для обеспечения хорошо известной точки восстановления для экземпляра рабочего процесса в случае сбоя системы или сохранения памяти путем выгрузки экземпляров рабочих процессов, которые в настоящий момент не выполняют активных действий, или переноса состояния экземпляра рабочего процесса с одного узла на другой узел в ферме серверов.

Сохраняемость обеспечивает гибкость, масштабируемость и восстановление процесса в случае сбоя, а также возможность более эффективного управления памятью. Процесс сохраняемости состоит из определения точки сохраняемости, сбора данных для сохранения и, наконец, делегирование фактического хранения данных поставщику сохраняемости.

Чтобы включить сохраняемость рабочего процесса, необходимо связать хранилище экземпляров с 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 . Это происходит, например, при использовании действий обмена сообщениями или действия задержки.

  • Когда WorkflowApplication становится неактивным, а свойство PersistableIdle приложения имеет значение PersistableIdleAction.Persist.

  • Когда ведущему приложению указано сохранить или выгрузить экземпляр рабочего процесса.

  • При прерывании или завершении экземпляра рабочего процесса.

  • При выполнении действия "Сохранение ".

  • Когда экземпляр рабочего процесса, разработанный с помощью прежней версии Windows Workflow Foundation, встречает точку сохранения при выполнении взаимодействия.

В этом разделе