ヘッダーをスキップ

Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド リリース6.0 B25770-01 |
| 目次 | 索引

前へ | 次へ |

## CHECK CONFLICTS

構文

CHECK CONFLICTSの構文は、次のとおりです。

NO CHECK |
{CHECK CONFLICTS BY ROW TIMESTAMP
COLUMN ColumnName
[ UPDATE BY { SYSTEM | USER } ]
[ ON EXCEPTION { ROLLBACK WORK | NO ACTION } ]
[ REPORT TO 'FileName' | NO REPORT ]
}
注意: CHECK CONFLICT句は、TABLE型のELEMENTに対してのみ使用できます。
パラメータ

CREATE REPLICATIONまたはALTER REPLICATION文のCHECK CONFLICTSの部分には、次のパラメータがあります。

CHECK CONFLICTS BY ROW TIMESTAMP | すべての更新競合と一意性競合の検出を指定します。競合はON EXCEPTIONパラメータで指定された方法で解消されます。 DELETE処理とUPDATE処理の競合についても検出します。
COLUMN ColumnName | レプリケートされた表の列を使用してタイムスタンプを比較します。表はELEMENTの記述のTableNameで指定されます。 ColumnNameはNULL値可能なBINARY(8)型の列で、行が最後に更新されたタイムスタンプの格納に使用されます。TimesTenでは、格納された値よりも小さいタイムスタンプ値を持つ行の更新要求が拒否されます。指定されたColumnNameは、マスターおよびサブスクライバ・データ・ストアの両方のレプリケートされた表に存在している必要があります。
NO CHECK | 指定された要素に対する競合解消を行わないように指定します。
UPDATE BY {SYSTEM | USER} | タイムスタンプ値をTimesTen（SYSTEM）またはアプリケーション（USER）のどちらで管理するかを指定します。マスター・データ・ストアおよびサブスクライバ・データ・ストアのレプリケートされた表は、同じUPDATE BY指定を使用する必要があります。詳細は、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』のシステム・タイムスタンプ列のメンテナンスに関する項およびユーザー・タイムスタンプ列のメンテナンスに関する項を参照してください。 デフォルト値は、UPDATE BY SYSTEMです。
ON EXCEPTION {ROLLBACK WORK | NO ACTION} | 検出された競合の解消方法を指定します。ROW TIMESTAMP競合の検出には、次の解消オプションがあります。 ROLLBACK WORK: 競合するアクションを含むトランザクションを強制終了します。 NO ACTION: 競合するアクション（UPDATE、INSERTまたはCREATE VIEW）を実行せずに、トランザクションを完了します。 デフォルト値は、ON EXCEPTION ROLLBACK WORKです。
REPORT TO 'FileName' | タイムスタンプ比較に失敗した更新を記録するファイルを指定します。FileNameは、1,000文字以下のSQL文字列です（SQL文字列リテラルは一重引用符で囲まれた、空白を含むすべての文字列です）。複数の表で失敗した更新を記録するために、同一のファイルを使用できます。
NO REPORT | 失敗したタイムスタンプの比較を記録しないように指定します。

説明

- 同じホスト上のすべてのデータ・ストア名は、各TimesTenインスタンスの各レプリケーション・スキームについて一意である必要があります。
- レプリケーション要素の更新（通常のアプリケーション・トランザクションによる）は、MASTERデータ・ストアを使用してのみ可能です。PROPAGATORおよびSUBSCRIBERデータ・ストアは読取り専用です。
- 同じ表を更新する複数のデータ・ストアを許可するレプリケーション・スキームを定義する場合に、行の更新時の競合を回避する方法の推奨事項は、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』の競合解消と障害リカバリに関する項を参照してください。
- SELFは、レプリケーション・スキームに関連するデータ・ストアがすべてローカルにあることを前提としています。このため、本番環境では、分散されたレプリケーション・スキームに対してSELFを使用しないでください。本番環境では、各データ・ストアのホスト名をスクリプトで明示することによって、関連する各データ・ストアで使用できます。
- 指定したSTOREの属性は一度だけ指定するか、または何も指定しません。
- 単一のレプリケーション・スキームのデータ・ストアのPORTを指定すると、すべてのレプリケーション・スキームに対して指定されます。その他すべてのデータ・ストア属性は、コマンドで指定したレプリケーション・スキームによって異なります。
- レプリケーション・スキームでは、DataStoreNameは、常にTimesTenデータ・ストアのチェックポイント・ファイル名の接頭辞になります。チェックポイント処理によってディスクに保存される、接尾辞ds0とds1のファイルがチェックポイント・ファイルです。
- デフォルト値NOT INLINE VARCHARが指定されている行がレプリケートされる場合、受信者側のノードのデフォルト値が送信者側のノードのデフォルト値と異なる場合にのみ、受信者はデフォルト値を指すかわりに、各行に対してこの値のコピーを作成します。

##### 例13.31

MASTERDSのREPL.TABの内容を2つのサブスクライバ、SUBSCRIBER1DSとSUBSCRIBER2DSにレプリケートします。

    CREATE REPLICATION REPL.TWOSUBSCRIBERS
           ELEMENT E TABLE REPL.TAB
             MASTER MASTERDS ON "SERVER1"
             SUBSCRIBER SUBSCRIBER1DS ON "SERVER2",
                        SUBSCRIBER2DS ON "SERVER3";

