Ausführen der Geschäftslogik während der MergesynchronisierungExecute Business Logic During Merge Synchronization

Im Geschäftslogikhandler können Sie eine Assembly in verwaltetem Code schreiben, die während des Mergesynchronisierungsvorgangs aufgerufen wird.The business logic handler framework allows you to write a managed code assembly that is called during the merge synchronization process. Die Assembly enthält Geschäftslogik, die auf viele Bedingungen während der Synchronisierung reagieren kann: Datenänderungen, Konflikte und Fehler.The assembly includes business logic that can respond to a number of conditions during synchronization: data changes, conflicts, and errors. Das Geschäftslogikhandler-Framework stellt ein einfaches Programmiermodell bereit. Dabei weisen die Daten, die der Mergeprozess an Ihre Assembly übergibt, das Format eines ADO.NET-Datasets auf. Auf diese Weise können Sie auf Ihren Kenntnissen von ADO.NET aufbauen und müssen sich mit keiner neuen proprietären Schnittstelle vertraut machen.The business logic handler framework provides a simple programming model, and the data that the merge process provides to your assembly is in the form of an ADO.NET data set, so you can leverage knowledge of ADO.NET rather than learning a proprietary interface. Weitere Informationen zum Programmieren von Geschäftslogikhandlern finden Sie hier:For more information on programming business logic handlers, see:

Verwendungsmöglichkeiten für GeschäftslogikhandlerUses for Business Logic Handlers

Bei der Mergesynchronisierung können Geschäftslogikhandler für folgende Zwecke aufgerufen werden:The merge synchronization process can invoke business logic handlers to perform:

  • Verarbeiten von benutzerdefinierten ÄnderungenCustom change handling

  • Benutzerdefinierte KonfliktlösungCustom conflict resolution

  • Benutzerdefinierte FehlerbehebungCustom error resolution

Hinweis

Der von Ihnen angegebene Geschäftslogikhandler wird für jede Zeile ausgeführt, die synchronisiert wird.The business logic handler you specify is executed for every row that is synchronized. Eine komplexe Logik und Aufrufe anderer Anwendungen oder Netzwerkdienste können sich auf die Leistung auswirken.Complex logic and calls to other applications or network services can impact performance.

Verarbeiten von benutzerdefinierten ÄnderungenCustom Change Handling

Der Geschäftslogikhandler kann bei der Verarbeitung von Datenänderungen aufgerufen werden, die keine Konflikte verursachen, und eine von drei Aktionen ausführen:The business logic handler can be invoked during the processing of non-conflicting data changes and can perform one of three actions:

  • Daten ablehnenReject the data

    Das ist bei Anwendungen nützlich, bei denen keine Änderungen von einem oder an einen bestimmten Abonnenten weitergegeben werden sollen.This is useful for applications that do not want changes propagated to or from a given Subscriber. 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.For example, an administrator could filter out inserts that do not belong in the Subscriber’s partition, or possibly reject deletes performed at a Subscriber. Ein weiteres Beispiel ist eine Anwendung, die eine Bestellung ablehnt, die auf einem Abonnenten eingegeben wird, weil der Bestand nicht mehr verfügbar ist.As another example, an application could reject an order entered at a Subscriber because the inventory is no longer available.

  • Daten annehmenAccept the data

    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.This is useful for applications in which it is necessary to review data changes made at either the Publisher or Subscriber before allowing them to be propagated. Beispielsweise kann eine Anwendung der mittleren Ebene neue Bestellungen überprüfen, die über den Außendienst eingehen, und in einen Beschaffungsworkflowprozess der mittleren Ebene integrieren.For example, a mid-tier application could examine new orders coming in from the field and integrate with a procurement workflow process in the mid-tier.

  • Benutzerdefinierte Daten anwendenApply custom data

    Das ist bei Anwendungen nützlich, die bestimmte Datenwerte oder Vorgänge überschreiben müssen.This is useful for applications that need to override specific data values or operations. 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.For example, an application could transform a row delete into a special update that sets a status column in the row to a value of "deleted" and then tracks the identity of the client performing the delete. Das kann zum Überwachen und für Workflowzwecke nützlich sein.This might be useful for auditing or workflow purposes.

Benutzerdefinierte KonfliktlösungCustom Conflict Resolution

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.Merge replication provides conflict detection and resolution, allowing you to accept a default resolution strategy or choose custom resolution for conflicts. Weitere Informationen finden Sie unter Advanced Merge Replication Conflict Detection and Resolutionangegeben wird.For more information, see Advanced Merge Replication Conflict Detection and Resolution. Der Geschäftslogikhandler kann bei der Verarbeitung von Datenänderungen aufgerufen werden, die Konflikte verursachen, und eine von zwei Aktionen ausführen:The business logic handler can be invoked during the processing of conflicting data changes and can perform one of two actions:

  • Standardlösung übernehmenAccept default resolution

    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.This is useful for applications that might need to review the conflict, perform additional actions, and possibly log a custom conflict log message.

  • Benutzerdefinierte Lösung ausführenPerform custom resolution

    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.This is useful for applications that might need to select data values that are specific to their business logic and supply the synchronization process with this custom dataset. Eine Anwendung kann z. B. eine neue Version der gewinnenden Zeile bereitstellen, indem sie Werte aus den Verleger- und Abonnentendatasets kombiniert.For example, an application could provide a new version of the winning row by combining values from the Publisher and Subscriber data sets.

Benutzerdefinierte FehlerbehebungCustom Error Resolution

Die benutzerdefinierte Logik kann bei der Weitergabe von Änderungen aufgerufen werden, die zu einem Fehler führen.Custom logic can be invoked during the propagation of changes that result in errors. Die Logik kann eine der folgenden beiden Aktionen ausführen:The logic can perform one of two actions:

  • Standardfehlerbehebung übernehmenAccept default error resolution

    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.This is useful for applications that might need to review the error and perform additional action and possibly log a custom error log message.

  • Standardfehlerbehebung übernehmenAccept custom error resolution

    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.This is useful for applications that might need to select data values that are specific to their business logic and supply the synchronization process with this custom dataset. 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.For example, if the replication process encounters a duplicate key violation, the business logic handler could provide a new version of the data change in which the key will no longer conflict. Auf dem Verleger oder Abonnenten vorgenommene Änderungen können dann in der Datenbank persistent gespeichert werden, und der Replikationsprozess muss die fehlerhafte Einfügung nicht mehr durch eine Löschung ausgleichen.Changes made at the Publisher and Subscriber can then persist in the database, and the replication process doesn't have to compensate for the failed insert with a delete.

Bereitstellungsszenarien für GeschäftslogikhandlerDeployment Scenarios for Business Logic Handlers

Folgende Stellen können Geschäftslogikhandler bereitstellen:Business logic handlers can be deployed at:

  • VerteilerThe Distributor. Verwenden Sie ein Pushabonnement, damit die Geschäftslogik auf dem Verteiler ausgeführt wird.Use a push subscription so that business logic is executed at the Distributor.

  • Der Abonnent.The Subscriber. Verwenden Sie ein Pullabonnement, damit die Geschäftslogik auf dem Abonnenten ausgeführt wird.Use a pull subscription so that business logic is executed at the Subscriber.

  • Ein IIS-Server (Internetinformationsdienste), wenn die Websynchronisierung verwendet wird.An Internet Information Services (IIS) server if Web synchronization is used. Verwenden Sie ein mit der Websynchronisierung synchronisiertes Pullabonnement. Der Geschäftslogikhandler wird dann auf dem IIS-Server ausgeführt.Use a pull subscription synchronized with Web synchronization, and the business logic handler will execute at the IIS Server.

Siehe auchSee Also

Mergereplikation Merge Replication
Subscribe to Publications Subscribe to Publications
Synchronisieren von Daten Synchronize Data
Web Synchronization for Merge Replication Web Synchronization for Merge Replication