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

SAP Sybase SQL Anywhere 16.0 » SQL Remote » SQL Remote システムの作成 » トランザクションログベースのレプリケーション

 

トリガのレプリケーション

通常、リモートデータベースには、統合データベースに存在するトリガと同じトリガが定義されています。

デフォルトでは、SQL Remote はトリガによって実行される動作をレプリケートしません。代わりに、統合データベースでトリガを起動するアクションが、リモートデータベースにレプリケートされると、その複製トリガはリモートデータベースで自動的に起動します。これによって、権限に関する問題と各動作が 2 回発生する可能性を回避します。この原則には次のような例外があります。

  • RESOLVE UPDATE トリガのレプリケーション   競合解析または RESOLVE UPDATE トリガが実行する動作は、統合データベースから、競合を発生させたメッセージを送信したリモートデータベースを含む、すべてのリモートデータベースにレプリケートされます

  • BEFORE トリガのレプリケーション   更新中のローを変更する BEFORE トリガの動作は、UPDATE 文が動作する前にレプリケートされます

    たとえば、ローの更新回数を追跡するカウンタカラムをロー内で増加させる BEFORE UPDATE トリガは、レプリケートされると 2 回カウントが行われます。これは、UPDATE 文がレプリケートされると、リモートデータベースの BEFORE UPDATE トリガが起動されるためです。

    また、カラムを最終更新時間に設定する BEFORE UPDATE トリガは、UPDATE 文がレプリケートされた時間を取得します。

    この問題を回避するには、サブスクライバデータベースに BEFORE UPDATE トリガが存在しないこと、または BEFORE UPDATE トリガがレプリケートされた動作を実行しないことを確認してください。

 トリガの動作をレプリケートするオプション
 トリガエラーの回避
 抽出ユーティリティ (dbxtract)
 参照