Mobile Link サーバによってアップロードが受信されたことを dbmlsync で確認した後に、このストアドプロシージャを使用してカスタムアクションを追加します。
名前 | 値 | 説明 |
---|---|---|
failure cause (in) |
「備考」の項の値の範囲を参照してください。 |
アップロード障害の原因。詳細については、「備考」を参照してください。 |
upload status (in) |
retry | committed | failed | unknown |
dbmlsync がアップロードの受信確認を行おうとしたときに、Mobile Link サーバから返されるステータスを指定します。 retry - アップロードの開始位置であるログオフセットの値が、Mobile Link サーバと dbmlsync で異なっていました。Mobile Link サーバは、アップロードをコミットしませんでした。dbmlsync ユーティリティは、新しいログオフセットから始まる別のアップロードを送信しようとします。 committed - Mobile Link サーバがアップロードを受信し、コミットしました。 failed - Mobile Link サーバは、アップロードをコミットしませんでした。 unknown ‐ Mobile Link サーバは、アップロードを確認しませんでした。アップロードがコミットされたかどうかを確認する方法はありません。 |
publication_n (in) |
パブリケーション |
推奨されていません。代わりに subscription_n を使用します。同期されているパブリケーション (n は整数)。同期されるパブリケーションごとに 1 つの publication_n エントリがあります。n の番号は 0 から始まります。 |
MobiLink user (in) |
Mobile Link ユーザ名 |
同期対象となる Mobile Link ユーザ |
script version (in) |
スクリプトバージョン名 |
同期に使用される Mobile Link スクリプトバージョン |
authentication value (in) | 値 |
この値は、dbmlsync による Mobile Link サーバに対する認証結果を示します。サーバ上の authenticate_user スクリプト、authenticate_user_hashed スクリプト、または authenticate_parameters スクリプトによって生成されます。upload status が unknown であるとき、またはリモートデータベースと統合データベースに格納されているログオフセット間の競合が原因でアップロードが再送信された後に upload_end フックが呼び出されたとき、値は空の文字列になります。 |
subscription_n (in) | サブスクリプション名 | 同期されているサブスクリプションの名前 (n は整数)。これは、同期される各サブスクリプションの subscription_n エントリです。n の番号は 0 から始まります。 |
この名前のプロシージャが存在する場合、dbmlsync がアップロードを送信し、Mobile Link サーバから受信確認を受け取った直後に呼び出されます。
トランザクション単位のアップロードまたはインクリメンタルアップロードを実行する場合、アップロードの各セグメントの送信後にこのフックが呼び出されます。この場合、最後に呼び出される場合を除き、フックが呼び出されるたびにアップロードステータスは「不明」になります。
このプロシージャのアクションは、実行直後にコミットされます。
#hook_dict テーブルの failure cause ローに有効なパラメータ値の範囲は、次のとおりです。
MANAGE REPLICATION システム権限を持つユーザが作成できるフックプロシージャ。ただし、フックによる情報のやり取りに使用される #hook_dict table にフックがアクセスできることを確認するには、フックが次のいずれかの要件を満たしている必要があります。
SELECT ANY TABLE および UPDATE ANY TABLE システム権限を持つユーザが所有します。
CREATE PROCEDURE 文の SQL SECURITY INVOKER 句を使用して定義されます。
次のテーブルを使用して、リモートデータベース上の同期イベントのログを取ります。
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_upload_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_upload_end', subs_list ); END |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |