非同期ライトスルー(AWT)キャッシュ・グループ

非同期ライトスルー(AWT)キャッシュ・グループでは、TimesTenキャッシュ表にコミットされた変更が、キャッシュされたOracle Database表に非同期で自動的に伝播されるというキャッシュ動作が実行されます。

図4-6を参照してください。

AWTキャッシュ・グループをサポートしているのは、TimesTen Classicのみです。

ノート:

AWTキャッシュ・グループにキャッシュされているOracle Database表では、DML文を実行することは避けてください。実行すると、エラー状態になる場合があります。「AWTキャッシュ・グループの使用の制限」を参照してください。

図4-6 AWTキャッシュ・グループ

図4-6の説明が続きます。
「図4-6 AWTキャッシュ・グループ」の説明

TimesTenデータベースでのトランザクションのコミットは、Oracle Databaseでのコミットと非同期に実行されます。これにより、アプリケーションはOracle Databaseトランザクションの完了を待機することなく、継続してTimesTenデータベースに対してトランザクションを発行できます。ただし、アプリケーションでは、Oracle Database上でトランザクションが完了するタイミングを確認できません。

AWTキャッシュ・グループ内のキャッシュ表は、Oracle Databaseが利用できない場合も更新できます。Oracle Databaseが処理を再開すると、Oracle Databaseが利用できなかった間にキャッシュ表でコミットされた更新が、キャッシュされたOracle Database表に自動的に伝播されます。

ノート:

TimesTenでAWTキャッシュ・グループの処理を管理する場合、ttCacheUidPwdSet組込みプロシージャで設定されているOracleキャッシュ管理ユーザーの名前およびパスワードを使用してOracleデータベースに接続します。ttCacheUidPwdSetの詳細は、「キャッシュ管理ユーザーの名前およびパスワードの登録」を参照してください。

AWTキャッシュ・グループはTimesTenデータベースからOracle Databaseにデータを伝播するため、Oracle Databaseのキャッシュ表でユーザーが変更したデータは、Oracle DatabaseからTimesTenデータベースに自動的にはアップロードされません。この場合、REFRESH CACHE GROUP SQL文を手動で実行して、Oracle Databaseに対する変更がTimesTenデータベースに転送されるようにする必要があります。

AWTキャッシュ・グループに対するREFRESH CACHE GROUP文またはUNLOAD CACHE GROUP文の処理では、TimesTenデータベースで変更された行の更新がOracle Databaseに伝播されるまで待機します。

Oracle Databaseの場合:

次に、AWTキャッシュ・グループにキャッシュされるOracle Database表の定義の例を示します。Oracle Database表は、スキーマ・ユーザーsalesが所有しています。

CREATE TABLE customer
(cust_num NUMBER(6) NOT NULL PRIMARY KEY,
 region   VARCHAR2(10),
 name     VARCHAR2(50),
 address  VARCHAR2(100));

キャッシュされた表がAWTキャッシュ・グループの一部である場合は、キャッシュされた表に対するSELECTINSERTUPDATEおよびDELETE権限がOracleキャッシュ管理ユーザーに付与されている必要があります。この例では、表はsales.customer表です。

様々なアクティビティに必要なすべての権限は、「キャッシュ処理のキャッシュ管理ユーザーに必要な権限」を参照してください。

Oracle Databaseで、管理者として次の権限を付与します:

SQL> GRANT SELECT, INSERT, UPDATE, DELETE ON sales.customer TO cacheadmin;

TimesTenデータベースの場合:

TimesTenキャッシュ管理ユーザーとして接続します。AWTキャッシュ・グループを作成するには、CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP文を使用します。

次の文では、sales.customer表をキャッシュするAWTキャッシュ・グループnew_customersが作成されます:

CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP new_customers
FROM sales.customer
 (cust_num NUMBER(6) NOT NULL,
  region   VARCHAR2(10),
  name     VARCHAR2(50),
  address  VARCHAR2(100),
  PRIMARY KEY(cust_num));

次の各項では、AWTキャッシュ・グループの構成、動作および管理について説明します。