ttCacheConfig

同じOracleインスタンスのデータをキャッシュするすべてのキャッシュ・グループに対し、このプロシージャは、Oracle Databaseサーバーが使用不可になっており、キャッシュ・エージェントまたはデータベースが停止しているとみなされる場合の、タイムアウト値とリカバリ・ポリシーを指定します。

データベースとキャッシュ・グループの自動リフレッシュの状態は、プロシージャttCacheDbCgStatusで確認できます。

必要な権限

このプロシージャには、CACHE_MANAGER権限が必要です。

TimesTen ScaleoutおよびTimesTen Classicでの使用

このプロシージャは、TimesTen ClassicとTimesTen Scaleoutの両方でサポートされています。

関連ビュー

このプロシージャには関連ビューはありません。

構文

ttCacheConfig(Param, tblOwner, tblName, Value)

パラメータ

ttCacheConfigには、次のパラメータがあります。

パラメータ 説明

Param

VARCHAR2(50)
NOT NULL

Valueで設定するパラメータを指定します。

  • AgentFailoverTimeout - Oracle RAC環境で作業している場合、TAFタイムアウトの値を分単位で設定します。接続を確立する際にTAFが再試行を行う時間を指定します。デフォルトは4分です。

  • AgentTimeout - キャッシュ・エージェントがOracle Databaseサーバーに接続できないときにデータベースが停止していると宣言されるまでの秒数を指定します。

  • AutoRefreshLogFragmentationWarningPCT - ユーザーに表を圧縮するように警告する前までの表の使用率(パーセント)。デフォルト値は40です。

  • AutorefreshLogMonitorInterval - キャッシュ管理ユーザーの表領域の使用率の計算を実行する頻度の時間間隔(秒単位)を指定します。デフォルト値は300 secondsです。

  • AutoRefreshLogDeFragmentAction - 指定した表の圧縮モード。

  • AutoRefreshLogTblSpaceUsagePCT - キャッシュ管理ユーザーの表領域使用量の警告しきい値を割合で指定します。

  • CacheCommitDurable - メタデータへの自動リフレッシュの変更が永続的にコミットされる方法を指定します。
  • DeadDbRecovery - キャッシュ・エージェントが再起動される場合の自動リフレッシュ・リカバリのタイプを指定します。

  • DisableFullAutorefresh - 完全自動リフレッシュ動作を無効または有効にします。デフォルトは0で、完全自動リフレッシュが有効であることを意味します。値1は、完全自動リフレッシュが無効であることを示します。

  • TblSpaceFullRecovery - キャッシュされたOracle Database表が更新され、キャッシュ管理ユーザーの表領域に空きがない場合に、TimesTenで実行するアクションを指定します。

tblOwner

VARCHAR2(30)

キャッシュされたOracle Database表の所有者を指定します。

このパラメータは、ParamTblspaceFullRecoveryに設定されている場合は必須です。Paramの他の値にはtblOwnerを指定しないでください。

表名の指定にシノニムは使用できません。

tblName

VARCHAR2(30)

キャッシュされたOracle Database表の名前を指定します。

このパラメータは、ParamTblspaceFullRecoveryに設定されている場合は必須です。Paramの他の値にはtblOwnerを指定しないでください。

表名の指定にシノニムは使用できません。

Value

VARCHAR2(200)

Paramに設定する値を指定します。

  • ParamAgentFailoverTimeoutの場合、Oracle RAC環境で作業中に接続を確立する際にTAFが再試行されるまでの時間(分)を指定します。デフォルトは4分です。

  • ParamAgentTimeoutの場合、キャッシュ・エージェントがOracle Databaseサーバーに接続できないときにデータベースが停止していると宣言されるまでの秒数を指定します。デフォルトの0は、データベースが停止していると宣言されないことを意味します。

  • ParamAutoRefreshLogTblSpaceUsagePCTの場合、0から100の値になります。デフォルトの0は、表領域の使用量に関係なく警告が返されないことを意味します。

  • ParamAutoRefreshLogFragmentationWarningPCTの場合、4番目のパラメータの値は、表のパーセンテージを示す1から100の間の整数である必要があります。デフォルトは40です。

  • ParamAutorefreshLogMonitorIntervalの場合、キャッシュ管理ユーザーの表領域の使用率を計算する際の間隔を秒単位で指定します。デフォルトは300秒です。

  • ParamAutoRefreshLogDeFragmentActionの場合、値はManualCompactOnlyまたはCompactandReclaimになります。Manualが指定されている場合、何も行われません。ユーザーは、ttCacheAutorefreshLogDefrag組込みプロシージャを実行してログをデフラグできます。CompactOnlyが指定された場合には、トリガー・ログ領域が圧縮されます。CompactandReclaimが指定された場合、トリガー・ログ領域とトランザクション・ログ・バッファ(再利用領域)の両方が圧縮されます。デフォルトはManualです。

  • ParamCommitCacheDurableの場合、値は0または1になります。

    値が1 (デフォルト)に設定されている場合、自動リフレッシュ操作では、キャッシュ・グループ表にすべての変更が適用され、永続的にメタデータ(およびトランザクション・ログ・バッファ内のすべての保留中のトランザクション・データ)がコミットされ、Oracle Databaseに格納されている自動リフレッシュ追跡表のガベージ・コレクションが開始されます。

    値が0に設定されている場合、自動リフレッシュ操作ではキャッシュ・グループ表にすべての変更が適用され、非永続的にメタデータがコミットされます。次に、新しいスレッドを起動して、メタデータ(およびトランザクション・ログ・バッファ内のすべての保留中のトランザクション・データ)を永続的にコミットします。ガベージ・コレクションは、メタデータの永続コミットの完了後に、Oracle Databaseに格納されている自動リフレッシュ追跡表に対して開始されます。これにより、永続コミットが完了するまでガベージ・コレクションが遅延されるため、パフォーマンスがわずかに低下します。

  • ParamDeadDbRecoveryの場合、値はNormalManualまたはNoneのいずれかです。Normalは、完全自動リフレッシュを指定します。Manualは、REFRESH CACHE GROUP文を発行する必要があることを指定します。Noneは、キャッシュ・エージェントの起動後に、キャッシュ・グループを削除して再作成する必要があることを指定します。デフォルトはNormalです。詳細は、『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』「TimesTenデータベースでの自動リフレッシュ処理の失敗による影響」を参照してください。

  • ParamTblSpaceFullRecoveryの場合、値はReloadまたはNoneのいずれかです。Reloadは、変更ログ表から行が削除され、完全自動リフレッシュが実行されることを指定します。Noneは、キャッシュされたOracle Database表が更新された場合にOracle Databaseエラーが返されることを指定します。デフォルトはNoneです。

あるいは、AwtErrorXmlOutputによって設定される値を指定します。

  • ASCII - AWTエラー・レポートを含むテキスト・ファイル。(デフォルト)

  • XML - AWTエラー・レポートを含むXMLファイルおよび関連するDTDファイル。

結果セット

ttCacheConfigは、アプリケーションによりパラメータ値の設定に使用される場合、結果を返しません。パラメータ設定を返す目的で使用される場合、ttCacheConfigは次の結果を返します。

Param

VARCHAR2(50)

パラメータ名:

AgentTimeout

AgentFailoverTimeout

AutoRefreshLogTblSpaceUsagePCT

AutoRefreshLogFragmentationWarningPCT

AutorefreshLogMonitorInterval

AutoRefreshLogDeFragmentAction

DeadDbRecovery

DisableFullAutorefresh

TblSpaceFullRecovery

tblOwner

VARCHAR2(30)

キャッシュされたOracle Database表の所有者。

tblName

VARCHAR2(30)

キャッシュされたOracle Database表の名前。

表名の指定にシノニムは使用できません。

Value

VARCHAR2(200)

