Freigeben über


Komponenten des Metadatenspeicherdiensts von Sync Framework

Der Metadatenspeicherdienst stellt Unterstützung für das Speichern und Behandeln von Synchronisierungsmetadaten bereit.

Metadatenspeicherdienst-API

Die Metadatenspeicherdienst-API besteht aus den folgenden Elementen:

CUSTOM_FIELD_DEFINITION-Struktur

IItemMetadata2-Schnittstelle

CUSTOM_FIELDS_INDEX-Struktur

IItemMetadataEnumerator-Schnittstelle

METASTORE_ISOLATIONLEVEL-Enumeration

IMetadataStoreUpgradeCallback-Schnittstelle

SYNC_METADATA_FIELD_TYPE-Enumeration

IProviderMetadataUpgradeCallback-Schnittstelle

Metadatenspeicher-Fehlercodes

IReplicaMetadata-Schnittstelle

IChangeBatchCallback-Schnittstelle

IReplicaMetadata2-Schnittstelle

IChangeUnitMetadata-Schnittstelle

ISqlSyncMetadataStore-Schnittstelle

IChangeUnitMetadataEnumerator-Schnittstelle

ISyncMetadataStore-Schnittstelle

IFieldValue-Schnittstelle

ISyncMetadataStore2-Schnittstelle

IItemMetadata-Schnittstelle

ISyncMetadataStoreSerializer-Schnittstelle

Verwenden des Metadatenspeicherdiensts

Der Metadatenspeicherdienst ist ein Satz von Schnittstellen, der das Implementieren eines benutzerdefinierten Satzes von Klassen zum Speichern von Metadaten in beliebigen Datenspeichern ermöglicht. Der Metadatenspeicherdienst stellt außerdem eine Implementierung der Schnittstelle bereit, die mit einer vereinfachten Datenbank Synchronisierungsmetadaten in einer einzelnen Datenbankdatei eines Dateisystems speichert.

Initialisieren von Metadaten

Die Hauptschnittstelle für alle Metadatenspeicher ist ISyncMetadataStore. Diese Schnittstelle enthält Methoden, um Replikatmetadaten im Metadatenspeicher zu initialisieren und abzurufen sowie Transaktionen für die Datenbank zu starten und zu beenden. Schnittstellen, die von dieser Schnittstelle erben, z. B. ISqlSyncMetadataStore, können Methoden zum Erstellen und Öffnen von Metadatenspeichern bereitstellen.

ISyncMetadataStore::InitializeReplicaMetadata initialisiert Replikatmetadaten im Metadatenspeicher. Der CUSTOM_FIELD_DEFINITION-Parameter für diese Methode ermöglicht das Erstellen eines Satzes benutzerdefinierter Felder. Diese Felder können verwendet werden, um zusätzliche Metadaten für Elemente im Metadatenspeicher zu speichern. Mit dem CUSTOM_FIELDS_INDEX-Parameter können Feldsätze als Indizes definiert werden. Diese Indizes können verwendet werden, um im Metadatenspeicher effizient nach Elementen zu suchen.

Kapseln von Metadaten für Replikate

Die IReplicaMetadata-Schnittstelle kapselt alle Metadaten für ein bestimmtes Replikat. Der Zugriff auf Replikatmetadaten kann beispielsweise mithilfe der IReplicaMetadata::GetKnowledge- und der IReplicaMetadata::GetReplicaId-Methode erfolgen.

Mehrere Methoden in dieser Schnittstelle erleichtern das Implementieren von Synchronisierungsanbietermethoden, z. B. die folgenden Methoden:

  • IReplicaMetadata::GetChangeBatch. Diese Methode kann den Großteil der Aktionen für die IKnowledgeSyncProvider::GetChangeBatch-Methode ausführen.

  • IReplicaMetadata::GetItemBatchVersions. Diese Methode kann von der IKnowledgeSyncProvider::ProcessChangeBatch-Methode aufgerufen werden, um lokale Versionen von Änderungsbatchelementen zu suchen. Die lokalen Versionen werden vom Änderungsanwender benötigt.

IReplicaMetadata enthält auch den Dienst zum Verfolgen von Löschungen. Ein Anbieter kann z. B. die IReplicaMetadata::GetUnreportedItems-Methode verwenden, um zu ermitteln, welche Elemente aus dem Elementspeicher gelöscht wurden und im Metadatenspeicher als gelöscht markiert werden sollen.

Kapseln von Metadaten für Elemente

Elementmetadaten können im Metadatenspeicher gesucht werden, indem mithilfe von IReplicaMetadata-Methoden, z. B. IReplicaMetadata::FindItemMetadataByGlobalId oder IReplicaMetadata::FindItemMetadataByIndexedFields, eine Suche nach Element-ID oder indizierten Feldern durchgeführt wird. Die IItemMetadata-Schnittstelle-Klasse kapselt alle Metadaten für ein bestimmtes Element. Der Zugriff auf diese Metadaten kann dann beispielsweise mit den Methoden IItemMetadata::GetChangeVersion, IItemMetadata::GetCreationVersion, IItemMetadata::GetGlobalId und IItemMetadata::GetIsDeleted erfolgen. Diese Klasse enthält verschiedene Methoden, die für den Zugriff auf alle beim Initialisieren der Replikatmetadaten benutzerdefinierten Felder verwendet werden können.

Fehlercodes

Der Metadatenspeicherdienst verwendet zum Melden von Problemen einen Satz benutzerdefinierter Fehler. Weitere Informationen finden Sie unter Metadatenspeicher-Fehlercodes.

Siehe auch

Verweis

Microsoft.Synchronization.MetadataStorage

Weitere Ressourcen

Der Metadatenspeicherdienst von Sync Framework