Delen via


Geavanceerde samenvoegreplicatieconflicten - COM-Based aangepaste oplossers

van toepassing op:SQL Server-

Aangepaste resolvers bieden meer flexibiliteit dan het standaardoplossingsmechanisme en ze kunnen bedrijfslogica implementeren die vereist is voor toepassingen met behulp van de gerepliceerde gegevens. Een op COM gebaseerde aangepaste resolver is een DLL (Dynamic Link Library) waarmee de COM-interface van ICustomResolver , de methoden en eigenschappen en andere ondersteunende interfaces en typedefinities die speciaal zijn ontworpen voor conflictoplossing, worden geïmplementeerd.

Opmerking

Het wordt aanbevolen om indien mogelijk een business logic handler te gebruiken in plaats van een op COM gebaseerde aangepaste resolver. Voor meer informatie over handlers voor zakelijke logica, zie Zakelijke logica uitvoeren tijdens het samenvoegen.

Als u een aangepaste COM-resolver wilt maken, kunt u de typebibliotheek gebruiken die is opgegeven in de replrec.dll; Deze bibliotheek is standaard geïnstalleerd op <station>:\Program Files\Microsoft SQL Server\nnn\COM.

Voordat u een aangepaste COM-resolver schrijft, moet u beslissen:

  • De typen rijwijzigingen die u wilt oplossen, zoals updates, invoegen en verwijderen, en of de resolver moet worden aangeroepen tijdens het uploaden van samenvoegwijzigingen, het downloaden van samenvoegwijzigingen of beide. U kunt één type wijziging, alle wijzigingen of een combinatie opgeven. De standaardoplossing voor samenvoegingsconflicten verwerkt eventuele conflicten die niet worden gedekt door een aangepaste resolver.

  • Of er kolomtracking moet worden gebruikt bij het oplossen van het conflict. Wanneer bijhouden op kolomniveau is ingeschakeld, worden alleen gegevens in die kolommen waar een conflict bestaat gemarkeerd als een conflict, anders worden de gegevens samengevoegd. Conflicten worden echter op dezelfde manier opgelost als bijhouden op rijniveau: de winnaar van de prioriteit overschrijft de hele rij met gegevens (maar de gegevens kunnen een combinatie zijn van waarden van publisher, abonnees of enkele gewijzigde waarden die niet afkomstig waren van Publisher of Abonnees). Zie Samenvoegingsconflicten detecteren en oplossen voor meer informatie.

Als u een op COM gebaseerde aangepaste conflictoplossing wilt implementeren, raadpleegt u Een aangepaste conflictoplossing implementeren voor een samenvoegartikel.

Er wordt een aangepaste resolver opgegeven voor een artikel, niet voor een hele publicatie. Dezelfde resolver kan worden gebruikt met meer dan één artikel, maar de logica in aangepaste resolvers is vaak specifiek voor een bepaalde tabel. Als de tabel die in het artikel wordt gebruikt, wordt gewijzigd nadat de resolver is gemaakt (bijvoorbeeld het wijzigen van de naam van de kolomnaam die wordt gebruikt in conflictoplossing), moet de aangepaste resolver mogelijk worden gewijzigd en opnieuw worden gecompileerd.

Als u een aangepaste resolver wilt opgeven, zie Een aangepaste samenvoegresolver opgeven.