Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Remote » SQL Remote の配備と管理 » SQL Remote の管理 » SQL Remote のパススルー・モード

 

パススルー・モードの開始と停止

パススルー・モードの開始と停止には、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)

パススルー・モードは通常、データ修正の文を送信するために使用します。この場合、レプリケートされた 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;
参照