Ein Download-Fehler wird durch einen Kommunikationsfehler während des Downloads verursacht oder wenn ein Benutzer versucht, den Download abzubrechen. Der MobiLink-Server nimmt Download-Daten auf, die vom Client nicht empfangen wurden, um sie in einem neu startbaren Download verwenden zu können. Sie können die Wahrscheinlichkeit eines Download-Fehlers verringern, indem Sie die maximal zuweisbare Datenmenge für neu startbare Downloads mit der Option -ds herabsetzen. Der Server gibt Download-Daten erst frei, wenn eine der folgenden Situationen eintritt:
Der Benutzer schließt den Download erfolgreich ab.
Der Benutzer gibt eine neue Synchronisationsanforderung ein, ohne dass die Wiederaufnahme aktiviert wurde.
Der Cache wird für eingehende Anforderungen benötigt. Der älteste nicht erfolgreiche Download wird zuerst gelöscht.
MobiLink verfügt über Funktionen, die bei der Wiederherstellung nach einem Download-Fehler Unterstützung bieten und eine Übertragungswiederholung des gesamten Downloads verhindern. Für diese Funktion gibt es unterschiedliche Implementierungen für entfernte SQL Anywhere- und UltraLite-Datenbanken. Weitere Hinweise finden Sie unter Option -ds.
Wenn die Synchronisation während eines Downloads fehlschlägt, werden die heruntergeladenen Daten nicht in die entfernte Datenbank übernommen. Die erfolgreich übertragenen Download-Teile werden jedoch in einer temporären Datei auf dem entfernten Gerät gespeichert. Dbmlsync verwendet diese Datei, um eine langwierige Übertragungswiederholung von Daten zu vermeiden und den Systemzustand nach dem Download-Fehler wiederherzustellen.
Es gibt drei Möglichkeiten, diese Funktion zu implementieren. In allen Fällen wird dbmlsync abgebrochen. Der wieder aufgenommene Download schlägt fehl, falls neue Daten hochgeladen werden müssen.
-dc Wenn ein Download fehlgeschlagen ist, können Sie den Download beim nächsten Aufruf von dbmlsync mit der Option -dc wieder aufnehmen. Falls ein Teil des fehlgeschlagenen Downloads übertragen wurde, überträgt der MobiLink-Server nur noch die restlichen Daten.
Weitere Hinweise finden Sie unter Option -dc.
Erweiterte Option ContinueDownload (cd) Wenn die erweiterte Option -cd in der Befehlszeile dbmlsync verwendet wird, hat sie dieselbe Funktion wie die Option -dc. Sie können diese Option auch in der Datenbank speichern oder mithilfe von sp_hook_dbmlsync_set_extended_options in einer einzelnen Synchronisation verwenden.
Weitere Hinweise finden Sie unter Erweiterte Option ContinueDownload (cd) und sp_hook_dbmlsync_set_extended_options.
Einstiegsprozedur sp_hook_dbmlsync_begin Mit dem Parameter restart können Sie veranlassen, dass ein Download wieder aufgenommen wird. Sie erkennen, dass ein Download wieder aufgenommen werden kann, wenn der Parameter restartable download auf TRUE gesetzt ist. Wenn eine Download-Datei von einer bestimmten Größe vorhanden ist, können Sie auch in der Einstiegsprozedur Logik anwenden, um einen Download wieder aufzunehmen.
Weitere Hinweise finden Sie unter sp_hook_dbmlsync_end.
Sie können das Verhalten von UltraLite-Anwendungen nach einem fehlgeschlagenen Download wie folgt steuern:
Wenn Sie den Synchronisationsparameter Keep Partial Download bei der Synchronisation auf TRUE setzen und während des Downloads ein Fehler auftritt, übernimmt UltraLite den Teil der Änderungen, der übertragen wurde. UltraLite setzt den Synchronisationsparameter Partial Download Retained ebenfalls auf TRUE.
Die UltraLite-Datenbank ist zu diesem Zeitpunkt möglicherweise inkonsistent. Abhängig von Ihrer Anwendung wollen Sie möglicherweise sicherstellen, dass die Synchronisation erfolgreich beendet oder zurückgesetzt wird, bevor Sie eine Änderung der Daten zulassen. Weitere Hinweise finden Sie unter Synchronisationsparameter Keep Partial Download und Synchronisationsparameter Partial Download Retained.
Um den Download wieder aufzunehmen, setzen Sie den Synchronisationsparameter Resume Partial Download auf TRUE und synchronisieren erneut. Weitere Hinweise finden Sie unter Synchronisationsparameter Resume Partial Download.
Die neu gestartete Synchronisation führt keinen Upload aus und überträgt nur Änderungen, die vom fehlgeschlagenen Download übertragen worden wären. Das heißt, der fehlgeschlagene Download wird abgeschlossen, doch es werden keine Änderungen synchronisiert, die seit dem letzten Download-Versuch vorgenommen wurden. Um diese Änderungen zu erhalten, müssen Sie, nachdem der fehlgeschlagene Download abgeschlossen ist, erneut eine Synchronisation durchführen, oder "Rollback Partial Download" aufrufen und mit "Resume Partial Download" mit dem Wert FALSE noch einmal synchronisieren.
Wenn Sie den Download erneut starten, werden automatisch zahlreiche Synchronisationsparameter der fehlgeschlagenen Synchronisation verwendet. Der Publikationsparameter wird z.B. ignoriert: Die Synchronisation überträgt die Publikationen, die vom ursprünglichen Download angefordert wurden. Lediglich die Parameter Resume Partial Download (muss auf TRUE gesetzt werden) und User Name müssen gesetzt werden. Außerdem werden Einstellungen für die folgenden Parameter berücksichtigt, falls diese gesetzt wurden:
Um die Änderungen aus dem fehlgeschlagenen Download zurückzusetzen, ohne die Synchronisation wieder aufzunehmen, rufen Sie die Funktion zum Zurücksetzen der Änderungen auf. Für Embedded SQL ist dies die Funktion ULRollbackPartialDownload. Für UltraLite-Komponenten ist dies eine Methode am Connection-Objekt.
UltraLite.NET Weitere Hinweise finden Sie unter RollbackPartialDownload-Methode.
Embedded SQL Weitere Hinweise finden Sie unter ULRollbackPartialDownload-Funktion.
Sie sollten die Änderungen aus einem fehlgeschlagenen Download zurücksetzen, falls die Synchronisation nicht abgeschlossen werden kann, z.B. wenn der Server oder das Netzwerk nicht verfügbar ist, und Sie die Datenkonsistenz bewahren wollen, während der Endbenutzer weiter mit der Anwendung arbeiten kann.
Weitere Hinweise zu Kommunikationsfehlern finden Sie unter Fehlermeldungen.
Wenn der Synchronisationsparameter send_download_ack auf TRUE festgelegt ist, wird die Einstellung für den wieder aufgenommenen Download ignoriert.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |