キャッシュ・グループの完全自動リフレッシュの無効化
パフォーマンスが問題である場合は、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データベースでの自動リフレッシュ処理の失敗による影響」を参照してください。
次の例では、無効なキャッシュ・グループを手動でリフレッシュするステップを示します。
-
ALTER CACHE GROUP SET AUTOREFRESH STATE PAUSED
文を使用して、キャッシュ・グループの自動リフレッシュを一時停止し、キャッシュ・グループのステータスを「OK」
に戻します。 -
REFRESH CACHE GROUP
文を使用して手動で完全リフレッシュをリクエストします(オプションでパラレル伝播を使用)。
ALTER CACHE GROUP cg_static SET AUTOREFRESH STATE PAUSED; REFRESH CACHE GROUP cg_static COMMIT EVERY 500 ROWS PARALLEL 2;
動的キャッシュ・グループをリロードするには、次の手順を実行します。
-
キャッシュ・グループのステータスを
「OK」
に戻すには、ALTER CACHE GROUP SET AUTOREFRESH STATE PAUSED
文を使用してキャッシュ・グループの自動リフレッシュを一時停止します。 -
無効化された動的キャッシュ・グループを、
UNLOAD CACHE GROUP
文を使用してアンロードします。 -
オプションで、
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;