##### 例13.32

MASTERDSデータ・ストア全体をサブスクライバSUBSCRIBER1DSにレプリケートします。FAILTHRESHOLDを指定すると、SUBSCRIBERIDSが失敗したとみなされる前に、最大10のログ・ファイルをMASTERDSに蓄積します。

    CREATE REPLICATION REPL.WHOLESTORE
      ELEMENT E DATASTORE
         MASTER MASTERDS ON "SERVER1"
         SUBSCRIBER SUBSCRIBER1DS ON "SERVER2";
      STORE MASTERDS FAILTHRESHOLD 10;

##### 例13.33

WESTDSおよびEASTDSデータ・ストア全体を双方向にレプリケートして、RETURN TWOSAFEサービスを有効にします。

    CREATE REPLICATION REPL.BIWHOLESTORE
      ELEMENT E1 DATASTORE
         MASTER WESTDS ON "WESTCOAST"
         SUBSCRIBER EASTDS ON "EASTCOAST"
            RETURN TWOSAFE
      ELEMENT E2 DATASTORE
         MASTER EASTDS ON "EASTCOAST"
         SUBSCRIBER WESTDS ON "WESTCOAST"
            RETURN TWOSAFE;

##### 例13.34

例13.31と同様ですが、サブスクライバSUBSCRIBER1DSへの選択トランザクション更新に対してのみ、RETURN RECIPTサービスを有効にします。

    CREATE REPLICATION REPL.TWOSUBSCRIBERS
      ELEMENT E TABLE REPL.TAB
         MASTER MASTERDS ON "SERVER1"
         SUBSCRIBER SUBSCRIBER1DS ON "SERVER2"
            RETURN RECEIPT BY REQUEST
         SUBSCRIBER SUBSCRIBER2DS ON "SERVER3";

##### 例13.35

WESTデータ・ストアのCUSTOMERSWEST表の内容をROUNDUPデータ・ストアにレプリケートし、同様にEASTデータ・ストアのCUSTOMERSEAST表をROUNDUPデータ・ストアにレプリケートします。すべてのトランザクションに対してRETURN RECIPTサービスを有効にします。

    CREATE REPLICATION R
           ELEMENT WEST TABLE CUSTOMERSWEST
             MASTER WEST ON "SERVERWEST"
             SUBSCRIBER ROUNDUP ON "SERVERROUNDUP"
                RETURN RECEIPT
           ELEMENT EAST TABLE CUSTOMERSEAST
             MASTER EAST ON "SERVEREAST"
             SUBSCRIBER ROUNDUP ON "SERVERROUNDUP"
                RETURN RECEIPT;

##### 例13.36

CENTRALDSデータ・ストアのREPL.TAB表の内容をPROPDSデータ・ストアにレプリケートし、PROPDSはBACKUP1DSおよびBACKUP2DSデータ・ストアに変更を伝播します。

    CREATE REPLICATION REPL.PROPAGATOR
           ELEMENT A TABLE REPL.TAB
             MASTER CENTRALDS ON "FINANCE"
             SUBSCRIBER PROPRDS ON "NETHANDLER"
           ELEMENT B TABLE REPL.TAB
             PROPAGATOR PROPRDS ON "NETHANDLER"
             SUBSCRIBER BACKUP1DS ON "BACKUPSYSTEM1"
                        BACKUP2DS ON "BACKUPSYSTEM2";

##### 例13.37

EASTDSとWESTDSデータ・ストアの間で、REPL.ACCOUNTS表の内容を双方向でレプリケートします。各データ・ストアは、REPL.ACCOUNTS表のマスターとサブスクライバの両方として設定されます。

REPL.ACCOUNTS表がEASTDSとWESTDSデータ・ストアのいずれかで更新されるため、この定義にはタイムスタンプ列（TSTAMP）が含まれます。CHECK CONFLICTS句により、2つのデータ・ストア間で発生した更新競合を検出するための自動タイムスタンプ比較が開始されます。比較が失敗すると、古いタイムスタンプを持つ更新が含まれるトランザクションの全体がロールバック（破棄）されます。

    CREATE REPLICATION REPL.R1
    ELEMENT ELEM_ACCOUNTS_1 TABLE REPL.ACCOUNTS
       CHECK CONFLICTS BY ROW TIMESTAMP
          COLUMN TSTAMP
          UPDATE BY SYSTEM
          ON EXCEPTION ROLLBACK
       MASTER WESTDS ON "WESTCOAST"
       SUBSCRIBER EASTDS ON "EASTCOAST"
    ELEMENT ELEM_ACCOUNTS_2 TABLE REPL.ACCOUNTS
       CHECK CONFLICTS BY ROW TIMESTAMP
          COLUMN TSTAMP
          UPDATE BY SYSTEM
          ON EXCEPTION ROLLBACK
       MASTER EASTDS ON "EASTCOAST"
       SUBSCRIBER WESTDS ON "WESTCOAST";

関連項目

ALTER ACTIVE STANDBY PAIR
ALTER REPLICATION
DROP ACTIVE STANDBY PAIR
DROP REPLICATION