AWTキャッシュ・グループの制約の欠落チェックの手動開始
ttCacheCheck
組込みプロシージャは、TimesTenが自動的に実行するのと同じ制約の欠落チェックを、Oracle Databaseのキャッシュ表に対して実行します。
ttCacheCheck
は、伝播のシリアライズを行うようにマークされた表と制約の欠落に関して該当するメッセージを提供します。ttCacheCheck
組込みプロシージャを使用すると、TimesTen内の指定されたキャッシュ・グループまたはすべてのキャッシュ・グループに対して制約の欠落のチェックを行い、すべてのキャッシュ・グループにおいて制約が欠落していない状態にできます。
ノート:
ttCacheCheck
はシステム表を更新して、1つの表に対して実行されたDMLをシリアライズする必要があるかないかを示すため、ttCacheCheck
組込みプロシージャの完了後にコミットまたはロールバックを行う必要があります。
『Oracle TimesTen In-Memory Databaseリファレンス』の「ttCacheCheck」を参照してください。
次のシナリオのいずれかの後に、ttCacheCheck
組込みプロシージャを手動でコールし、既知の依存性を更新する必要があります。
-
DROP CACHE GROUP
文によりTimesTenで一連のAWTキャッシュ・グループを削除した後。 -
AWTキャッシュ・グループにキャッシュされているOracle Databaseにおいて一意索引、一意制約または外部キーを追加または削除した後。制約の追加後に
ttCacheCheck
組込みプロシージャをコールしない場合、AWTキャッシュ・グループでランタイム・エラーが発生する可能性があります。制約を削除すると、TimesTenは必要がない場合でもトランザクションをシリアライズすることがあります。ttCacheCheck
組込みプロシージャをコールすると、シリアライズが必要かどうかが確認されます。 -
この組込みプロシージャを使用すると、いくつかのトランザクションがシリアライズされている理由を判別できます。
ノート:
ttCacheCheck
組込みプロシージャは、レプリケーション・エージェントの実行中にはコールできません。
ttCacheCheck
のコール時にAWTキャッシュ・グループでDDL文を実行すると、ttCacheCheck
は、文が完了するか、タイムアウト時間に達するまで待機します。
複数のキャッシュ・グループでCacheAwtParallelism
データ・ストア属性を定義していないか、または指定したキャッシュ・グループがAWTキャッシュ・グループではない場合、ttCacheCheck
組込みプロシージャは空の結果セットを返します。
次の例では、ユーザーがttCacheCheck
組込みプロシージャを手動で実行し、cacheuser
が所有しているAWTキャッシュ・グループupdate_orders
で制約が欠落しているかどうかを判別することを示します。エラー・メッセージを含む結果セットが返されています。update_orders
キャッシュ・グループのordertab
表に対して、トランザクションをシリアルに伝播するようにマークされています。
Command> call ttCacheCheck(NULL, 'cacheadmin', 'update_orders'); < CACHEADMIN, UPDATE_ORDERS, CACHEADMIN, ORDERTAB, Foreign Key, CACHEADMIN, CUST_FK, 1, Transactions updating this table will be serialized to Oracle because: The missing foreign key connects two AWT cache groups., table CACHEADMIN.ORDERTAB constraint CACHEADMIN.CUST_FK foreign key(CUSTID) references CACHEADMIN.ACTIVE_CUSTOMER(CUSTID) > 1 row found.
TimesTenデータベースまたはOracle Databaseでキャッシュ・グループ・スキーマが変更されるたびに、すべてのAWTキャッシュ・グループに対してttCacheCheck
をコールすることにより、すべての制約を確認できます。次に、ユーザーがttCacheCheck
組込みプロシージャを手動で実行し、すべての入力パラメータに対してNULL
値を指定することにより、全TimesTenデータベース内のAWTキャッシュ・グループで制約が欠落しているかどうかを判別する例を示します。エラー・メッセージを含む結果セットが返されています。
Command> call ttCacheCheck(NULL, NULL, NULL); < CACHEADMIN, UPDATE_ORDERS, CACHEADMIN, ORDERTAB, Foreign Key, CACHEADMIN, CUST_FK, 1, Transactions updating this table will be serialized to Oracle because: The missing foreign key connects two AWT cache groups., table CACHEADMIN.ORDERTAB constraint CACHEADMIN.CUST_FK foreign key(CUSTID) references CACHEADMIN.ACTIVE_CUSTOMER(CUSTID) > 1 row found.