パススルー・モードの開始と停止には、PASSTHROUGH 文と PASSTHROUGH STOP 文を使用します。パススルー・セッションは、これらの PASSTHROUGH 文の間に入力された文のことを指します。パススルー・セッションに入力された文は、次のように処理されます。
構文エラーがチェックされます。
ONLY キーワードを指定しない場合は、統合データベースで実行されます。ONLY が指定されている場合は、文は統合データベースで実行されずに、リモート・データベースに送信されます。
次の文を使用すると、現在のデータベースで実行されずに、指定した 2 つのサブスクライバのリストに文を渡すパススルー・セッションが開始されます。
PASSTHROUGH ONLY FOR userid_1, userid_2; |
識別されたサブスクライバのデータベースに渡されます。パススルー文は、通常のレプリケーション・メッセージと一緒に、文がトランザクション・ログに記録された順序で連続してレプリケートされます。
サブスクライバのデータベースで実行されます。
次の文は、pubname パブリケーションに対してサブスクライブされたすべてのユーザに文を渡すパススルー・セッションを開始します。
PASSTHROUGH ONLY FOR SUBSCRIPTION TO [owner].pubname statement1; |
パススルー・モードは、加算的です。次の例では、statement_1 は user_1 に送られ、statement_2 は user_1 と user_2 の両方に送られます。
PASSTHROUGH ONLY FOR user_1 ; statement_1; PASSTHROUGH ONLY FOR user_2 ; statement_2; |
次の文は、すべてのリモート・ユーザのパススルー・セッションを停止します。
PASSTHROUGH STOP; |
パススルー・モードは通常、データ修正の文を送信するために使用します。この場合、レプリケートされた DML 文は、パススルーの前に before スキーマを使用し、パススルーの後に after スキーマを使用します。
次の例は、リモート・データベースおよび統合データベースでテーブルを削除します。
-- Drop a table on the remote database -- and at the consolidated database PASSTHROUGH TO Joe_Remote; DROP TABLE CrucialData; PASSTHROUGH STOP; |
次の例は、リモート・データベースでのみテーブルを削除します。
-- Drop a table on the remote database only PASSTHROUGH ONLY TO Joe_Remote; DROP TABLE CrucialData; PASSTHROUGH STOP; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |