ヘッダーをスキップ

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

前へ | 次へ |

## キャッシュ・グループのAUTOREFRESH

AUTOREFRESHパラメータは、Oracleデータベースの変更をTimesTenキャッシュに自動的に伝播します。デフォルトでは、システム管理キャッシュ・グループは、自動的にOracleデータベースからTimesTenキャッシュに変更を伝播します。AUTOREFRESHパラメータは、システム管理キャッシュ・グループでは使用できません。キャッシュ・グループのタイプの詳細は、「ユーザーおよびシステム管理キャッシュ・グループ」を参照してください。

TimesTenでは、FULLまたはINCREMENTALがサポートされています。FULLモードでは、キャッシュ全体が定期的にアンロードされてから再ロードされています。INCREMENTALモードでは、Oracleデータベースにトリガーがインストールされて、変更が追跡され、Oracleで変更された行のみが定期的に更新されています。次のようにPAUSED状態を使用する場合を除き、最初の増分リフレッシュは、常に完全リフレッシュになります。デフォルトのモードはINCREMENTALです。

Oracle表のほとんどの行が変更されている場合は、FULL AUTOREFRESHがより有効です。変更が少ない場合は、INCREMENTAL AUTOREFRESHがより有効です。

AUTOREFRESHは、AUTOREFRESHが指定された文を含むトランザクションがコミットされた場合に、TimesTenによってスケジュールされます。AUTOREFRESHをスケジュールする文は、次のとおりです。

- CREATE CACHE GROUP文：AUTOREFRESHを指定し、AUTOREFRESH状態をONに指定
- ALTER CACHE GROUP文: AUTOREFRESH状態をONに変更
- LOAD CACHE GROUP文: 自動リフレッシュの状態がPAUSEDに指定されている、空のキャッシュ・グループに対して実行（LOAD後に状態がONになります。）

INCREMENTALモードにおいて非常に多数の完全自動リフレッシュが発生している場合、AUTOREFRESH INCREMENTAL句のWITH LIMIT値を指定することによって、変更ログ表のサイズを増やすことができます。WITH LIMITには、2,000から2,147,483,647の値を設定できます。デフォルト値は10,000です。

AUTOREFRESHの頻度は、指定した時間隔によって決まります。

AUTOREFRESHのSTATEには、ON、OFFまたはPAUSEDが指定できます。デフォルトでは、AUTOREFRESH STATEはPAUSEDです。

キャッシュ・グループでAUTOREFRESHを使用するには、最初にTimesTen ttAdminユーティリティを実行して、Oracle ID、およびPWDにcacheUidとcachePwdを指定します。

増分リフレッシュを使用してキャッシュ・グループのAUTOREFRESHをアクティブ化するには、Oracleに特定のトリガーをインストールしておく必要があります。詳細は、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』を参照してください。Oracleに必要なトリガーやプロシージャはTimesTenによって自動的にインストールされます。

キャッシュ・グループでAUTOREFRESHを使用するには、キャッシュ・グループを作成する際にAUTOREFRESHを指定する必要があります。MODE、STATEおよびINTERVAL AUTOREFRESHの設定は、ALTER CACHE GROUPコマンドを使用することによって、キャッシュ・グループが作成された後で変更できます。

キャッシュ・グループをAUTOREFRESHまたはPROPAGATEに指定した後は、これらの属性を変更することはできません。

NOT PROPAGATE句とAUTOREFRESH文を同時に使用することはできません。

キャッシュ・グループのレプリケート時には、特定の要件と制限があります。『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』のキャッシュ・グループのレプリケーションに関する項を参照してください。

##### 例13.23

READONLYキャッシュ・グループを作成します。

    CREATE READONLY CACHE GROUP CustomerOrders
    AUTOREFRESH INTERVAL 10 MINUTES
    FROM
    CUSTOMER (CUSTID INT NOT NULL,
     NAME CHAR(100) NOT NULL,
     ADDR CHAR(100),
     ZIP INT,
     REGION CHAR(10),
     PRIMARY KEY(CUSTID)),
    ORDERTAB (ORDERID INT NOT NULL,
     CUSTID INT NOT NULL,
     PRIMARY KEY (ORDERID),
     FOREIGN KEY (CUSTID) REFERENCES CUSTOMER(CUSTID));

##### 例13.24

ASYNCHROUS WRITETHROUGHキャッシュ・グループを作成します。

    CREATE ASYNCHRONOUS WRITETHROUGH cache group Customers
    FROM
    CUSTOMER (CUSTID INT NOT NULL,
     NAME CHAR(100) NOT NULL,
     ADDR CHAR(100),
     ZIP INT,
     PRIMARY KEY(CUSTID));

##### 例13.25

SYNCHRONOUS WRITETHROUGHキャッシュ・グループを作成します。

    CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP Customers
    FROM
    CUSTOMER (CUSTID INT NOT NULL,
     NAME CHAR(100) NOT NULL,
     ADDR CHAR(100),
     ZIP INT,
     PRIMARY KEY(CUSTID));

##### 例13.26

USERMANAGEDキャッシュ・グループを作成します。

    CREATE USERMANAGED CACHE GROUP UpdateAnywhereCustomers
    AUTOREFRESH
     MODE INCREMENTAL
     INTERVAL 30 SECONDS
     STATE ON
    FROM
    CUSTOMER (CUSTID INT NOT NULL,
     NAME CHAR(100) NOT NULL,
     ADDR CHAR(100),
     ZIP INT,
     PRIMARY KEY(CUSTID),
     PROPAGATE);

参照

ALTER CACHE GROUP
DROP CACHE GROUP
FLUSH CACHE GROUP
UNLOAD CACHE GROUP