ヘッダーをスキップ
Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド
リリース7.0
E05172-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

SYNCHRONOUS WRITETHROUGH(SWT)キャッシュ・グループ

SYNCHRONOUS WRITETHROUGH(SWT)キャッシュ・グループでは、TimesTenでキャッシュ・データを更新し、Oracleに伝播するというキャッシュ動作が実行されます。CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP文によってSWTキャッシュ・グループを作成した場合は、キャッシュ・グループの作成後にキャッシュ・グループの内容をOracle表から手動でロードします。SWTキャッシュ・グループの内容は、必要に応じて、手動でロード、アンロードまたはリフレッシュできます。

SWTキャッシュ・グループへの更新は、同期してコミットされます。アプリケーションでトランザクションをコミットすると、OracleでコミットされてからTimesTenでコミットされます。トランザクションがTimesTenでコミットされるまでアプリケーションはブロックされ、表の行でロックが保持されます。

Oracleトランザクションのコミットに失敗した場合、TimesTenトランザクションをロールバックする必要があります。Oracleトランザクションはコミットし、TimesTenトランザクションは失敗した場合、キャッシュ・グループのデータはOracleデータと同期しなくなります。この場合は、手動でキャッシュ・グループをOracleと再同期化する必要があります。これは、ttCachePropagateFlagSetプロシージャをコールして伝播を無効にしてから、TimesTenキャッシュ・グループにトランザクションを再度適用することによって実行できます。別の方法として、Oracleから再度データをロードする方法もあります。

図2.9に、SYNCHRONOUS WRITETHROUGHキャッシュ・グループを示します。

図2.9 SYNCHRONOUS WRITETHROUGHキャッシュ・グループ
SYNCHRONOUS WRITETHROUGHキャッシュ・グループ[テキストの説明]

SWTキャッシュ・グループの使用の制限

SWTキャッシュ・グループを使用する場合は、次の制限が適用されます。

例: SWTキャッシュ・グループの作成

この例では、単一のOracle表vendorに対して、vendorというSYNCHRONOUS WRITETHROUGHキャッシュ・グループを作成します。キャッシュ・グループ内のvendor表への更新は、自動的にOracleに伝播されます。

CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP vendors

FROM

user1.vendor (vendor_id INTEGER NOT NULL,

       vendor_name VARCHAR2(100) NOT NULL,

       contact_name VARCHAR2(100) NOT NULL,

       phone VARCHAR2(15),

       street VARCHAR2(100),

       city VARCHAR2(30),

       state VARCHAR2(30),

       zip VARCHAR2(10),

       PRIMARY KEY(vendor_id));