Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хранилище экземпляров — это логический контейнер экземпляров. Это место, где хранятся данные экземпляра и метаданные. Хранилище экземпляров не подразумевает выделенное физическое хранилище. Хранилище экземпляров может содержать устойчивые сведения в базе данных SQL Server или не устойчивые сведения о состоянии в памяти. Платформа .NET Framework 4.6.1 поставляется с хранилищем экземпляров рабочих процессов SQL, которое представляет собой конкретную реализацию хранилища экземпляров, которое позволяет рабочим процессам сохранять данные экземпляра и метаданные в базе данных SQL Server 2005 или SQL Server 2008. Кроме того, Windows Server App Fabric также предоставляет конкретную реализацию хранилища состояний. Для получения дополнительной информации см. поставщики хранилища экземпляров, запросов и элементов управления Windows Server App Fabric.
API сохраняемости — это интерфейс между узлом и хранилищем экземпляров, который позволяет узлу отправлять запросы команд (например, LoadWorkflowCommand и SaveWorkflowCommand) в хранилище экземпляров. Конкретная реализация этого API называется поставщиком сохраняемости. Поставщик сохраняемости получает запросы от узла и изменяет хранилище экземпляров.
Узлы и хранилища экземпляров подключаются таким образом, чтобы узел можно было использовать со многими хранилищами экземпляров, а хранилище экземпляров можно использовать со многими узлами. Хранилище экземпляров обычно оптимизировано для шаблонов использования определенного узла, хотя хранилище экземпляров и узел могут развиваться на независимых жизненных циклах. Например, WorkflowServiceHost и SqlWorkflowInstanceStore предназначены для совместной работы. Вы можете создать собственное хранилище экземпляров для сохранения данных и метаданных экземпляров службы рабочих процессов и использовать это хранилище экземпляров с WorkflowServiceHost. Например, можно создать OracleWorkflowInstanceStore, который позволяет рабочим процессам сохранять сведения в базе данных Oracle, а не сохранять их в базе данных SQL Server.
Обычно хосты расширяются дополнительной функциональностью, которая изменяет сохраненные объекты. Например, система сохраняемости экземпляров может иметь узел рабочего процесса, расширение, поддерживающее операцию "Приостановка" и хранилище экземпляров SQL. Хост рабочего процесса может отправить стандартную команду, например, сохранить или загрузить рабочий процесс из хранилища экземпляров или сохранить его в хранилище экземпляров. Расширение приостановки может добавить дополнительную семантику в команды для сохранения и загрузки экземпляров рабочих процессов, чтобы экземпляр приостановленного рабочего процесса не мог быть загружен. Поставщик сохраняемости для хранилища экземпляров SQL понимает команды для сохранения и загрузки экземпляров рабочих процессов и реализует команды, вызывая соответствующие хранимые процедуры, которые изменяют таблицы постоянных объектов в базе данных SQL Server.
Хост выступает в качестве владельца экземпляра в хранилище экземпляров. Хост может выступать в роли более чем одного владельца экземпляра с более чем одним хранилищем экземпляров одновременно. Хост предоставляет GUID для ключей экземпляров, связанных с этими экземплярами. Ключ экземпляра — это уникальный псевдоним, определяющий экземпляр. Система сохраняемости создает, обновляет и удаляет сведения о владельце экземпляра при выполнении команд, запрошенных узлами.
В следующем списке содержатся важные шаги, связанные с взаимодействием хост-системы с хранилищем экземпляра.
Получите InstanceStore из поставщика хранения.
Получите дескриптор экземпляра, вызвав метод CreateInstanceHandle для InstanceStore.
Вызов команд для дескриптора экземпляра Execute путем вызова метода в InstanceStore.
InstanceView Проверьте возвращаемое экземпляром InstanceStore.Execute, чтобы определить результаты команд.