Es gibt zwei Skripten, die während der Downloadtransaktion für die Verarbeitung der einzelnen Tabellen verwendet werden können. Hierbei handelt es sich um das Skript download_cursor, das Einfügungen und Aktualisierungen ausführt, und um das Skript download_delete_cursor, mit dem Löschvorgänge vorgenommen werden.
Diese Skripten sind entweder SELECT-Anweisungen oder Aufrufe von Prozeduren, die Ergebnismengen zurückgeben. Der MobiLink-Server führt ein Upload der Ergebnismenge des Skripts in die entfernte Datenbank durch. Anhand der Ergebnismenge des Skripts download_cursor fügt der MobiLink-Client automatisch Zeilen ein bzw. aktualisiert sie. Grundlage für die Löschvorgänge ist das Ereignis download_delete_cursor.
Weitere Hinweise zur Verwendung von gespeicherten Prozeduren finden Sie unter Download einer Ergebnismenge aus Aufruf einer gespeicherten Prozedur.
Der MobiLink-Server liest die Download-Daten in einer einzelnen Transaktion ein. Eine Beschreibung des Download-Prozesses finden Sie unter Ereignisse beim Download.
Wie der Upload beginnt und endet auch der Download mit Verbindungsereignissen. Andere Ereignisse finden auf Tabellenebene statt.
Wenn Sie die Einstellung von SendDownloadACK auf ON setzen, hängt das Serververhalten vom verwendeten Downloadbestätigungsmodus ab. Wenn keine Bestätigung des Downloads vom Client eintrifft, wird zur Blockierung der Downloadbestätigung die komplette Downloadtransaktion in der konsolidierten Datenbank zurückgesetzt. Bei der nicht blockierenden Downloadbestätigung wird die Downloadtransaktion festgeschrieben, doch die Skripten für die Download-Zeitstempelaktualisierung und Downloadbestätigung werden erst ausgeführt, wenn die Bestätigung empfangen wird.
Standardmäßig hat SendDownloadAck die Einstellung OFF.
Weitere Hinweise finden Sie unter Erweiterte Option SendDownloadACK (sa), Synchronisationsparameter Send Download Acknowledgement, Option -nba nonblocking_download_ack (Verbindungsereignis) und publication_nonblocking_download_ack (Verbindungsereignis).
Die Skripten begin_download und end_download für die einzelnen entfernten Tabellen enthalten eine Logik, die von den einzelnen zu aktualisierenden Zeilen unabhängig ist.
Bei zeitstempelbasierten Downloads können Sie den Parameter last_download_timestamp so festlegen, dass nur Änderungen heruntergeladen werden, die seit der letzten Synchronisation vorgenommen wurden. Die SQL-Skripten download_cursor oder download_delete_cursor könnten beispielsweise folgende Zeile enthalten:
WHERE Customer.last_modified >= {ml s.last_table_download} |
Weitere Hinweise finden Sie unter Zeitpunkt des letzten Downloads in Skripten verwenden.
Der Download unterscheidet nicht zwischen Einfügungen und Änderungen. Das Skript, das dem Ereignis download_cursor zugeordnet ist, ist eine SELECT-Anweisung, die die einzulesenden Zeilen festlegt. Der Client ermittelt, ob die Zeile vorhanden ist, und führt dann den entsprechenden Einfüge- oder Aktualisierungsvorgang aus.
Unter Umständen löscht der Client am Ende des Download-Prozesses automatisch einige Zeilen, um Verletzungen der referenziellen Integrität zu vermeiden.
Synchronisieren Sie keine Schattentabellen, die bei vorhergehenden Deployments erstellt wurden (z.B. Tabellen, die auf _mod oder _del enden, dürfen nicht synchronisiert werden). Diese Tabellen werden nur von der konsolidierten Datenbank benötigt, um geänderte oder gelöschte Zeilen zu protokollieren.
Weitere Hinweise finden Sie unter Referenzielle Integrität und Synchronisation.
download_cursor-Skripten schreiben
download_delete_cursor-Skripten schreiben
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 |