Lösen von Synchronisationskonflikten

Manchmal stehen Änderungen, die von einem Client an DB2 Everyplace Sync Server übergeben werden, im Widerspruch zu Änderungen, die von anderen Clients oder Anwendungen an den Quellentabellen vorgenommen wurden oder gerade gleichzeitig vorgenommen werden. Sync Server überwacht die Versionen aller Datensätze in den Tabellen einer Replikationssubskription. Alle Clients werden in ähnlicher Weise überwacht, um eine Version jedes Datensatzes für die letzte Synchronisation jedes Clients mit jeder Tabelle aufzubewahren. Anhand dieser Informationen kann Sync Server feststellen, ob ein Client beim Aktualisieren versucht, veraltete Datensätze in eine Tabellenzeile zu schreiben. Ist dies der Fall, wird die Aktualisierungsanforderung zurückgewiesen.

Konfliktvermeidung erfolgt beim Zwischenspeichern von Daten in den Spiegeltabellen des Mittlersystems, wie aus Abbildung 7 hervorgeht. Dies erfolgt im Replikationszyklus, der der Synchronisationssitzung des Clients folgt. Das heißt, Konflikte auf Grund von Clientaktualisierungen werden erst nach der Rückgabe von Antwortnachrichten an den Client während der Synchronisation erkannt. Zurückgewiesene Clientänderungen werden in der ersten Synchronisationssitzung nach der Replikation, in der der Konflikt erkannt wurde, an den Client übertragen. Basiert eine Clientänderung auf einem veralteten Datensatz, wird eine korrekte Version des betreffenden Datensatzes in der ursprünglichen Synchronisationsanforderung zurückgegeben.

Abbildung 7. Konfliktbehebung durch Sync Server

Anfang Abbildung 4. Zwei Rechtecke gleicher Größe übereinander. Das obere Rechteck stellt Client 1 dar. Das untere Rechteck stellt Client 2 dar. Diese beiden Rechtecke zeigen auf ein größeres Rechteck, das ein Mittlersystem darstellt. In dem Rechteck, das Client 1 darstellt, befindet sich eine Tabelle MPKrankenakte. Unter dem Rechteck steht "Letzte Synchronisation: 12:02:04". In dem Rechteck, das Client 2 darstellt, befindet sich eine MPKrankenakte. Unter dem Rechteck steht "Letzte Synchronisation 12:02:45". Von dem Rechteck für Client 1 zeigt ein Pfeil auf das Rechteck, das das Mittlersystem darstellt. Über dem Pfeil steht "Aktualisierung". Im weiteren Verlauf des Pfeils steht "zurückgewiesen". Von dem Rechteck für Client 2 zeigt ein Pfeil auf das Rechteck, das das Mittlersystem darstellt. Über dem Pfeil steht "Aktualisierung". In dem Rechteck für das Mittlersystem befindet sich eine Spiegeldatenbank S_MPFLEGE. Der von Client 2 ausgehende Pfeil erstreckt sich über die Spiegeldatenbank und erstellt eine Spiegeltabelle MPKrankenakte. Der Pfeil von Client 1 wird zurückgewiesen, bevor er die Spiegeldatenbank erreicht. Ende Abbildung 4.

Der Client, dessen Aktualisierung zurückgewiesen wurde, empfängt sowohl den zurückgewiesenen Datensatz als auch die richtige Version dieses Datensatzes. Der zurückgewiesene Datensatz wird im Protokoll des Clients aufgezeichnet oder von der API des Clients an die Anwendung weitergegeben. Die richtige Version dieses Datensatzes ersetzt den ursprünglichen (zurückgewiesenen) Datensatz in der DB2 Everyplace-Datenbank des Clients.

Wenn DataPropagator die geänderten Daten von der Mittlerdatenbank auf die Quellendatenbank anwendet, können aber noch weitere Konflikte auftreten. Informationen zur Erkennung und Behebung solcher Konflikte finden Sie im DB2 Universal Database Replikation Benutzer- und Referenzhandbuch und im Handbuch DB2 Universal Database Systemverwaltung.

Zugehörige Konzepte

Zugehörige Tasks