Ausführen der Geschäftslogik während der Mergesynchronisierung

Gilt für:SQL Server

Das Framework für Geschäftslogikhandler ermöglicht es Ihnen, eine Assembly mit verwaltetem Code zu schreiben, die während des Mergesynchronisierungsvorgangs aufgerufen wird. Die Assembly enthält Geschäftslogik, die auf viele Bedingungen während der Synchronisierung reagieren kann: Datenänderungen, Konflikte und Fehler. Das Business Logic Handler-Framework bietet ein einfaches Programmiermodell, und die Daten, die der Merge-Prozess Ihrer Assembler liefert, liegen in Form eines ADO.NET-Datensatzes vor, sodass Sie das Wissen über ADO.NET nutzen können, anstatt eine proprietäre Schnittstelle zu lernen. Weitere Informationen zum Programmieren von Geschäftslogikhandlern finden Sie hier:

Verwendungsmöglichkeiten für Geschäftslogikhandler

Bei der Mergesynchronisierung können Geschäftslogikhandler für folgende Zwecke aufgerufen werden:

  • Benutzerdefinierte Änderungsverarbeitung

  • Benutzerdefinierte Konfliktlösung

  • Benutzerdefinierte Fehlerbehebung

Hinweis

Der von Ihnen angegebene Geschäftslogikhandler wird für jede Zeile ausgeführt, die synchronisiert wird. Komplexe Logik und Aufrufe zu anderen Anwendungen oder Netzwerkdiensten können die Leistung beeinflussen.

Benutzerdefinierte Änderungsverarbeitung

Der Geschäftslogikhandler kann bei der Verarbeitung von Datenänderungen aufgerufen werden, die keine Konflikte verursachen, und eine von drei Aktionen ausführen:

  • Daten ablehnen

    Das ist bei Anwendungen nützlich, bei denen keine Änderungen von einem oder an einen bestimmten Abonnenten weitergegeben werden sollen. Ein Administrator kann z.B. Einfügungen herausfiltern, die nicht in die Partition des Abonnenten gehören, oder Löschungen ablehnen, die auf einem Abonnenten ausgeführt werden. Ein weiteres Beispiel: Eine Anwendung könnte eine bei einem Subscriber erfasste Bestellung ablehnen, weil der Bestand nicht mehr verfügbar ist.

  • Daten annehmen

    Das ist bei Anwendungen nützlich, bei denen Datenänderungen überprüft werden müssen, die auf dem Verleger oder dem Abonnenten vorgenommen wurden, bevor sie weitergegeben werden. Beispielsweise könnte eine Mid-Tier-Anwendung neue Bestellungen aus dem Außendienst prüfen und in einen Beschaffungs-Workflow im Mid-Tier integriert werden.

  • Benutzerdefinierte Daten anwenden

    Das ist bei Anwendungen nützlich, die bestimmte Datenwerte oder Vorgänge überschreiben müssen. Eine Anwendung kann z. B. eine Zeilenlöschung in ein spezielles Update transformieren, das eine status -Spalte in der Zeile auf einen Wert "gelöscht" festlegt und dann die Identität des Clients ermittelt, der das Löschen ausgeführt hat. Das kann zum Überwachen und für Workflowzwecke nützlich sein.

Benutzerdefinierte Konfliktlösung

Die Mergereplikation stellt eine Konflikterkennung und -lösung bereit, mit deren Hilfe Sie eine Standardstrategie zur Konfliktlösung übernehmen oder eine benutzerdefinierte Lösung von Konflikten auswählen können. Weitere Informationen finden Sie unter Erweiterte Konflikterkennung und -lösung bei der Merge-Replikation. Der Geschäftslogikhandler kann bei der Verarbeitung von Datenänderungen aufgerufen werden, die Konflikte verursachen, und eine von zwei Aktionen ausführen:

  • Standardauflösung übernehmen

    Das ist bei Anwendungen nützlich, die einen Konflikt möglicherweise überprüfen, weitere Aktionen ausführen und gegebenenfalls eine benutzerdefinierte Konfliktmeldung protokollieren müssen.

  • Benutzerdefinierte Lösung ausführen

    Das ist bei Anwendungen nützlich, die gegebenenfalls ihrer speziellen Geschäftslogik entsprechende Datenwerte auswählen und dieses benutzerdefinierte Dataset für den Synchronisierungsprozess bereitstellen müssen. Eine Anwendung kann z. B. eine neue Version der gewinnenden Zeile bereitstellen, indem sie Werte aus den Verleger- und Abonnentendatasets kombiniert.

Benutzerdefinierte Fehlerbehebung

Die benutzerdefinierte Logik kann bei der Weitergabe von Änderungen aufgerufen werden, die zu einem Fehler führen. Die Logik kann eine der folgenden beiden Aktionen ausführen:

  • Standardfehlerbehebung übernehmen

    Das ist bei Anwendungen nützlich, die einen Fehler möglicherweise überprüfen, weitere Aktionen ausführen und gegebenenfalls eine benutzerdefinierte Fehlermeldung protokollieren müssen.

  • Benutzerdefinierte Fehlerbehebung akzeptieren

    Das ist bei Anwendungen nützlich, die gegebenenfalls ihrer speziellen Geschäftslogik entsprechende Datenwerte auswählen und dieses benutzerdefinierte Dataset für den Synchronisierungsprozess bereitstellen müssen. Werden z. B. Verletzungen doppelter Schlüssel beim Replikationsprozess gefunden, kann der Geschäftslogikhandler eine neue Version der Datenänderung bereitstellen, bei der der Schlüssel keinen Konflikt mehr verursacht. Änderungen, die beim Publisher und Subscriber vorgenommen werden, können dann dauerhaft in der Datenbank gespeichert bleiben, und der Replikationsprozess muss die fehlgeschlagene Einfügung nicht durch eine Löschung kompensieren.

Bereitstellungsszenarien für Handler für Geschäftslogik

Handler für die Geschäftslogik können eingesetzt werden bei:

  • Der Distributor. Verwenden Sie ein Pushabonnement, damit die Geschäftslogik auf dem Verteiler ausgeführt wird.

  • Der Abonnent. Verwenden Sie ein Pull-Abonnement, damit die Geschäftslogik beim Abonnenten ausgeführt wird.

  • Ein IIS-Server (Internetinformationsdienste), wenn die Websynchronisierung verwendet wird. Verwenden Sie ein mit der Websynchronisierung synchronisiertes Pullabonnement. Der Geschäftslogikhandler wird dann auf dem IIS-Server ausgeführt.