Хранилища экземпляровInstance Stores

Хранилище экземпляров - это логический контейнер для экземпляров.An instance store is a logical container of instances. Здесь хранятся данные и метаданные экземпляра.It is the place where the instance data and metadata is stored. Хранилище экземпляров не предполагает выделения физического пространства.An instance store does not imply dedicated physical storage. Хранилище экземпляра может содержать постоянные сведения в базе данных SQL Server или непостоянные сведения о состоянии в памяти.An instance store could contain durable information in a SQL Server database or non-durable state information in a memory. .NET Framework 4.6.1.NET Framework 4.6.1 поставляется с хранилищем экземпляров рабочего процесса SQL - конкретной реализацией хранилища экземпляров, которая позволяет рабочему процессу хранить данные и метаданные в базе данных SQL Server 2005 или SQL Server 2008.The .NET Framework 4.6.1.NET Framework 4.6.1 ships with the SQL Workflow Instance Store, which is a concrete implementation of an instance store that allows workflows to persist instance data and metadata into a SQL Server 2005 or SQL Server 2008 database. Кроме того, Windows Server App Fabric также предоставляет конкретную реализацию хранилища экземпляров.In addition Windows Server App Fabric also provides a concrete implementation of an instance store. Дополнительные сведения см. в разделе хранилище экземпляров Windows Server App Fabric, запросы и поставщики элементов управления.For more information, see Windows Server App Fabric Instance Store, Query, and Control Providers.

API сохраняемости - это интерфейс между узлом и хранилищем экземпляров, позволяющим узлу отправлять запросы на команды (например, LoadWorkflowCommand и SaveWorkflowCommand) в хранилище экземпляров.The persistence API is the interface between a host and an instance store that allows the host to send command requests (for example, LoadWorkflowCommand and SaveWorkflowCommand) to the instance store. Конкретная реализация данного API-интерфейса называется поставщиком сохраняемости.The concrete implementation of this API is called a persistence provider. Поставщик сохраняемости получает запросы от узла и изменяет хранилище экземпляров.The persistence provider receives requests from a host and modifies the instance store.

Узлы и хранилища экземпляров являются подключаемыми; узел можно использовать с несколькими хранилищами экземпляров, хранилище экземпляров можно использовать с несколькими узлами.Hosts and instance stores are pluggable so that a host can be used with many instance stores, and an instance store can be used with many hosts. Хранилище экземпляров обычно оптимизируется под шаблоны использования определенного узла, хотя хранилище экземпляров и узел могут обрести независимые жизненные циклы.An instance store is typically optimized for the usage patterns of a particular host, although the instance store and host may evolve on independent life cycles. Например, WorkflowServiceHost и SqlWorkflowInstanceStore предназначены для совместной работы.For example, the WorkflowServiceHost and the SqlWorkflowInstanceStore are designed to work well together. Вы можете создать собственное хранилище экземпляров для сохранения данных и метаданных экземпляров службы рабочего процесса и использовать это хранилище экземпляров с WorkflowServiceHost.You can create your own instance store to persist data and metadata of workflow service instances and use that instance store with the WorkflowServiceHost. Например, можно создать хранилище OracleWorkflowInstanceStore, позволяющее рабочему процессу хранить данные в базе данных Oracle, а не в базе данных SQL Server.For example, you can create an OracleWorkflowInstanceStore that lets workflows persist information into an Oracle database instead of saving them into a SQL Server database.

Узлы обычно снабжаются дополнительными функциями, которые модифицируют сохраненные объекты.It is common for hosts to be extended with additional functionality that modifies the persisted objects. Например, система сохраняемости экземпляров может иметь узел рабочего процесса, расширение, которое поддерживает операцию "приостановки", и хранилище экземпляров SQL.For example, an instance persistence system may have a workflow host, an extension that supports the "Suspend" operation, and an SQL instance store. Узел рабочего процесса может отправить стандартную команду, например «Save» или «Load», для сохранения рабочего процесса в хранилище экземпляров или для его загрузки соответственно.The workflow host might send a standard command such as Save or Load to save or load a workflow from an instance store or to save a workflow into an instance store. Расширение для приостановки может добавить командам сохранения или загрузки экземпляров рабочего процесса такую дополнительную семантику, что приостановленный экземпляр рабочего процесса нельзя будет загрузить.The suspend extension might add additional semantics to the commands for saving and loading workflow instances so that a suspended workflow instance cannot be loaded. Поставщик сохраняемости для хранилища экземпляров SQL понимает команды сохранения или загрузки экземпляров рабочего процесса и применяет команды путем вызова соответствующих хранимых процедур, которые вносят изменения в таблицы сохраненных объектов в базе данных SQL Server.The persistence provider for the SQL instance store understands the commands for saving and loading workflow instances, and implements the commands by calling appropriate stored procedures that change the tables of persistent objects in an SQL Server database.

В хранилище экземпляров узел является владельцем экземпляра.A host acts as an instance owner within an instance store. Одновременно узел может владеть несколькими экземплярами из нескольких разных хранилищ.A host may act as more than one instance owner with more than one instance store at the same time. Узел предоставляет идентификаторы GUID для ключей экземпляров, связанных с экземплярами.The host provides GUIDs for instance keys associated with the instances. Ключ экземпляра - уникальный псевдоним, определяющий экземпляр.An instance key is a unique alias that identifies an instance. Система сохраняемости создает, обновляет и удаляет сведения о владельце экземпляра, когда выполняет команды, запрошенные узлами.The persistence system creates, updates, and deletes instance owner information as it executes commands requested by hosts.

Следующий список содержит важные этапы взаимодействия узла с хранилищем экземпляров.The following list contains the important steps involved in the host’s interaction with the instance store:

  1. Получение InstanceStore от поставщика сохраняемости.Obtain an InstanceStore from a persistence provider.

  2. Получите маркер экземпляра, вызвав CreateInstanceHandle метод в InstanceStore.Obtain the handle to an instance by calling the CreateInstanceHandle method on the InstanceStore.

  3. Вызывайте команды для обработки экземпляра, вызвав Execute метод в InstanceStore.Invoke commands against the instance handle by calling the Execute method on the InstanceStore.

  4. Проверьте InstanceView возвращаемое InstanceStore.Exeмилые , чтобы определить результаты выполнения команд.Examine the InstanceView returned by InstanceStore.Execute to determine the results of the commands.