キャッシュ・グループの完全自動リフレッシュの無効化

パフォーマンスが問題である場合は、DisableFullAutorefreshキャッシュ構成パラメータを1に設定して、増分自動リフレッシュで定義されたすべてのキャッシュ・グループに対する完全自動リフレッシュ・リクエストを禁止できます。

完全自動リフレッシュを許可しない場合は、初期ロードに完全リフレッシュが必要であるため、各キャッシュ・グループの初期ロードに手動ロードが必要です。

TimesTen ClassicおよびTimesTen Scaleoutの両方のDisableFullAutorefreshキャッシュ構成パラメータを使用して、完全自動リフレッシュを無効にできます。

ノート:

DisableFullAutorefreshキャッシュ構成パラメータのデフォルト値は0で、完全自動リフレッシュ動作を指定します。完全自動リフレッシュは、TimesTen Classicでのみサポートされています。

call ttCacheConfig('DisableFullAutorefresh',,,'1');

DisableFullAutorefreshパラメータの現在の値を問い合せることができます。

call ttCacheConfig('DisableFullAutorefresh');

キャッシュ・グループに対して完全自動リフレッシュがトリガーされると、TimesTenによってキャッシュ・グループのステータスが「disabled」に変更されます。その後、キャッシュ・グループでの自動リフレッシュ操作はすべて停止します。このアクションは、デーモン・ファイルとユーザー・ログ・ファイルの両方にログインすると、メッセージで通知されます。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』「エラー、警告および情報メッセージ」を参照してください。

TimesTenデータベース・ステータスは、少なくとも1つのキャッシュ・グループの自動リフレッシュ・ステータスがdisabledまたはrecoveringに設定されている場合、recoveringに設定されます。データベースおよびキャッシュ・グループの状態は、ttCacheDbCgStatus組込みプロシージャを使用して確認できます。次に例を示します。

  • recovering: AUTOREFRESH属性が指定された、データベースのキャッシュ・グループの一部またはすべてがOracle Databaseサーバーと再同期化中です。少なくとも1つのキャッシュ・グループの状態がrecoveringです。

  • disabled: cg1キャッシュ・グループは「disabled」です。

Command> call ttCacheDbCgStatus('ttuser','cg1');
< recovering, disabled >
1 row found.

DisableFullAutorefreshキャッシュ構成パラメータを1に設定すると、DeadDbRecoveryキャッシュ構成パラメータが自動的に「Manual」に変更されます。DisableFullAutorefreshキャッシュ構成パラメータを0に変更すると、TimesTenはDeadDbRecoveryキャッシュ構成パラメータの元の設定をリストアします。

キャッシュ・グループの自動リフレッシュ・ステータスが「disabled」または「dead」である場合、そのキャッシュ表はキャッシュされたOracle Database表に対する更新がコミットされても、もう自動的にリフレッシュされません。キャッシュ表をキャッシュされたOracle Database表と再同期化するには、キャッシュ・グループをリカバリする必要があります。

  • 自動リフレッシュ・ステータスが「disabled」になっている各キャッシュ・グループに対して自動リフレッシュ操作を再開するには、REFRESH CACHE GROUP文を発行する必要があります。

  • 自動リフレッシュ・ステータスが「disabled」になっている各動的キャッシュ・グループに対して自動リフレッシュ操作を再開するには、UNLOAD CACHE GROUP文を発行する必要があります。

  • キャッシュ・グループの自動リフレッシュ・ステータスがdeadの場合にリカバリを指定する方法の詳細は、「TimesTenデータベースでの自動リフレッシュ処理の失敗による影響」を参照してください。

次の例では、無効なキャッシュ・グループを手動でリフレッシュするステップを示します。

  1. ALTER CACHE GROUP SET AUTOREFRESH STATE PAUSED文を使用して、キャッシュ・グループの自動リフレッシュを一時停止し、キャッシュ・グループのステータスを「OK」に戻します。

  2. REFRESH CACHE GROUP文を使用して手動で完全リフレッシュをリクエストします(オプションでパラレル伝播を使用)。

ALTER CACHE GROUP cg_static SET AUTOREFRESH STATE PAUSED;
REFRESH CACHE GROUP cg_static COMMIT EVERY 500 ROWS PARALLEL 2;

動的キャッシュ・グループをリロードするには、次の手順を実行します。

  1. キャッシュ・グループのステータスを「OK」に戻すには、ALTER CACHE GROUP SET AUTOREFRESH STATE PAUSED文を使用してキャッシュ・グループの自動リフレッシュを一時停止します。

  2. 無効化された動的キャッシュ・グループを、UNLOAD CACHE GROUP文を使用してアンロードします。

  3. オプションで、LOAD CACHE GROUP文を使用して(オプションでパラレル伝播を使用)キャッシュ・グループをロードするか、動的ロードを開始できます。「動的キャッシュ・グループ」を参照してください。

次の例では、cg動的キャッシュ・グループをリロードします。

ALTER CACHE GROUP cg_dynamic SET AUTOREFRESH STATE PAUSED;
UNLOAD CACHE GROUP cg_dynamic COMMIT EVERY 500 ROWS;
LOAD CACHE GROUP cg_dynamic COMMIT EVERY 500 ROWS PARALLEL 2;