「TimesTenおよびOracleの設定」の説明に従ってTimesTenおよびOracleを設定した後、キャッシュ・グループを作成できます。
この項では、Oracleデータベースの単一の表の内容をキャッシュする、単純なREADONLYキャッシュ・グループの作成方法について説明します。キャッシュ・グループは複数の表で構成できますが、ここでは、わかりやすくするために、1つのOracle表のみをキャッシュする例を示します。
図2.1に、1つのOracle表をキャッシュするREADONLYキャッシュ・グループを示します。
単純なREADONLYキャッシュ・グループを作成するには、次の手順を実行します。
新しいOracleアカウントに接続し、表を作成します。
sqlplus testuser/mypsswrd@system1
SQL> CREATE TABLE readtab (a NUMBER NOT NULL PRIMARY KEY,
b VARCHAR2(31));
次に、数行挿入して変更をコミットします。
SQL> INSERT INTO readtab VALUES (1, 'hello');
1 row created.
SQL> INSERT INTO readtab VALUES (2, 'world');
1 row created.
SQL> COMMIT;
Commit completed.
ttIsqlユーティリティを使用してcgDSN
データ・ストアに接続します。コマンド・プロンプトで、ttCacheUidPwdSetプロシージャを使用してキャッシュ管理ユーザーIDおよびパスワードをパラメータとして渡します。その後、ttCacheStartプロシージャをコールしてデータ・ストアのキャッシュ・エージェントを起動します。この例では、キャッシュ管理ユーザーIDはtestuser
、パスワードはmypsswrd
です。
> ttIsql cgDSN
Command> call ttCacheUidPwdSet('testuser','mypsswrd');
Command> call ttCacheStart;
注意: | この例では、キャッシュ管理ユーザーのIDおよびパスワードはOracleのユーザー名およびパスワードと同じです。ただし、Oracleユーザー・アカウントがOracleからの自動リフレッシュに必要な権限を持っていないため、別のキャッシュ管理ユーザー・アカウントを指定する必要がある場合があります。キャッシュ管理ユーザーIDおよびパスワードは、データ・ストアに対して1回のみ設定する必要があります。詳細は、「Oracleユーザーの作成および権限の設定」を参照してください。 |
次に、CREATE CACHE GROUP文を使用して、readcache
というREADONLYキャッシュ・グループを作成し、TimesTenにOracle表readtab
の内容をキャッシュします。
Command> CREATE READONLY CACHE GROUP readcache
> AUTOREFRESH INTERVAL 5 SECONDS
> FROM readtab
>(a NUMBER NOT NULL PRIMARY KEY, b VARCHAR2(31));
Oracle表の内容をキャッシュ・グループ表にロードします。
Command> LOAD CACHE GROUP readcache COMMIT EVERY 256 ROWS;
2 cache instances affected.
readtab
表の内容を確認します。
Command> SELECT * FROM readtab;
< 1, hello >
< 2, world >
2 rows found
ttIsql cachegroups
コマンドを使用して、READCACHEキャッシュ・グループの定義を確認します。
Command> cachegroups;
Cache Group TESTUSER.READCACHE:
Cache Group Type: Read Only
Autorefresh: Yes
Autorefresh Mode: Incremental
Autorefresh State: On
Autorefresh Interval: 5 Seconds
Root Table: TESTUSER.READTAB
Table Type: Read Only
1 cache group found.
SQL*Plusを使用して、数行をREADTABに挿入し、変更をコミットします。
SQL> INSERT INTO readtab VALUES (3, 'Hello');
1 row created.
SQL> INSERT INTO readtab VALUES (4, 'Again');
1 row created.
SQL> COMMIT;
Commit completed.
5秒後に、TimesTenは、Oracleからキャッシュされたデータを自動的にリフレッシュします。ttIsqlで、READTAB表の内容を確認します。
Command> SELECT * FROM readtab;
< 1, hello >
< 2, world >
< 3, Hello >
< 4, Again >
4 rows found
TimesTenウィンドウで、DROP CACHE GROUP文を使用してTimesTenデータ・ストアからキャッシュ・グループを削除します。
Command> DROP CACHE GROUP readcache;
ttCacheStopプロシージャをコールして、データ・ストアのキャッシュ・エージェントを停止します。
Command> call ttCacheStop;