ALTER CACHE GROUP文を使用して、AUTOREFRESHの状態、時間隔およびモードを変更できます。
AUTOREFRESHを使用すると、Oracle表での更新をTimesTenキャッシュ・グループに伝播できます。 AUTOREFRESHは、キャッシュ・グループがユーザー管理キャッシュ・グループであるか、またはAUTOREFRESH句でREADONLYとして定義されている場合に有効にできます。
ALTER CACHE GROUPを使用して設定した任意の値または状態は永続的です。 それらの設定はデータ・ストアに保存されるため、デーモンやキャッシュ・エージェントを再起動した場合にも引き続き使用されます。
キャッシュ・グループの種類については、「ユーザー管理キャッシュ・グループおよびシステム管理キャッシュ・グループ」を参照してください。
必要な権限
キャッシュ・グループの所有者に必要な権限はありません。
別のユーザーのキャッシュ・グループの場合はALTER ANY CACHE GROUPが必要です。
SQL構文
この文は、キャッシュ・グループのAUTOREFRESHモードを変更します。これによって、自動リフレッシュ操作中に更新される行が決まります。
ALTER CACHE GROUP [Owner.]GroupName SET AUTOREFRESH MODE {INCREMENTAL | FULL}
この文は、キャッシュ・グループのAUTOREFRESHの時間隔を変更します。
ALTER CACHE GROUP [Owner.]GroupName SET AUTOREFRESH INTERVAL IntervalValue {MINUTE[S] | SECOND[S] | MILLISECOND[S] }
この文は、AUTOREFRESHの状態を変更します。
ALTER CACHE GROUP [Owner.]GroupName SET AUTOREFRESH STATE {ON | OFF | PAUSED}
パラメータ
ALTER CACHE GROUPには、次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
[Owner.]GroupName |
新しいキャッシュ・グループに割り当てられる名前。 |
AUTOREFRESH |
Oracle表への変更を自動的にTimesTenに伝播するように指定します。 詳細は、「キャッシュ・グループのAUTOREFRESH」を参照してください。 |
MODE |
自動リフレッシュ時に更新されるキャッシュ内の行を指定します。INCREMENTAL句が指定された場合、TimesTenは前回の伝播以降にOracleに加えられた変更のみをリフレッシュします。FULL句が指定された場合、またはFULL句もINCREMENTAL句も指定されなかった場合、TimesTenは自動リフレッシュのたびにキャッシュ内のすべての行を更新します。デフォルトのモードはINCREMENTALです。 |
INTERVAL
|
自動リフレッシュを行う時間隔を分、秒またはミリ秒の単位で指定します。AUTOREFRESHを実行する頻度を分、秒またはミリ秒単位の整数値で指定します。デフォルト値は10分です。指定した時間隔でAUTOREFRESHを完了できない場合は、実行時に警告が生成され、現在の処理が終了するまで次回のAUTOREFRESHを待機します。待機キューが10に達すると、サポート・ログに通知メッセージが生成されます。 |
STATE |
AUTOREFRESHをオン、オフまたは一時停止のいずれかに変更します。デフォルトでは、AUTOREFRESH STATEはオンです。 |
ON |
指定した時間隔でAUTOREFRESHが実行されるようにスケジュールします。 |
OFF |
スケジュールされたAUTOREFRESHを取り消します。TimesTenでは、INCREMENTALリフレッシュに必要な情報が保持されません。このため、後でAUTOREFRESHを再度オンにしても、最初のリフレッシュはFULLになります。 |
PAUSED |
スケジュールされたAUTOREFRESHを取り消しますが、TimesTenではINCREMENTALリフレッシュに必要な情報が保持されます。このため、後でAUTOREFRESHを再度オンに設定した場合、完全リフレッシュは不要です。 |
説明
リフレッシュは、ALTER CACHE GROUP...SET AUTOREFRESH STATEを実行した直後には実行されません。この文では、AUTOREFRESHの状態を変更するだけです。 ALTER CACHE GROUP文を含むトランザクションをコミットすると、AUTOREFRESHのスケジュールのためにキャッシュ・エージェントにはすぐに通知されますが、コミットはリフレッシュの完了を待たずに実行されます。 自動リフレッシュ操作のスケジューリングはトランザクションの一部ですが、リフレッシュ自体はトランザクションの一部ではありません。
ALTER CACHE GROUP... SET AUTOREFRESH STATE OFF文を実行し、現在実行中の自動リフレッシュ操作がある場合、次のような結果になります。
LockWaitの時間隔が0の場合、ALTER文はロックのタイムアウト・エラーで失敗します。
LockWaitの時間隔が0以外の場合、現在の自動リフレッシュ・トランザクションはロールバックされ、ALTER文の処理が続行されます。これは、同じ自動リフレッシュ間隔を持つすべてのキャッシュ・グループに影響します。
AUTOREFRESHが設定されたキャッシュ・グループとされていないキャッシュ・グループの間では、レプリケートできません。
ALTER CACHE GROUP文がレプリケートされているトランザクションの一部である場合、およびレプリケーション・スキームにRETURN TWOSAFE属性が指定されている場合、トランザクションは失敗する可能性があります。
関連項目