Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Met het handlerframework voor bedrijfslogica kunt u een beheerde codeassembly schrijven die wordt aangeroepen tijdens het samenvoegsynchronisatieproces. De assembly bevat bedrijfslogica die kan reageren op een aantal condities tijdens synchronisatie: datawijzigingen, conflicten en fouten. Het business logic handler-framework biedt een eenvoudig programmeermodel, en de data die het mergeproces aan je assembly levert, is in de vorm van een ADO.NET-dataset, zodat je kennis van ADO.NET kunt gebruiken in plaats van een propriëtaire interface te leren. Voor meer informatie over het programmeren van business logic handlers, zie:
De referentie van de application programming interface (API): Microsoft.SqlServer.Replication.BusinessLogicSupport
Instructies over hoe een business logic handler te implementeren: Implementeer een Business Logic Handler voor een Merge-artikel
Toepassingen voor Business Logic Handlers
Het merge synchronisatieproces kan business logic handlers aanroepen om het volgende uit te voeren:
Aangepaste wijzigingsafhandeling
Op maat gemaakte conflictoplossing
Aangepaste foutoplossing
Note
De business logic handler die u opgeeft, wordt uitgevoerd voor elke rij die wordt gesynchroniseerd. Complexe logica en aanroepen naar andere applicaties of netwerkdiensten kunnen de prestaties beïnvloeden.
Aangepaste wijzigingsafhandeling
De business logic handler kan worden aangeroepen tijdens het verwerken van niet-conflicterende datawijzigingen en kan een van drie acties uitvoeren:
Weiger de gegevens
Dit is nuttig voor applicaties die geen wijzigingen willen doorgeven aan of van een bepaalde abonnee. Een beheerder kan bijvoorbeeld inserts filteren die niet in de partitie van de abonnee horen, of mogelijk verwijderingen die bij een abonnee zijn uitgevoerd weigeren. Als ander voorbeeld kan een applicatie een bestelling bij een abonnee afwijzen omdat de voorraad niet langer beschikbaar is.
Accepteer de gegevens
Dit is nuttig voor toepassingen waarbij het noodzakelijk is om gegevenswijzigingen te bekijken die bij de Publisher of de Subscriber zijn aangebracht voordat deze worden doorgegeven. Een mid-tier applicatie kan bijvoorbeeld nieuwe bestellingen uit het veld onderzoeken en integreren met een inkoopworkflow in mid-tier.
Pas aangepaste data toe
Dit is nuttig voor applicaties die specifieke datawaarden of -bewerkingen moeten overschrijven. Een applicatie kan bijvoorbeeld een verwijdering van een rij omzetten in een speciale update die een statuskolom in de rij instelt op een waarde van "verwijderd" en vervolgens de identiteit bijhoudt van de client die de verwijdering uitvoert. Dit kan nuttig zijn voor auditing of workflowdoeleinden.
Aangepaste conflictoplossing
Merge-replicatie biedt conflictdetectie en -oplossing, waardoor je een standaardoplossing kunt accepteren of een aangepaste oplossing voor conflicten kunt kiezen. Zie Advanced Merge Replication Conflict Detection and Resolution (Geavanceerde samenvoegingsconflictdetectie en -oplossing) voor meer informatie. De business logic handler kan worden aangeroepen tijdens het verwerken van conflicterende datawijzigingen en kan een van twee acties uitvoeren:
Accepteer standaardresolutie
Dit is nuttig voor applicaties die het conflict moeten beoordelen, aanvullende acties moeten uitvoeren en mogelijk een aangepast conflictlogbericht moeten loggen.
Voer aangepaste resolutie uit
Dit is nuttig voor applicaties die datawaarden moeten selecteren die specifiek zijn voor hun bedrijfslogica en het synchronisatieproces met deze aangepaste dataset moeten leveren. Een applicatie kan bijvoorbeeld een nieuwe versie van de winnende rij bieden door waarden uit de Publisher- en Subscriber-datasets te combineren.
Aangepaste foutafhandeling
Aangepaste logica kan worden aangeroepen tijdens het verspreiden van wijzigingen die tot fouten leiden. De logica kan een van twee handelingen uitvoeren:
Accepteer standaard foutoplossing
Dit is nuttig voor applicaties die de fout moeten herzien en aanvullende acties moeten uitvoeren en mogelijk een aangepaste foutlogmelding moeten loggen.
Accepteer aangepaste foutoplossing
Dit is nuttig voor applicaties die datawaarden moeten selecteren die specifiek zijn voor hun bedrijfslogica en het synchronisatieproces met deze aangepaste dataset moeten leveren. Als het replicatieproces bijvoorbeeld een dubbele sleutelschending tegenkomt, kan de business logic handler een nieuwe versie van de datawijziging leveren waarbij de sleutel niet langer conflicteert. Wijzigingen die bij de Publisher en Subscriber worden aangebracht kunnen dan in de database blijven staan, en het replicatieproces hoeft de mislukte insert-fout niet te compenseren met een verwijdering.
Implementatiescenario's voor Business Logic Handlers
Business logic handlers kunnen worden ingezet bij:
De distributeur. Gebruik een push-abonnement zodat de bedrijfslogica bij de distributeur wordt uitgevoerd.
De abonnee. Gebruik een pull-abonnement zodat de bedrijfslogica bij de abonnee wordt uitgevoerd.
Een Internet Information Services (IIS) server als websynchronisatie wordt gebruikt. Gebruik een pull-abonnement gesynchroniseerd met websynchronisatie, en de business logic handler zal worden uitgevoerd op de IIS-server.