Detectando itens excluídos
O serviço de armazenamento de metadados fornece um serviço de detecção de exclusões para ajudar os provedores que representam réplicas que não controlam exclusões de itens. Esse serviço determina quais itens foram excluídos da réplica de forma que possam ser marcados como excluídos no repositório de metadados.
Algoritmo para detectar exclusões
O detector de exclusões usa o seguinte algoritmo de alto nível para detectar itens excluídos:
Ele registra todos os itens informados como ativos. Um item é informado como ativo quando seus metadados são alterados e salvos, ou quando o provedor explicitamente o informa como ativo.
Qualquer entrada de metadados que não esteja ativa é informada como excluída.
O provedor enumera as entradas de metadados inativas e as marca como excluídas.
Detectando exclusões usando código gerenciado
O detector de exclusões pode ser acessado por meio da propriedade DeleteDetector do objeto ReplicaMetadata.
Para redefinir o detector de exclusões para uma nova passagem de detecção, chame MarkAllItemsUnreported.
Uma entrada de metadados ativa existe implicitamente para um item quando ele é alterado e salvo usando SaveItemMetadata. Um item pode ser mantido ativo explicitamente, mesmo se não for alterado, chamando ReportLiveItemById.
Para obter a lista de itens detectados no momento como exclusões, chame FindUnreportedItems. Os itens nessa lista devem ser marcados como excluídos no repositório de metadados usando MarkAsDeleted.
Detectando exclusões usando código não gerenciado
O detector de exclusões faz parte do objeto IReplicaMetadata.
Para redefinir o detector de exclusões para uma nova passagem de detecção, chame IReplicaMetadata::ResetReportingWatermark.
Uma entrada de metadados ativa existe implicitamente para um item quando ele é alterado e salvo usando IReplicaMetadata::SaveItemMetadata. Um item pode ser mantido ativo explicitamente, mesmo se não for alterado, chamando IReplicaMetadata::ReportLiveItemByGlobalId.
Para obter a lista de itens detectados no momento como exclusões, chame IReplicaMetadata::GetUnreportedItems. Os itens nessa lista devem ser marcados como excluídos no repositório de metadados usando IItemMetadata::MarkAsDeleted.
Consulte também
Referência
Interface IReplicaMetadata
ReplicaMetadata
DeleteDetector