Interaction avec un fournisseur
Le service de stockage des métadonnées fournit des méthodes qui permettent de simplifier l'implémentation d'un fournisseur de synchronisation. Ces méthodes aident à effectuer les tâches suivantes :
Fournisseur de source pour énumérer des modifications.
Fournisseur de source pour filtrer les modifications pendant l'énumération des modifications.
Fournisseur de destination pour obtenir les versions de destination des éléments pour l'applicateur de modifications.
Fournisseur ou application pour nettoyer les éléments marqués comme supprimés dans le magasin des métadonnées.
Fournisseur de destination pour récupérer un réplica de destination obsolète.
Énumération des modifications
L'objet des métadonnées du réplica contient une méthode qui énumère les modifications lorsque le fournisseur agit comme fournisseur de source. Dans la plupart des cas, la méthode GetChangeBatch du fournisseur peut être implémentée en passant directement ses paramètres à l'implémentation de l'objet des métadonnées du réplica.
Code managé Pour énumérer les modifications apportées au réplica source, appelez la méthode GetChangeBatch de l'objet ReplicaMetadata.
Code non managé Pour énumérer les modifications apportées au réplica source, appelez la méthode IReplicaMetadata::GetChangeBatch.
Filtrage des modifications
La synchronisation filtrée est contrôlée en utilisant un rappel. La méthode de rappel est appelée avant d'ajouter un élément au lot de modifications. Cela permet au gestionnaire de rappel d'examiner chaque élément et d'indiquer si l'élément doit être inclus dans le lot.
Code managé Pour filtrer les modifications incluses dans un lot de modifications, implémentez un délégué ReplicaMetadata..::..ItemFilterCallback et passez-le à GetFilteredChangeBatch.
Code non managé Pour filtrer les modifications incluses dans un lot de modifications, implémentez IChangeBatchCallback et passez-le à IReplicaMetadata::GetFilteredChangeBatch.
Obtention de versions de destination
L'objet des métadonnées du réplica fournit une méthode qui aide un fournisseur de destination à implémenter sa méthode ProcessChangeBatch en obtenant les versions sur le réplica de destination pour les éléments contenus dans le lot de modifications du fournisseur de source. Ce lot de versions de destination peut ensuite être passé à l'applicateur de modifications.
Code managé Pour obtenir un lot de modifications qui contient des versions applicables au réplica de destination, appelez la méthode GetLocalVersions de l'objet ReplicaMetadata.
Code non managé Pour obtenir un lot de modifications qui contient des versions applicables au réplica de destination, appelez la méthode IReplicaMetadata::GetItemBatchVersions.
Nettoyage des éléments supprimés
Les éléments supprimés du réplica sont conservés dans le magasin des métadonnées avec une valeur qui indique que l'élément a été supprimé. Pour éviter de manquer d'espace de stockage sur le réplica, les métadonnées de ces éléments supprimés doivent être régulièrement nettoyées. L'objet des métadonnées du réplica fournit la méthode CleanupDeletedItems (pour le code managé) ou IReplicaMetadata::CleanupDeletedItems (pour le code non managé) pour aider un fournisseur à nettoyer régulièrement les éléments supprimés. Le fournisseur spécifie un intervalle de temps qui représente l'ancienneté minimale des éléments supprimés conservés dans le magasin des métadonnées et appelle régulièrement la méthode de nettoyage, par exemple chaque fois que le fournisseur effectue la détection des modifications. Pour éviter que le fournisseur n'effectue des énumérations complètes coûteuses, la méthode de nettoyage nettoie les éléments supprimés uniquement lorsque la durée spécifiée s'est écoulée et garde toujours les éléments supprimés qui ne sont pas aussi anciens que l'intervalle de temps spécifié. La méthode de nettoyage met également à jour la connaissance oubliée pour refléter les éléments supprimés qui ont été retirés.
Récupération d'un réplica obsolète
Lorsque Sync Framework détecte que le réplica de destination est obsolète, Sync Framework déclenche une énumération complète pour restaurer le réplica de destination. Un réplica de destination est obsolète lorsque le réplica source a supprimé les éléments supprimés de ses métadonnées, mais n'a pas communiqué les suppressions d'éléments au réplica de destination. Pour effectuer une énumération complète, Sync Framework appelle la méthode GetFullEnumerationChangeBatch du fournisseur de source et la méthode ProcessFullEnumerationChangeBatch du fournisseur de destination. Le service de stockage des métadonnées fournit des méthodes qui aident les fournisseurs à implémenter ces méthodes.
Code managé Lorsque la méthode GetFullEnumerationChangeBatch du fournisseur de source est appelée, le fournisseur de source peut appeler la méthode GetFullEnumerationChangeBatch de l'objet ReplicaMetadata. Lorsque la méthode ProcessFullEnumerationChangeBatch du fournisseur de destination est appelée, le fournisseur de destination peut obtenir un lot de modifications qui contient des versions qui s'appliquent au réplica de destination en appelant la méthode GetFullEnumerationLocalVersions de l'objet ReplicaMetadata.
Code non managé Lorsque la méthode GetFullEnumerationChangeBatch du fournisseur de source est appelée, le fournisseur de source peut appeler IReplicaMetadata::GetFullEnumerationChangeBatch. Lorsque la méthode ProcessFullEnumerationChangeBatch du fournisseur de destination est appelée, le fournisseur de destination peut obtenir un lot de modifications qui contient des versions qui s'appliquent au réplica de destination en appelant IReplicaMetadata::GetFullEnumerationItemBatchVersions.
Voir aussi
Référence
ReplicaMetadata..::..ItemFilterCallback