Freigeben über


ISynchronousNotifyingChangeApplier2::ApplyFullEnumerationChanges

Führt Konflikterkennung, Konfliktbehandlung, Änderungsanwendung und die Verwaltung des Konfliktprotokolls für einen Batch von Änderungen als Teil einer Wiederherstellungssynchronisierung aus.

HRESULT ApplyFullEnumerationChanges(
  CONFLICT_RESOLUTION_POLICY resolutionPolicy,
  COLLISION_CONFLICT_RESOLUTION_POLICY collisionPolicy,
  ISyncFullEnumerationChangeBatch * pSourceChanges,
  IUnknown * pUnkDataRetriever,
  IEnumSyncChanges * pDestinationVersions,
  ISyncKnowledge * pDestinationKnowledge,
  IForgottenKnowledge * pDestinationForgottenKnowledge,
  ISynchronousNotifyingChangeApplierTarget * pChangeApplierTarget,
  IConflictLogAccess * pConflictLogAccess,
  ISyncSessionState * pSessionState,
  ISyncCallback * pCallback);

Parameter

  • resolutionPolicy
    [in] Die Richtlinie, die zum Auflösen von Konflikten verwendet werden soll.
  • collisionPolicy
    [in] Die Richtlinie, die zum Auflösen von Kollisionseinschränkungskonflikten verwendet werden soll.
  • pSourceChanges
    [in] Der Änderungsbatch vom Quellenanbieter.
  • pUnkDataRetriever
    [in] Ein Objekt, das zum Abrufen von Elementdaten aus dem Quellreplikat verwendet werden kann.
  • pDestinationVersions
    [in] Ein Batch von Änderungen, der die Versionen der im Zielreplikat gespeicherten Elemente enthält. Diese Elemente entsprechen den Elementen in pSourceChanges.
  • pDestinationKnowledge
    [in] Das Wissen des Zielreplikats.
  • pDestinationForgottenKnowledge
    [in] Das vergessene Wissen des Zielreplikats.
  • pChangeApplierTarget
    [in] Das Objekt, das zum Speichern von Änderungen und Konflikten aufgerufen wird.
  • pConflictLogAccess
    [in] Das Konfliktprotokoll, in dem verzögerte und temporäre Konflikte gespeichert werden.
  • pSessionState
    [in] Zustandsinformationen über die aktuelle Sitzung.
  • pCallback
    [in] Rückrufe, die Benachrichtigungen über Änderungsanwendungsereignisse empfangen.

Rückgabewert

  • S_OK

  • E_INVALIDARG, wenn resolutionPolicy oder collisionPolicy kein gültiger Wert ist.

  • E_OUTOFMEMORY

  • E_POINTER

  • SYNC_E_BATCH_NEEDS_KNOWLEDGE

  • SYNC_E_OBJECT_NEEDS_STATE

  • SYNC_E_CHANGE_COUNT_MISMATCH

  • SYNC_E_CHANGE_NEEDS_KNOWLEDGE

  • SYNC_E_ITEM_HAS_NO_CHANGE_UNITS

  • SYNC_E_ITEM_MUST_EXIST

  • SYNC_E_CHANGE_NOT_IN_KNOWLEDGE

  • SYNC_E_CHANGE_UNIT_COUNT_MISMATCH

  • SYNC_E_KNOWLEDGE_DECREASED

  • SYNC_E_NOT_EXPECTED_CHANGE

Hinweise

Normalerweise wird diese Methode von einem Zielanbieter über seine IKnowledgeSyncProvider::ProcessFullEnumerationChangeBatch-Methode aufgerufen.

Diese Methode erkennt Parallelitätskonflikte, die zwischen den in pSourceChanges gesendeten Änderungen und den entsprechenden Elementen im Zielreplikat auftreten. Sie löst alle Parallelitätskonflikte gemäß der von resolutionPolicy angegebenen Richtlinie auf. Wenn Kollisionseinschränkungskonflikte vom Zielanbieter gemeldet werden, löst diese Methode sie nach der von collisionPolicy angegebenen Richtlinie auf. Wenn keine Richtlinie zur Konfliktauflösung festgelegt wird, benachrichtigt diese Methode die Anwendung über einen Konflikt, und die Anwendung gibt eine Konfliktauflösungsaktion an. Falls erforderlich, ruft diese Methode anschließend Methoden für pChangeApplierTarget auf, um Änderungen im Zielreplikat sowie nicht aufgelöste Konflikte zu speichern.

Der Änderungsanwender unterstützt die Verwaltung des von pConflictLogAccess angegebenen Konfliktprotokolls durch Auflösen von Konflikten im Protokoll und Entfernen veralteter Konflikte aus dem Protokoll. Der Änderungsanwender speichert im Konfliktprotokoll möglicherweise auch temporäre Konflikte, die als Ergebnis der Zusammenführung von Einschränkungskonflikten auftreten. Alle temporären, dem Protokoll hinzugefügten Konflikte werden vor dem Ende der Synchronisierungssitzung entfernt.

Siehe auch

Verweis

ISynchronousNotifyingChangeApplier2-Schnittstelle

Konzepte

Konfliktbehandlung