Freigeben über


Interoperabilität mit einem Anbieter

Vom Metadaten-Speicherdienst werden Methoden bereitgestellt, um die Implementierung eines Synchronisierungsanbieters zu vereinfachen. Mit diesen Methoden können die folgenden Aufgaben ausgeführt werden:

  • Der Quellenanbieter zum Auflisten von Änderungen.

  • Der Quellenanbieter zum Filtern von Änderungen während der Änderungsenumeration.

  • Der Zielanbieter zum Abrufen der Zielversionen von Elementen für den Änderungsanwender.

  • Ein Anbieter oder eine Anwendung zum Bereinigen von Elementen im Metadatenspeicher, die als gelöscht markiert sind.

  • Der Zielanbieter zum Wiederherstellen eines veralteten Zielreplikats.

Auflisten von Änderungen

Das Replikatmetadatenobjekt enthält eine Methode, mit der Änderungen aufgelistet werden, wenn der Anbieter als Quellenanbieter agiert. In den meisten Fällen kann die GetChangeBatch-Methode des Anbieters implementiert werden, indem die zugehörigen Parameter direkt an die Implementierung des Replikatmetadatenobjekts übergeben werden.

Verwalteter Code Rufen Sie die GetChangeBatch-Methode des ReplicaMetadata-Objekts auf, um am Quellreplikat vorgenommene Änderungen aufzulisten.

Nicht verwalteter Code Rufen Sie die IReplicaMetadata::GetChangeBatch-Methode auf, um am Quellreplikat vorgenommene Änderungen aufzulisten.

Filtern von Änderungen

Die gefilterte Synchronisierung wird mithilfe eines Rückrufs behandelt. Die Rückrufmethode wird aufgerufen, bevor dem Änderungsbatch ein Element hinzugefügt wird. Dadurch erhält der Rückrufhandler die Gelegenheit, die einzelnen Elemente zu untersuchen und festzustellen, ob das jeweilige Element dem Batch hinzugefügt werden soll.

Verwalteter Code Implementieren Sie einen ItemFilterCallback-Delegaten und übergeben Sie diesen an GetFilteredChangeBatch, um in einem Änderungsbatch enthaltene Änderungen zu filtern.

Nicht verwalteter Code Implementieren Sie IChangeBatchCallback und übergeben Sie dieses an IReplicaMetadata::GetFilteredChangeBatch, um in einem Änderungsbatch enthaltene Änderungen zu filtern.

Abrufen von Zielversionen

Das Replikatmetadatenobjekt enthält eine Methode, mit der ein Zielanbieter seine ProcessChangeBatch-Methode implementieren kann, indem die Versionen des Zielreplikats für die Elemente abgerufen werden, die im Änderungsbatch vom Quellenanbieter enthalten sind. Dieser Batch von Zielversionen kann dann an den Änderungsanwender übergeben werden.

Verwalteter Code Rufen Sie die GetLocalVersions-Methode des ReplicaMetadata-Objekts auf, um einen Änderungsbatch mit auf das Zielreplikat anzuwendenden Versionen abzurufen.

Nicht verwalteter Code Rufen Sie die IReplicaMetadata::GetItemBatchVersions-Methode auf, um einen Änderungsbatch mit auf das Zielreplikat anzuwendenden Versionen abzurufen.

Bereinigen von gelöschten Elementen

Elemente, die aus dem Replikat gelöscht wurden, werden im Metadatenspeicher mit einem Wert beibehalten, der angibt, dass das Element gelöscht wurde. Um zu verhindern, dass der gesamte Speicherplatz für das Replikat belegt wird, müssen die Metadaten für diese gelöschten Elemente regelmäßig bereinigt werden. Vom Replikatmetadatenobjekt wird die CleanupDeletedItems-Methode (für verwalteten Code) bzw. die IReplicaMetadata::CleanupDeletedItems-Methode (für nicht verwalteten Code) bereitgestellt, um einen Anbieter beim Löschen von Elementen nach einem regelmäßigen Zeitplan zu unterstützen. Der Anbieter gibt ein Zeitintervall an, das dem Mindestalter der im Metadatenspeicher aufbewahrten gelöschten Elemente entspricht, und ruft regelmäßig die Bereinigungsmethode auf, z. B. jedes Mal, wenn der Anbieter eine Änderungserkennung durchführt. Um den Anbieter vor aufwändigen vollständigen Enumerationen zu schützen, werden gelöschte Elemente von der Bereinigungsmethode nur bereinigt, wenn die angegebene Zeitspanne abgelaufen ist. Gelöschte Elemente, die nicht so alt wie das angegebene Zeitintervall sind, werden beibehalten. Die Bereinigungsmethode aktualisiert außerdem das vergessene Wissen mit den gelöschten Elementen, die entfernt wurden.

Wiederherstellen eines veralteten Replikats

Wenn Sync Framework ein veraltetes Zielreplikat erkennt, wird von Sync Framework eine vollständige Enumeration ausgelöst, um das Zielreplikat wiederherzustellen. Ein Zielreplikat ist veraltet, wenn gelöschte Elemente aus den Metadaten des Quellreplikats entfernt wurden, die Löschung der Elemente jedoch noch nicht dem Zielreplikat mitgeteilt wurde. Zum Ausführen einer vollständigen Enumeration ruft Sync Framework die GetFullEnumerationChangeBatch-Methode des Quellenanbieters und die ProcessFullEnumerationChangeBatch-Methode des Zielanbieters auf. Vom Metadaten-Speicherdienst werden Methoden bereitgestellt, um die Anbieter beim Implementieren dieser Methoden zu unterstützen.

Verwalteter Code Wenn die GetFullEnumerationChangeBatch-Methode des Quellenanbieters aufgerufen wird, kann der Quellenanbieter die GetFullEnumerationChangeBatch-Methode des ReplicaMetadata-Objekts aufrufen. Wenn die ProcessFullEnumerationChangeBatch-Methode des Zielanbieters aufgerufen wird, kann der Zielanbieter einen Änderungsbatch mit auf das Zielreplikat bezogenen Versionen abrufen, indem die GetFullEnumerationLocalVersions-Methode des ReplicaMetadata-Objekts aufgerufen wird.

Nicht verwalteter Code Wenn die GetFullEnumerationChangeBatch-Methode des Quellenanbieters aufgerufen wird, kann der Quellenanbieter IReplicaMetadata::GetFullEnumerationChangeBatch aufrufen. Wenn die ProcessFullEnumerationChangeBatch-Methode des Zielanbieters aufgerufen wird, kann der Zielanbieter einen Änderungsbatch mit auf das Zielreplikat bezogenen Versionen abrufen, indem IReplicaMetadata::GetFullEnumerationItemBatchVersions aufgerufen wird.

Siehe auch

Verweis

IReplicaMetadata-Schnittstelle
IChangeBatchCallback-Schnittstelle
ReplicaMetadata
ItemFilterCallback

Weitere Ressourcen

Der Metadatenspeicherdienst von Sync Framework