Um die Integrität von Synchronisationen sicherzustellen, muss dbmlsync dafür sorgen, dass keine vom Server heruntergeladenen Änderungen Zeilen in der entfernten Datenbank ändern, die seit dem Senden des letzten Uploads ihrerseits geändert wurden. Standardmäßig erfolgt dies ohne Sperren von Tabellen, sodass die Auswirkungen auf andere gleichzeitige Benutzer der Datenbank minimal sind. Die Tabellen werden bei der Synchronisation einer Publikation mit skriptgesteuertem Upload oder bei definiertem sp_hook_dbmlsync_schema_upgrade-Hook gesperrt (IN SHARE MODE).
Sind die Tabellen nicht gesperrt, protokolliert dbmlsync nach Erstellung des Upload alle geänderten Zeilen. Wenn der Download eine Änderung für eine dieser Zeilen enthält, wird dies als ein Konflikt gewertet.
Bei der Erkennung eines Konflikts wird der Download abgebrochen und die Downloadvorgänge werden zurückgesetzt, um ein Überschreiben der neuen Änderung zu verhindern. Das Dienstprogramm dbmlsync versucht dann erneut, die Synchronisation einschließlich des Upload-Schritts durchzuführen. Da die Zeile nun zu Beginn des Synchronisationsvorgangs vorhanden ist, wird sie in den Upload einbezogen.
Standardmäßig versucht dbmlsync, die Synchronisation auszuführen, bis sie erfolgreich ist. Sie können die Anzahl der Neuversuche mit der erweiterten Option ConflictRetries begrenzen. Wenn Sie ConflictRetries auf -1 setzen, unternimmt dbmlsync so lange Synchronisationsversuche, bis die Synchronisation erfolgreich ist. Wenn Sie die Option auf eine nicht negative Ganzzahl setzen, führt dbmlsync eine entsprechende Anzahl an Neuversuchen aus.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |