Der Synchronisationsprozess kann in eine oder zwei Richtungen ablaufen. In diesem Abschnitt wird die Zweiwegesynchronisationen vorgestellt. Der Zweiwegesynchronisationsprozess besteht aus den folgenden beiden Schritten:
Dieser aus zwei Phasen bestehende Vorgang wird als Synchronisationssitzung bezeichnet.
Abbildung 2 zeigt, wie von einem Benutzer übergebene Änderungen bei der Synchronisation auf die Quellendatenbank angewendet werden. Die Nummerierung in der Abbildung entspricht den nachfolgenden Erläuterungen:
Abbildung 3 zeigt, wie die Änderungen in einer Quellentabelle beim Synchronisieren auf eine DB2 Everyplace-Tabelle auf der mobilen Einheit des Benutzers angewendet werden. Sync Server sendet alle relevanten Quellendatenänderungen an den Benutzer, die seit der letzten, vom Benutzer ausgeführten Synchronisation vorgenommen wurden. Sync Server übermittelt nur diejenigen geänderten Daten, für die der Benutzer zugriffsberechtigt ist.
Die Nummerierung in der Abbildung entspricht den nachfolgenden Erläuterungen.
Abbildung 3. Änderungen an der Quellendatenbank werden auf die mobile Datenbank angewendet.
Eine Synchronisation kann aus mehreren Synchronisationssitzungen bestehen. Wenn Sie den Synchronisationsprozess abbrechen und später erneut starten, versucht Sync Server die erste Synchronisationssitzung, die nicht abgeschlossen wurde, wieder aufzunehmen (anstatt nochmals ganz neu zu beginnen).
Es sei beispielsweise angenommen, dass Sie eine Synchronisation von 100 Datensätzen für eine und von 50 Datensätzen für eine weitere Subskription anfordern. Wenn die 100 Datensätze der ersten Subskription abgeschlossen sind, wenn Sie den Prozess abbrechen, werden nur die nächsten 50 Datensätze synchronisiert, wenn Sie die Synchronisation neu starten. Der Grund dafür ist, dass die erste Synchronisationssitzung abgeschlossen wurde.
Wenn Sie die Synchronisation im Laufe einer Synchronisationssitzung abbrechen, werden die Datensätze dieser Sitzung nicht synchronisiert. Wenn dann der Benutzer alle geänderten Datensätze von der Einheit an den Server sendet, aber die Übertragung während der Antwort des Servers abbricht, nimmt der Server die Antwort in dem Moment wieder auf, wo der Benutzer eine neue Verbindung zu Sync Server herstellt.
Manchmal stehen Änderungen, die von einem Client an DB2 Everyplace Sync Server übergeben werden, im Widerspruch zu Änderungen, die von anderen Clients an den Quellentabellen vorgenommen wurden oder gerade 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 4 hervorgeht. Dieser Schritt wird im nächsten Replikationszyklus ausgeführt. Konflikte aufgrund von Clientaktualisierungen werden erst nach Rückgabe von Antwortnachrichten an den Client während der Synchronisation erkannt. Zurückgewiesene Clientänderungen werden erst bei der nächsten Synchronisation an den Client zurückgemeldet. Basiert eine Clientänderung auf einem veralteten Datensatz, wird eine korrekte Version des betreffenden Datensatzes in der ursprünglichen Synchronisationsanforderung zurückgegeben.
Abbildung 4. Konfliktbehebung durch Sync Server
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. 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.