Share via


Composants de Metadata Storage Service de Sync Framework

Le service de stockage des métadonnées prend en charge le stockage et la gestion des métadonnées de synchronisation.

API du service de stockage des métadonnées

L'API du service de stockage des métadonnées se compose des éléments suivants :

Structure CUSTOM_FIELD_DEFINITION

Interface IItemMetadata2

Structure CUSTOM_FIELDS_INDEX

Interface IItemMetadataEnumerator

Énumération METASTORE_ISOLATIONLEVEL

Interface IMetadataStoreUpgradeCallback

Énumération SYNC_METADATA_FIELD_TYPE

Interface IProviderMetadataUpgradeCallback

Codes d'erreur de Metadata Storage Service

Interface IReplicaMetadata

Interface IChangeBatchCallback

Interface IReplicaMetadata2

Interface IChangeUnitMetadata

Interface ISqlSyncMetadataStore

Interface IChangeUnitMetadataEnumerator

Interface ISyncMetadataStore

Interface IFieldValue

Interface ISyncMetadataStore2

Interface IItemMetadata

Interface ISyncMetadataStoreSerializer

Utilisation du service de stockage des métadonnées

Le service de stockage des métadonnées est un ensemble d'interfaces qui peuvent être utilisées par les enregistreurs du service de stockage pour implémenter un ensemble personnalisé de classes permettant de stocker les métadonnées dans n'importe quel type de magasin de données. Le service de stockage des métadonnées fournit également une implémentation des interfaces qui utilise une base de données légère pour stocker les métadonnées de synchronisation dans un fichier de base de données unique au sein d'un système de fichiers.

Initialisation des métadonnées

L'interface principale pour tous les magasins des métadonnées est ISyncMetadataStore. Cette interface contient des méthodes servant à initialiser et obtenir des métadonnées de réplica dans le magasin des métadonnées, ainsi qu'à démarrer et arrêter des transactions sur la base de données. Les interfaces qui héritent de cette interface, comme ISqlSyncMetadataStore, peuvent fournir des méthodes pour créer et ouvrir des magasins des métadonnées.

ISyncMetadataStore::InitializeReplicaMetadata initialise les métadonnées de réplica dans le magasin des métadonnées. Le paramètre CUSTOM_FIELD_DEFINITION de cette méthode permet la création d'un ensemble de champs personnalisés. Ces champs peuvent être utilisés pour stocker des métadonnées supplémentaires pour les éléments dans le magasin des métadonnées. Le paramètre CUSTOM_FIELDS_INDEX permet de définir des ensembles de champs en tant qu'index. Ces index peuvent être utilisés pour localiser efficacement des éléments dans le magasin des métadonnées.

Encapsulation des métadonnées des réplicas

L'interface IReplicaMetadata encapsule toutes les métadonnées d'un réplica en particulier. Les métadonnées de réplica sont accessibles en utilisant des méthodes telles que IReplicaMetadata::GetKnowledge et IReplicaMetadata::GetReplicaId.

Plusieurs méthodes de cette interface permettent d'implémenter des méthodes du fournisseur de synchronisation, comme celles ci-dessous :

  • IReplicaMetadata::GetChangeBatch. Cette méthode peut effectuer la plupart du travail pour la méthode IKnowledgeSyncProvider::GetChangeBatch.

  • IReplicaMetadata::GetItemBatchVersions. Cette méthode peut être appelée à partir de la méthode IKnowledgeSyncProvider::ProcessChangeBatch pour rechercher des versions locales d'éléments de lot de modifications. Ces versions locales sont nécessaires à l'applicateur de modifications.

IReplicaMetadata contient également le service de détection de suppressions. Un fournisseur peut utiliser des méthodes comme IReplicaMetadata::GetUnreportedItems pour détecter les éléments qui ont été supprimés du magasin d'éléments et qui doivent être marqués comme étant supprimés dans le magasin des métadonnées.

Encapsulation des métadonnées des éléments

Les métadonnées d'élément peuvent être trouvées dans le magasin des métadonnées en utilisant des méthodes IReplicaMetadata pour effectuer des recherches en fonction d'ID d'élément ou de champs indexés, comme IReplicaMetadata::FindItemMetadataByGlobalId ou IReplicaMetadata::FindItemMetadataByIndexedFields. La classe Interface IItemMetadata encapsule toutes les métadonnées d'un élément en particulier. Ces métadonnées sont accessibles en utilisant des méthodes comme IItemMetadata::GetChangeVersion, IItemMetadata::GetCreationVersion, IItemMetadata::GetGlobalId et IItemMetadata::GetIsDeleted. Cette classe contient également plusieurs méthodes qui peuvent être utilisées pour accéder à tout champ personnalisé défini lors de l'initialisation des métadonnées de réplica.

Codes d'erreur

Le service de stockage des métadonnées utilise un ensemble d'erreurs personnalisées pour signaler les problèmes. Pour plus d'informations, consultez Codes d'erreur de Metadata Storage Service.

Voir aussi

Référence

Microsoft.Synchronization.MetadataStorage

Autres ressources

Metadata Storage Service de Sync Framework