Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Clientadministration » SQL Anywhere-Clients für MobiLink » Ereignis-Hooks für SQL Anywhere-Clients » Einführung in dbmlsync-Hooks

 

Hook-Sequenz bei der Synchronisation

Der folgende Pseudocode zeigt die verfügbaren Ereignisse und veranschaulicht den Punkt, an dem jedes einzelne Ereignis im Synchronisationsprozess aufgerufen wird. Zum Beispiel ist sp_hook_dbmlsync_abort der zuerst zu aktivierende Ereignis-Hook.

Jeder Hook ist mit Parameterwerten versehen, die Sie beim Implementieren der Prozedur verwenden können. In einigen Fällen können Sie den Wert ändern, damit ein neuer Wert zurückgegeben wird, andere Parameter wiederum sind schreibgeschützt. Diese Parameter sind keine Argumente gespeicherter Prozeduren. An die gespeicherten Prozeduren des Hooks werden keine Argumente übergeben. Stattdessen werden die Argumente durch Lesen und Ändern von Zeilen in der Tabelle #hook_dict ausgetauscht.

Beispiel: Die Prozedur sp_hook_dbmlsync_begin hat einen Parameter für den MobiLink-Benutzer, also den MobiLink-Benutzer, der synchronisiert wird. Sie können diesen Wert aus der Tabelle #hook_dict abrufen.

Wenngleich die Sequenz Ähnlichkeiten mit der Hook-Sequenz auf dem MobiLink-Server hat, gibt es nur wenige Überschneidungen in der Art der Logik, die Sie den konsolidierten und entfernten Datenbanken hinzufügen. Die beiden Schnittstellen sind daher getrennt und unterschiedlich.

Wenn ein *_begin-Hook erfolgreich verarbeitet ist, wird der entsprechende *_end-Hook unbeschadet von Fehlern aufgerufen, die nach dem *_begin-Hook auftreten. Wenn der *_begin-Hook nicht definiert ist, Sie aber einen *_end-Hook definiert haben, wird *_end-Hook aufgerufen, sofern nicht ein Fehler vor dem Zeitpunkt auftritt, an dem der *_begin-Hook normalerweise aufgerufen würde.

Wenn der Hook Daten in Ihrer Datenbank ändert, werden alle Änderungen bis einschließlich sp_hook_dbmlsync_logscan_begin in der laufenden Synchronisationssitzung synchronisiert. Danach werden Änderungen in der nächsten Sitzung synchronisiert.

sp_hook_dbmlsync_abort
sp_hook_dbmlsync_set_extended_options
loop until return codes direct otherwise (
   sp_hook_dbmlsync_abort
   sp_hook_dbmlsync_delay
)
sp_hook_dbmlsync_abort
// start synchronization
sp_hook_dbmlsync_begin
// upload events
for each upload segment
// a normal synchronization has one upload segment
// a transactional upload has one segment per transaction
// an incremental upload has one segment per upload piece
 sp_hook_dbmlsync_logscan_begin  //not called for scripted upload
 sp_hook_dbmlsync_logscan_end  //not called for scripted upload
 sp_hook_dbmlsync_set_ml_connect_info //only called during first upload
 sp_hook_dbmlsync_upload_begin
 sp_hook_dbmlsync_set_upload_end_ progress  //only called for scripted upload
 sp_hook_dbmlsync_upload_end
next upload segment
// download events 
sp_hook_dbmlsync_validate_download_file (only called 
   when -ba option is used)
for each download segment
sp_hook_dbmlsync_download_begin
for each table
   sp_hook_dbmlsync_download_table_begin
   sp_hook_dbmlsync_download_table_end
next table
sp_hook_dbmlsync_download_end

sp_hook_dbmlsync_schema_upgrade
// end synchronization
sp_hook_dbmlsync_end
sp_hook_dbmlsync_process_exit_code
sp_hook_dbmlsync_log_rescan

Weitere Hinweise zu Upload-Optionen finden Sie unter Option -tu und Erweiterte Option Increment (inc).