Partilhar via


Componentes do Sync Framework Metadata Storage Service

O Metadata Storage Service fornece suporte para armazenar e manipular metadados de sincronização.

API do Metadata Storage Service

A API do Metadata Storage Service consiste nos elementos a seguir:

Estrutura CUSTOM_FIELD_DEFINITION

Interface IItemMetadata2

Estrutura CUSTOM_FIELDS_INDEX

Interface IItemMetadataEnumerator

Enumeração METASTORE_ISOLATIONLEVEL

Interface IMetadataStoreUpgradeCallback

Enumeração SYNC_METADATA_FIELD_TYPE

Interface IProviderMetadataUpgradeCallback

Códigos de erro do armazenamento de metadados

Interface IReplicaMetadata

Interface IChangeBatchCallback

Interface IReplicaMetadata2

Interface IChangeUnitMetadata

Interface ISqlSyncMetadataStore

Interface IChangeUnitMetadataEnumerator

Interface ISyncMetadataStore

Interface IFieldValue

Interface ISyncMetadataStore2

Interface IItemMetadata

Interface ISyncMetadataStoreSerializer

Usando o Metadata Storage Service

O Metadata Storage Service é um conjunto de interfaces que podem ser usadas por gravadores do serviço de armazenamento para implementar um conjunto personalizado de classes de modo a armazenar metadados em qualquer tipo de repositório de dados. O Metadata Storage Service também fornece uma implementação da interface que usa um banco de dados leve para armazenar metadados da sincronização em um único arquivo de banco de dados em um sistema de arquivos.

Inicializando os metadados

A interface principal para todos os repositórios de metadados é ISyncMetadataStore. Essa interface contém métodos para inicializar e obter metadados de réplicas no repositório de metadados, bem como para iniciar e interromper transações no banco de dados. As interfaces que herdam dessa interface, como ISqlSyncMetadataStore, podem fornecer métodos para criar e abrir repositórios de metadados.

ISyncMetadataStore::InitializeReplicaMetadata inicializa os metadados da réplica no repositório de metadados. O parâmetro CUSTOM_FIELD_DEFINITION para este método permite a criação de um conjunto de campos personalizados. Esses campos podem ser usados para armazenar metadados adicionais para itens no repositório de metadados. O parâmetro CUSTOM_FIELDS_INDEX permite que conjuntos de campos sejam definidos como índices. Esses índices podem ser usados para localizar itens, de forma eficiente, no repositório de metadados.

Encapsulando metadados para réplicas

A interface IReplicaMetadata encapsula todos os metadados de uma réplica específica. É possível acessar os metadados da réplica usando métodos como IReplicaMetadata::GetKnowledge e IReplicaMetadata::GetReplicaId.

Vários métodos dessa interface ajudam a implementar os métodos do provedor de sincronização, como os seguintes:

  • IReplicaMetadata::GetChangeBatch. Este método pode executar a maior parte do trabalho para o método IKnowledgeSyncProvider::GetChangeBatch.

  • IReplicaMetadata::GetItemBatchVersions. Este método pode ser chamado a partir do método IKnowledgeSyncProvider::ProcessChangeBatch para localizar versões locais de itens de lote de alterações. O aplicador de alterações necessita dessas versões locais.

IReplicaMetadata também contém o serviço de detecção de exclusão. Um provedor pode usar métodos como IReplicaMetadata::GetUnreportedItems para detectar quais itens foram excluídos do repositório de itens e devem ser marcados como excluídos no repositório de metadados.

Encapsulando metadados para itens

É possível localizar metadados de itens no repositório de metadados usando os métodos IReplicaMetadata para procurar por ID de item ou campos indexados como IReplicaMetadata::FindItemMetadataByGlobalId ou IReplicaMetadata::FindItemMetadataByIndexedFields. A classe Interface IItemMetadata encapsula todos os metadados para um item específico. É possível acessar esses metadados usando métodos como IItemMetadata::GetChangeVersion, IItemMetadata::GetCreationVersion, IItemMetadata::GetGlobalId e IItemMetadata::GetIsDeleted. Essa classe também contém vários métodos que podem ser usados para acessar qualquer campo personalizado que foi definido quando os metadados da réplica foram inicializados.

Códigos de erro

O Metadata Storage Service usa um conjunto de erros personalizados para relatar problemas. Para obter mais informações, consulte Códigos de erro do armazenamento de metadados.

Consulte também

Referência

Microsoft.Synchronization.MetadataStorage

Outros recursos

Sync Framework Metadata Storage Service