ALTER CACHE GROUP

ALTER CACHE GROUP文は、キャッシュ・グループに対するAUTOREFRESHの状態、時間隔およびモードを変更します。

Oracle Database表の更新は、AUTOREFRESHを使用してTimesTenキャッシュ・グループに伝播させることができます。AUTOREFRESHは、キャッシュ・グループがユーザー管理キャッシュ・グループであるか、またはAUTOREFRESH句でREADONLYとして定義されている場合に有効にできます。

ALTER CACHE GROUPを使用して設定した任意の値または状態は永続的です。それらの設定はデータベースに保存されるため、デーモンやキャッシュ・エージェントを再起動した場合にも引き続き使用されます。

必要な権限

キャッシュ・グループの所有者に必要な権限はありません。

別のユーザーのキャッシュ・グループの場合はALTER ANY CACHE GROUPが必要です。

TimesTen Scaleoutでの使用

この文は、TimesTen Scaleoutでサポートされています。

SQL構文

この文は、キャッシュ・グループのAUTOREFRESHモードを変更し、これによって、自動リフレッシュ操作中に更新される行が決まります。ALTER CACHE GROUP...SET AUTOREFRESH MODE句は、TimesTen Scaleoutでは使用できません。

ALTER CACHE GROUP [Owner.]CacheGroupName
        SET AUTOREFRESH MODE
        {INCREMENTAL | FULL}

この文は、キャッシュ・グループのAUTOREFRESHの時間隔を変更します。ALTER CACHE GROUP...SET AUTOREFRESH INTERVAL句は、TimesTen Scaleoutでは使用できません。

ALTER CACHE GROUP [Owner.]CacheGroupName 
        SET AUTOREFRESH INTERVAL IntervalValue 
        {MINUTE[S] | SECOND[S] | MILLISECOND[S]}

この文は、AUTOREFRESHの状態を変更します。

ALTER CACHE GROUP [Owner.]CacheGroupName 
        SET AUTOREFRESH STATE
        {ON | OFF | PAUSED}

パラメータ

パラメータ 説明

[Owner.]CacheGroupName

新しいキャッシュ・グループに割り当てられる名前。

AUTOREFRESH

Oracle Database表への変更を自動的にTimesTenに伝播するように指定します。

MODE

自動リフレッシュ時に更新されるキャッシュ内の行を指定します。INCREMENTAL句が指定された場合、TimesTenは前回の伝播以降にOracle Databaseに加えられた変更のみをリフレッシュします。FULL句が指定された場合、またはFULL句もINCREMENTAL句も指定されなかった場合、TimesTenは自動リフレッシュのたびにキャッシュ内のすべての行を更新します。デフォルトのモードはINCREMENTALです。

INTERVAL

IntervalValue

AUTOREFRESHを実行する頻度を分、秒またはミリ秒単位の整数値で指定します。デフォルト値は5分です。自動リフレッシュ間隔を0ミリ秒に設定すると、連続的な自動リフレッシュが可能になり、最後の自動リフレッシュ・サイクルが終了した直後に次の自動リフレッシュ・サイクルがスケジュールされます。詳細は、『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』「キャッシュ・グループの自動リフレッシュ」を参照してください。

指定した時間隔でAUTOREFRESHを完了できない場合は、実行時に警告が生成され、現在の処理が終了するまで次回のAUTOREFRESHを待機します。待機キューが10に達すると、サポート・ログに通知メッセージが生成されます。

STATE

AUTOREFRESHをオン、オフまたは一時停止のいずれかに変更します。デフォルトでは、AUTOREFRESH STATEONです。

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が設定されたキャッシュ・グループとAUTOREFRESHが設定されていないキャッシュ・グループの間では、レプリケートできません。

  • ALTER CACHE GROUP文がレプリケートされているトランザクションの一部である場合、およびレプリケーション・スキームにRETURN TWOSAFE属性が指定されている場合、トランザクションは失敗する可能性があります。

  • ALTER CACHE GROUP文はシリアライズ可能分離レベルでは実行できません。実行しようとするとエラー・メッセージが返されます。

関連項目