Paramの値セットを指定します。

  • ParamAgentTimeoutの場合、キャッシュ・エージェントがOracle Databaseサーバーに接続できないときにデータベースが停止していると宣言されるまでの秒数を指定します。

  • ParamAutoRefreshLogTblSpaceUsagePCTの場合、0から100の値になります。

  • ParamAutoRefreshLogFragmentationWarningPCTの場合、0から100の値になります。

  • ParamAutorefreshLogMonitorIntervalの場合、値には整数を使用できます。

  • ParamAutoRefreshLogDeFragmentActionの場合、値はManualCompactOnlyまたはCompactandReclaimです。

  • ParamDeadDbRecoveryの場合、値はNormalまたはManualのいずれかです。

  • ParamTblSpaceFullRecoveryの場合、値はReloadまたはNoneのいずれかです。

キャッシュ・エージェントのタイムアウトを600秒(10分)に設定するには、次のように入力します。

CALL ttCacheConfig('AgentTimeout',,,'600');

キャッシュ・エージェントの現在のタイムアウト設定を確認するには、次のように入力します。

CALL ttCacheConfig('AgentTimeout');
< AgentTimeout, <NULL>, <NULL>, 600 >
1 row found.

自動リフレッシュ状態がdeadのキャッシュ・グループに対して、リカバリ方法をManualに設定するには、次のように入力します。

CALL ttCacheconfig('DeadDbRecovery',,,'Manual');

キャッシュされたOracle Database表に更新があり、キャッシュ管理ユーザーの表領域に空きがない場合に、自動完全リフレッシュを防ぎ、Oracle Databaseエラーを受信するようにTimesTenを構成します。Oracle Database表はterry.customerです。詳細は、『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』「TimesTenデータベースでの自動リフレッシュ処理の失敗による影響」を参照してください。

CALL ttCacheConfig('TblSpaceFullRecovery','terry','customer','None');

キャッシュされたOracle Database表terry.customerTblSpaceFullRecoveryについて現在の設定を確認するには、次のように入力します。

Command> CALL ttCacheConfig('TblSpaceFullRecovery','terry','customer');
< TblSpaceFullRecovery, TERRY, CUSTOMER, none >
1 row found.

キャッシュ管理ユーザーの表領域が85%使用されているときに、キャッシュされたOracle Database表に対する更新処理が発生した場合に警告を受け取るようにするには、次のように入力します。

Command> CALL ttCacheConfig('AutoRefreshLogTblSpaceUsagePCT',,,'85');

TimesTen Classicでは、変更ログ表の断片化の割合が、領域の合計サイズに対する使用済領域の比率として計算されます。この比率が定義されたしきい値を下回ると、TimesTenは、メッセージをログに記録して変更ログ表の最適化が必要であることを示すアラートを通知します。デフォルトでは、このしきい値は40%に設定されています。たとえば、断片化しきい値を50%に設定するには、次のように実行します。

Command> CALL ttCacheConfig('AutoRefreshLogFragmentationWarningPCT',,,'50');
< AutoRefreshLogFragmentationWarningPCT, <NULL>, <NULL>, 50 >
1 row found.

変更ログ表の断片化の割合を計算するときの時間間隔を3,600秒に設定するには、次の手順を実行します。

Command> CALL ttCacheConfig('AutorefreshLogMonitorInterval',,,'3600');
< AutorefreshLogMonitorInterval, <NULL>, <NULL>, 3600 >
1 row found.

Oracle RAC環境で作業している場合、次のようにフェイルオーバー・タイムアウトの値を取得します。

Command> CALL ttCacheConfig('AgentFailoverTimeout'); 
< AgentFailoverTimeout, <NULL>, <NULL>, 4 > 
1 row found.

次の例では、フェイルオーバー・タイムアウトを5分に設定しています。

Command> CALL ttCacheConfig('AgentFailoverTimeout',,,5); 
< AgentFailoverTimeout, <NULL>, <NULL>, 5 > 
1 row found.

ノート

  • このプロシージャは、キャッシュ操作でのみ使用可能です。

  • ttCacheConfig組込みプロシージャは、アクティブ・スタンバイ・ペアの各ノードからコールする必要があります。