AUTOREFRESH属性は、READONLYおよびUSERMANAGEDキャッシュ・グループに対するオプションの属性です。
AUTOREFRESHは、Oracle表に対して行われた変更を自動的にTimesTenキャッシュに適用します。
TimesTenでは、2つのAUTOREFRESHモードがサポートされています。
デフォルトでは、次のようになります。
自動リフレッシュ間隔が同じキャッシュ・グループは、同時にリフレッシュされます。
AUTOREFRESHをINCREMENTALモードで使用すると、Oracleへの更新ごとにキャッシュ・グループをリフレッシュするために、追加のオーバーヘッドが発生します。AUTOREFRESHをFULLモードで使用すると、追加のオーバーヘッドは発生しません。
AUTOREFRESH属性を指定したキャッシュ・グループを作成する前に、ttCacheUidPwdSet組込みプロシージャ、または-cacheUidPwdSet
オプションを指定したttAdminユーティリティを使用して、キャッシュ管理ユーザーIDおよびパスワードを設定します。キャッシュ管理ユーザーは、Oracleでトリガーを作成するため、AUTOREFRESH属性を指定したREADONLYキャッシュ・グループおよびUSERMANAGEDキャッシュ・グループについては、表4.1に示されているOracle権限が必要です。
キャッシュ管理ユーザーIDおよびパスワードは、データ・ストアごとに1回のみ設定する必要があります。データ・ストアが上書きまたは破壊された場合は、キャッシュ管理ユーザーIDおよびパスワードを再設定する必要があります。
CREATE CACHE GROUP文を使用してキャッシュ・グループを作成する場合、AUTOREFRESHを指定できます。キャッシュ・グループの作成後、ALTER CACHE GROUPを使用して、MODE、STATE、INTERVALの設定を変更できます。AUTOREFRESH属性を指定せずに作成されたキャッシュ・グループに対して、ALTER CACHE GROUP文を使用してAUTOREFRESHをインスタンス化することはできません。
AUTOREFRESHの実行頻度はそのINTERVAL値で決まります。CREATE CACHE GROUPまたはALTER CACHE GROUP文を使用して、AUTOREFRESH STATEをON、OFFまたはPAUSEDに設定できます。STATEがONに設定されているトランザクションをコミットすると、TimesTenによってAUTOREFRESHがスケジュールされます。
STATEがOFFに設定されている場合、Oracle表への変更は取得も記録もされません。STATEがPAUSEDの場合、Oracle表への変更は、Oracleでは取得および記録されますが、TimesTenキャッシュ・グループの表には適用されません。
AUTOREFRESH処理の実行中に、STATEをOFFに変更しようとしたり、キャッシュ・グループを削除しようとすると、次のようになります。
AUTOREFRESHをINCREMENTALモードで使用すると、Oracleで行われた変更は、変更ログ表に保持されます。特定の環境下では、トランザクション内のレコードの一部が、TimesTenキャッシュ・グループに適用される前に変更ログ表からパージされる可能性があります。このような状況が発生すると、Cache Connect to Oracleはキャッシュ・グループの完全自動リフレッシュを開始します。レコードが変更ログ表からパージされる原因については、『Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド』の増分自動リフレッシュが完全自動リフレッシュになる場合に関する説明を参照してください。
AUTOREFRESHを使用する場合は、次の制限が適用されます。
AUTOREFRESH属性を指定したUSERMANAGEDキャッシュ・グループの例は、例2.1を参照してください。