動的読取り専用キャッシュ・グループを使用した動的ロードの検証

読取り専用キャッシュ・グループに対して変更が自動的に更新される方法を次に示します。

Oracleデータベースの場合:

  1. 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表に対するコミット済の変更が反映されます。

  1. TimesTenキャッシュ管理ユーザーとして、ttIsqlユーティリティを使用してTimesTenデータベースに接続します。

    % ttIsql "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet"
  2. 次のように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に変更します。

  3. この例では、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キャッシュ・ガイド』キャッシュの概念および動的キャッシュ・グループを参照してください。