ヘッダーをスキップ
Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド
リリース7.0
E05172-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

キャッシュ表属性

この項では、次のキャッシュ表属性について説明します。

PROPAGATE

PROPAGATE属性は、USERMANAGEDキャッシュ・グループ内の表に対してのみ指定できます。ただし、ここで説明する伝播動作は、SYNCHRONOUS WRITETHROUGH(SWT)キャッシュ・グループの動作に類似しています。

PROPAGATEは、TimesTenキャッシュ・グループの表に対する変更が、対応するOracle表にコミット時に自動的に伝播されるように指定します。NOT PROPAGATEは、伝播を無効にします。

キャッシュされた表がPROPAGATE属性で定義されている場合、キャッシュされた表に対して行われた更新は、TimesTenのコミット処理中にOracleに伝播されます。これは、次の同期方法で実行されます。

  1. 最初に、Oracleでコミットが試行されます。Oracleでコミットが失敗すると、TimesTenでコミットは試行されず、TimesTenトランザクションはロールバックの必要があるものとしてマークされます。これによって、Oracleデータベースでのデータ更新の見落しがなくなります。
  2. Oracleでコミットが成功すると、TimesTenでコミットが試行されます。TimesTenでコミットが失敗すると、失敗の原因を示すTimesTenエラー・メッセージがユーザーに返されます。

アプリケーション・ユーザーのかわりにOracleに接続すると、コミットが実行されます。ユーザーのOracleログインおよびパスワードは、UIDおよびOraclePWD属性を使用して、DSNまたはTimesTenの接続文字列に指定する必要があります(「キャッシュされた表のDSN定義」を参照)。

コミットをOracleに伝播するには、次の要件が満たされている必要があります。

デフォルトでは、キャッシュ・グループ表はNOT PROPAGATE属性が指定されて作成されるため、表に対する更新はOracleに伝播されません。PROPAGATEが有効になっている場合、Oracleに対してコミットする必要がない変更を、キャッシュされた表に対して行う必要がある可能性があります。ttCachePropagateFlagSet組込みプロシージャを使用して伝播を無効にし、後で再度有効にします。

伝播が無効になっている場合は、FLUSH CACHE GROUP文を使用して、Oracleに対する挿入および更新を選択的に伝播できます(「USERMANAGEDキャッシュ・グループのフラッシュ」を参照)。

PROPAGATEを使用する場合は、次の制限が適用されます。

PROPAGATEを使用する表定義の例は、例2.2を参照してください。

READONLY

READONLY表属性は、USERMANAGEDキャッシュ・グループ内の表に対してのみ指定できます。


注意: READONLY表属性とREADONLYキャッシュ・グループ・タイプを混同しないでください。READONLYキャッシュ・グループには、読取り専用の表が含まれていますが、READONLY表は、USERMANAGEDキャッシュ・グループに対してのみ明示的に指定できます。

READONLY表属性を各キャッシュ・グループ表に対して指定して、TimesTenアプリケーションがその表を更新することを禁止できます。

READONLY表属性を使用する場合は、次の制限が適用されます。

PassThrough=2を設定したREADONLY表を使用する場合の特別な考慮事項については、「パススルー・レベルの設定」を参照してください。

ON DELETE CASCADE

ON DELETE CASCADE表属性は、キャッシュ・グループの作成時に、すべてのタイプのキャッシュ・グループ内の表に対して指定できます。また、キャッシュ・グループ内に存在しない表に対して指定することもできます。

ON DELETE CASCADE表属性は、参照されるキー値を含む行が親表から削除されると、依存する外部キーを持つ子表の行も削除されるように指定します。ルート表は、キャッシュ・グループ内の他のすべての表の親表です。

親表から子表へのすべてのパスは、削除パスまたは削除不可パスのいずれかである必要があります。1つの親表から1つの子表に対し、複数の削除パスおよび複数の削除不可パスは存在できません。ON DELETE CASCADEは、削除パス上の子表に対して指定します。

ON DELETE CASCADEを使用する場合は、次の制限が適用されます。

『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のCREATE CACHE GROUPに関する説明を参照してください。

UNIQUE HASH ON

UNIQUE HASH ON属性は、すべてのタイプのキャッシュ・グループ内の表に対して指定できます。また、キャッシュ・グループ内に存在しない表に対して指定することもできます。

UNIQUE HASH ONは、キャッシュ・グループ内の表にハッシュ索引が作成されるように指定します。ハッシュ索引で指定される列は、主キーの列と同じである必要があります。『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のCREATE CACHE GROUPに関する説明を参照してください。