動的読取り専用キャッシュ・グループを使用した動的ロードの検証
読取り専用キャッシュ・グループに対して変更が自動的に更新される方法を次に示します。
Oracleデータベースの場合:
- Oracleデータベース・スキーマ・ユーザーとしてSQL*Plusを使用して、Oracleデータベース表
customers
の新規行の挿入、既存行の削除および既存行の更新を実行し、これらの変更をコミットします。SQL> INSERT INTO customers VALUES (342, "West", "Jane Stone"); 1 row created. SQL> DELETE FROM customers WHERE cust_num=122; 1 row deleted. SQL> UPDATE customers SET region="East" WHERE cust_num=663; 1 row updated. SQL> COMMIT; Commit complete.
TimesTenデータベースの場合:
動的読取り専用キャッシュ・グループはデフォルトの5分間隔の自動リフレッシュを指定して作成されているため、customer_orders
キャッシュ・グループのsales.customers
キャッシュ表は5分後に自動的にリフレッシュされ、キャッシュされたOracle Database sales.customers
表に対するコミット済の変更が反映されます。
-
TimesTenキャッシュ管理ユーザーとして、
ttIsql
ユーティリティを使用してTimesTenデータベースに接続します。% ttIsql "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet"
-
次のように
ttIsql
cachegroups
コマンドを使用して、customer_orders
キャッシュ・グループの定義を表示します。Command> cachegroups; Cache Group CACHEADMIN.CUSTOMER_ORDERS: Cache Group Type: Read Only (Dynamic) Autorefresh: Yes Autorefresh Mode: Incremental Autorefresh State: Paused Autorefresh Interval: 5 Minutes Autorefresh Status: ok Aging: LRU on Root Table: SALES.CUSTOMERS Table Type: Read Only Child Table: SALES.ORDERS Table Type: Read Only 1 cache group found.
Oracleデータベースで発生したデータ変更を取得し、それらの変更を使用してキャッシュ・データをリフレッシュするTimesTenメカニズムは、自動リフレッシュと呼ばれます。前述の出力では、このメカニズムの状態は現在、作成したキャッシュ・グループに対して
Paused
です。Autorefresh State: Paused
デフォルトでは、増分自動リフレッシュで定義されたすべての読取り専用キャッシュ・グループは一時停止として開始されます。動的ロード・リクエストを実行するか、読取り専用キャッシュ・グループの最初のロードに対して
LOAD CACHE GROUP
文を実行します。動的ロード・リクエストまたは
LOAD CACHE GROUP
は、キャッシュ表を適切に移入し(最初はキャッシュ表は空であるため)、自動リフレッシュ状態をPAUSED
からON
に変更します。 -
この例では、
sales.customers
キャッシュ表から顧客番号342の修飾SQL問合せを使用して動的ロード・リクエストを実行します。これにより、キャッシュされたOracleデータベース表でコミットされた変更を使用して、そのキャッシュ・インスタンスの動的ロードがトリガーされます。Command> SELECT * FROM sales.customers WHERE cust_num=342; < 342, West, Jane Stone > 1 row found.
ノート:
すべての変更は、自動リフレッシュ間隔で自動的にリフレッシュされます。
これは、動的読取り専用キャッシュ・グループの作成方法のクイック・ガイドであるため、動的読取り専用キャッシュ・グループの概念およびオプションをより詳細に理解するには、『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』のキャッシュの概念および動的キャッシュ・グループを参照してください。