AUTOREFRESHパラメータは、Oracleデータベースの変更をTimesTenキャッシュに自動的に伝播します。デフォルトでは、システム管理キャッシュ・グループは、自動的にOracleデータベースからTimesTenキャッシュに変更を伝播します。AUTOREFRESHパラメータは、システム管理キャッシュ・グループでは使用できません。キャッシュ・グループのタイプの詳細は、「ユーザー管理キャッシュ・グループおよびシステム管理キャッシュ・グループ」を参照してください。
TimesTenでは、FULLまたはINCREMENTALがサポートされています。FULLモードでは、キャッシュ全体が定期的にアンロードされてから再ロードされています。INCREMENTALモードでは、Oracleデータベースにトリガーがインストールされて、変更が追跡され、Oracleで変更された行のみが定期的に更新されています。次のようにPAUSED状態を使用する場合を除き、最初の増分リフレッシュは、常に完全リフレッシュになります。デフォルトのモードはINCREMENTALです。
Oracle表のほとんどの行が変更されている場合は、FULL AUTOREFRESHがより有効です。変更が少ない場合は、INCREMENTAL AUTOREFRESHがより有効です。
AUTOREFRESHは、AUTOREFRESHが指定された文を含むトランザクションがコミットされた場合に、TimesTenによってスケジュールされます。AUTOREFRESHをスケジュールする文は、次のとおりです。
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開発者および管理者ガイド』のキャッシュ・グループのレプリケーションに関する項を参照してください。
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));
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));
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));
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