次の疑似コードは、使用可能なイベントと、同期処理中に各イベントが呼び出されるポイントを示します。たとえば、sp_hook_dbmlsync_abort は最初に呼び出されるイベント・フックです。
各フックには、プロシージャの実装時に使用できるパラメータ値が用意されています。パラメータ値の中には、新しい値を返すように変更できるものがあります。それ以外のものは、読み込み専用です。これらのパラメータは、ストアド・プロシージャの引数ではありません。いずれのイベント・フック・ストアド・プロシージャにも、引数は渡されません。代わりに、#hook_dict テーブル内のローを読み込んだり修正したりすることで、引数がやりとりされます。
たとえば、sp_hook_dbmlsync_begin プロシージャには Mobile Link ユーザのパラメータが 1 つあります。これは、同期している Mobile Link ユーザです。この値は、#hook_dict テーブルから取り出すことができます。
順序は Mobile Link サーバでのイベントの順序と類似していますが、統合データベースとリモート・データベースに追加する論理の種類には、重複はほとんどありません。したがって、2 つのインタフェースは別のものとなります。
*_begin フックが正常に実行されると、*_begin フックの後にどのようなエラーが発生しても、対応する *_end フックが呼び出されます。*_end フックが定義されていても、*_begin フックが定義されていない場合は、通常 *_begin フックが呼び出される時点より前にエラーが発生しないかぎり、*_end フックが呼び出されます。
フックがデータベース内のデータを変更すると、sp_hook_dbmlsync_logscan_begin での変更を含むこれまでのすべての変更が、現在の同期セッションで同期されます。それ以降の変更は、次のセッションで同期されます。
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 |
アップロード・オプションの詳細については、-tu オプションとIncrement (inc) 拡張オプションを参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |