このストアドプロシージャーを使用して、トランザクションログがスキャンされた直後にカスタムアクションを追加します。
名前 | 値 | 説明 |
---|---|---|
ending log offset (in) |
数値 |
スキャンの終了位置を示すログオフセット値。 |
starting log offset_n (in) |
数値 |
同期する各サブスクリプションの初期進行値。n 値は、publication_n の値に対応します。たとえば、Starting log offset_1 は publication_1 のオフセットです。 |
log scan retry (in) |
true | false |
この同期でトランザクションログが初めてスキャンされる場合、この値は False、それ以外の場合は True。Mobile Link サーバーと dbmlsync でスキャン開始位置の情報が異なっている場合、ログは 2 回スキャンされます。 |
publication_n (in) |
パブリケーション |
廃止予定。代わりに subscription_n を使用します。同期されているパブリケーション (n は整数)。同期されるパブリケーションごとに 1 つの publication_n エントリがあります。n の番号は 0 から始まります。 |
MobiLink user (in) |
Mobile Link ユーザー名 |
同期対象となる Mobile Link ユーザー。 |
script version (in) |
スクリプトバージョン名 |
同期に使用される Mobile Link スクリプトバージョン。 |
subscription_n (in) | サブスクリプション名 | 同期されているサブスクリプションの名前 (n は整数)。これは、同期される各サブスクリプションの subscription_n エントリです。n の番号は 0 から始まります。 |
この名前のプロシージャーが存在する場合、dbmlsync がトランザクションログをスキャンした直後に呼び出されます。
このプロシージャーのアクションは、実行直後にコミットされます。
次のテーブルを使用して、リモートデータベース上の同期イベントのログを取ります。
CREATE TABLE SyncLog ( "event_id" integer NOT NULL DEFAULT autoincrement , "event_time" timestamp NULL, "event_name" varchar(128) NOT NULL , "subs" varchar(1024) NULL , PRIMARY KEY ("event_id") ) |
次の文は、同期ごとにログスキャンの終わりにログを取ります。
CREATE PROCEDURE sp_hook_dbmlsync_logscan_end () BEGIN DECLARE subs_list VARCHAR(1024); -- build a list of subscriptions being synchronized SELECT LIST(value) INTO subs_list FROM #hook_dict WHERE name LIKE 'subscription_%'; -- log the event INSERT INTO SyncLog(event_time, event_name, subs) VALUES( CURRENT TIMESTAMP, 'sp_hook_dbmlsync_logscan_end', subs_list ); END |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |