ASYNCHRONOUS WRITETHROUGH(AWT)キャッシュ・グループでは、TimesTenでキャッシュ・データを更新し、Oracleに伝播するというSWTキャッシュ・グループの場合と同様のキャッシュ動作が実行されます。TimesTenコミットはOracleコミットとは非同期に発生するため、AWTキャッシュ・グループのレスポンス時間はSWTキャッシュ・グループより短縮されます。これによって、アプリケーションは、Oracleトランザクションのコミットを待機することなく継続して実行できます。AWTキャッシュ・グループは、Oracleデータベースの停止時に更新することもできます。これらの更新は、Oracleデータベースでの処理を再開すると、Oracleデータベースに適用されます。
図2.10に、TimesTenキャッシュ・グループの更新がOracleに非同期にレプリケートされる様子を示します。
AWTキャッシュ・グループでは、キャッシュ・グループが含まれているデータ・ストアのキャッシュ・エージェントとレプリケーション・エージェントの両方を起動する必要があります。キャッシュ・エージェントによって、キャッシュをロードおよびリフレッシュできます。キャッシュをアンロードする場合、キャッシュ・エージェントが稼働している必要はありません。
AWTキャッシュ・グループは、CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP文によって作成されます。
AWTキャッシュ・グループを使用するには、「Oracleユーザーの作成および権限の設定」に示されているOracle権限が必要です。また、キャッシュ・エージェントおよびレプリケーション・エージェントを起動する前に、ttCacheUidPwdSetプロシージャを使用してキャッシュ管理ユーザーIDおよびパスワードを設定する必要があります。詳細は、「AWTキャッシュ・グループのレプリケーション・エージェントの起動」を参照してください。
AWTキャッシュ・グループを使用すると、トランザクションはTimesTenとOracleで非同期にコミットされます。このため、アプリケーションでは、変更がOracleにコミットされるタイミングを特定できません。
この項の後半では、次の内容について説明します。
AWTキャッシュ・グループでは、次のことが保証されます。
AWTキャッシュ・グループでは、次のことが保証されません。
「SWTキャッシュ・グループの使用の制限」で説明されているSWTキャッシュ・グループの制限は、AWTキャッシュ・グループにも適用されます。
AWTキャッシュ・グループにのみ、次の追加の制限があります。
この例では、単一表customerに対して、customersというASYNCHRONOUS WRITETHROUGHキャッシュ・グループを作成します。
CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP customers
FROM
user1.customer (custid INTEGER NOT NULL,
name VARCHAR2(100) NOT NULL,
addr VARCHAR2(100),
zip VARCHAR2(10),
PRIMARY KEY(custid));
TimesTenでAWTをサポートするには、Oracleに状態表を作成する必要があります。この表は、状態およびOracleに適用された最後のトランザクションを追跡するために使用されます。この表は、CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP文によって自動的に作成されます。「READONLY、AUTOREFRESHおよびAWTキャッシュ・グループのOracleオブジェクトの管理」を参照してください。
Oracle表は、AWTキャッシュ・グループを作成する前に手動で作成することもできます。「Oracleオブジェクトの手動インストール」を参照してください。
AWTキャッシュ・グループを設定する場合は、次の手順を実行します。
ttCacheUidPwdSet組込みプロシージャまたは-cacheUidPwdSet
オプションを指定したttAdminユーティリティを使用して、キャッシュ管理ユーザーIDおよびパスワードを設定します。
キャッシュ管理ユーザーは、変更をOracleに適用します。キャッシュ管理ユーザー・アカウントには、表4.1のCREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUPに示すOracle権限が必要です。
キャッシュ管理ユーザーIDおよびパスワードは、データ・ストアごとに1回のみ設定する必要があります。データ・ストアが上書きまたは破壊された場合は、キャッシュ管理ユーザーIDおよびパスワードを再設定する必要があります。
CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP SQL文を使用します。
「キャッシュ・エージェントの起動および停止」を参照してください。
「AWTキャッシュ・グループのレプリケーション・エージェントの起動」を参照してください。
AWTキャッシュ・グループを作成すると、データ・ストアでOracleデータベースと通信できるレプリケーション・スキームが自動的に作成されます。このレプリケーション・スキームは、TimesTenによって完全に管理され、ユーザーが介入する必要はありません。このレプリケーション・スキームは、DROP CACHE GROUPを使用してAWTキャッシュ・グループを削除すると削除されます。
キャッシュ・グループをロードする前にレプリケーション・エージェントを起動する必要はありませんが、最初にレプリケーション・エージェントを起動しておくと、パフォーマンスが向上します。
LOAD CACHE GROUP文を使用します。