Détection des éléments supprimés
Le service de stockage des métadonnées fournit un service de détection des suppressions pour aider les fournisseurs qui représentent des réplicas qui n'effectuent pas le suivi des suppressions d'éléments. Ce service identifie les éléments qui ont été supprimés du réplica afin qu'ils puissent être marqués comme supprimés dans le magasin des métadonnées.
Algorithme de détection des suppressions
Le détecteur de suppressions utilise l'algorithme de haut niveau suivant pour détecter les éléments supprimés :
Il enregistre tous les éléments signalés comme actifs. Un élément est marqué comme étant actif quand ses métadonnées sont modifiées et enregistrées ou lorsque le fournisseur le signale explicitement comme actif.
Une entrée de métadonnées qui n'est pas active est signalée comme supprimée.
Le fournisseur énumère les entrées de métadonnées inactives et les marque comme supprimées.
Détection des suppressions à l'aide de code managé
Le détecteur de suppressions est accessible par l'intermédiaire de la propriété DeleteDetector de l'objet ReplicaMetadata.
Pour réinitialiser le détecteur de suppressions pour une nouvelle passe de détection, appelez MarkAllItemsUnreported.
Une entrée de métadonnées active existe implicitement pour un élément lorsqu'il a été modifié et enregistré en utilisant SaveItemMetadata. Un élément peut être conservé explicitement comme actif, même s'il n'a pas été modifié, en appelant ReportLiveItemById.
Obtenez la liste des éléments actuellement détectés comme suppressions en appelant FindUnreportedItems. Les éléments de cette liste doivent être marqués comme supprimés dans le magasin des métadonnées en utilisant MarkAsDeleted.
Détection des suppressions à l'aide de code non managé
Le détecteur de suppressions fait partie de l'objet IReplicaMetadata.
Pour réinitialiser le détecteur de suppressions pour une nouvelle passe de détection, appelez IReplicaMetadata::ResetReportingWatermark.
Une entrée de métadonnées active existe implicitement pour un élément lorsqu'il a été modifié et enregistré en utilisant IReplicaMetadata::SaveItemMetadata. Un élément peut être conservé explicitement comme actif, même s'il n'a pas été modifié, en appelant IReplicaMetadata::ReportLiveItemByGlobalId.
Obtenez la liste des éléments actuellement détectés comme suppressions en appelant IReplicaMetadata::GetUnreportedItems. Les éléments de cette liste doivent être marqués comme supprimés dans le magasin des métadonnées en utilisant IItemMetadata::MarkAsDeleted.