このフックを使用して、ダウンロードファイルがリモートデータベースに適用できるかどうかを決定するためのカスタム論理を実装します。このフックは、ファイルベースのダウンロードが適用される場合のみ呼び出されます。
名前 | 値 | 説明 |
---|---|---|
publication_n (in) |
パブリケーション |
推奨されていません。代わりに subscription_n を使用します。同期されているパブリケーション (n は整数)。同期されるパブリケーションごとに 1 つの publication_n エントリがあります。publication_n と generation number_n の n は一致します。n の番号は 0 から始まります。 |
MobiLink user (in) |
Mobile Link ユーザ名 |
同期対象となる Mobile Link ユーザ |
file last download time (in) |
ダウンロードファイルの最後のダウンロード時刻 (ダウンロードファイルには、最後のダウンロード時刻とその前のダウンロード時刻の間に変更されたすべてのローが含まれます)。 |
|
file next last download time (in) |
ダウンロードファイルの最後から 2 番目のダウンロード時刻 (ダウンロードファイルには、最後のダウンロード時刻とその前のダウンロード時刻の間に変更されたすべてのローが含まれます)。 |
|
file creation time (in) |
ダウンロードファイルが作成された時間。 |
|
file generation number_n (in) |
数値 |
ダウンロードファイルからの世代番号。各 subscription_n エントリに対して、1 つのファイル世代番号 number_n があります。subscription_n と 世代番号 number_n の n は一致します。n の番号は 0 から始まります。 |
user data (in) |
文字列 |
ダウンロードファイルが作成されたときの dbmlsync -be オプションまたは DnldFileExtra 同期プロファイルオプションで指定した文字列。 |
apply file (in|out) |
True|False |
True (デフォルト) の場合、ダウンロードファイルは dbmlsync の他の検証チェックを通過したときだけ適用されます。False の場合、ダウンロードファイルはリモートデータベースに適用されません。 |
check generation number (in|out) |
True|False |
True (デフォルト) の場合、dbmlsync は世代番号を検証します。ダウンロードファイル内の世代番号がリモートデータベース内の世代番号と一致しない場合、dbmlsync はダウンロードファイルを適用しません。False の場合、dbmlsync は世代番号をチェックしません。 |
setting generation number (in) |
true | false |
ダウンロードファイルが作成されたときに -bg オプションまたは UpdateGenNum 同期プロファイルオプションが使用された場合は true。true の場合、リモートデータベースの世代番号はダウンロードファイルから更新され、通常の世代番号チェックは行われません。 |
subscription_n (in) | サブスクリプション名 | 同期されているサブスクリプションの名前 (n は整数)。これは、同期される各サブスクリプションの subscription_n エントリです。n の番号は 0 から始まります。 |
このストアドプロシージャを使用して、ダウンロードファイルが適用できるか決定するためのカスタムチェックを実装します。
ダウンロードファイルに含まれる世代番号またはタイムスタンプと、リモートデータベースに格納されている世代番号またはタイムスタンプを比較する場合、それらのデータは SYSSYNC システムビューから問い合わせることができます。
ファイルベースのダウンロードがリモートデータベースに適用される前にこのフックが呼び出されます。
このフックのアクションは、フックが完了した直後にコミットされます。
MANAGE REPLICATION システム権限を持つユーザが作成できるフックプロシージャ。ただし、フックによる情報のやり取りに使用される #hook_dict table にフックがアクセスできることを確認するには、フックが次のいずれかの要件を満たしている必要があります。
SELECT ANY TABLE および UPDATE ANY TABLE システム権限を持つユーザが所有します。
CREATE PROCEDURE 文の SQL SECURITY INVOKER 句を使用して定義されます。
次の例では、ユーザ文字列「sales manager data」を含まないダウンロードファイルを適用しません。
CREATE PROCEDURE sp_hook_dbmlsync_validate_download_file () BEGIN IF NOT exists(SELECT * FROM #hook_dict WHERE name = 'User data' AND value='sales manager data') THEN UPDATE #hook_dict SET value = 'false' WHERE name = 'Apply file'; END IF; END; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |