この項では、次のキャッシュ表属性について説明します。
PROPAGATE属性は、USERMANAGEDキャッシュ・グループ内の表に対してのみ指定できます。ただし、ここで説明する伝播動作は、SYNCHRONOUS WRITETHROUGH(SWT)キャッシュ・グループの動作に類似しています。
PROPAGATEは、TimesTenキャッシュ・グループの表に対する変更が、対応するOracle表にコミット時に自動的に伝播されるように指定します。NOT PROPAGATEは、伝播を無効にします。
キャッシュされた表がPROPAGATE属性で定義されている場合、キャッシュされた表に対して行われた更新は、TimesTenのコミット処理中にOracleに伝播されます。これは、次の同期方法で実行されます。
アプリケーション・ユーザーのかわりにOracleに接続すると、コミットが実行されます。ユーザーのOracleログインおよびパスワードは、UIDおよびOraclePWD属性を使用して、DSNまたはTimesTenの接続文字列に指定する必要があります(「キャッシュされた表のDSN定義」を参照)。
コミットをOracleに伝播するには、次の要件が満たされている必要があります。
この要件では、TimesTenで更新中の行とOracleでのそれらに対応する元の行との間に1対1のマッピングが確立されていることを確認することが目的です。この1対1のマッピングが確立されている場合は、キャッシュされていない行に与える影響を心配せずに、更新を適用できます。
デフォルトでは、キャッシュ・グループ表はNOT PROPAGATE属性が指定されて作成されるため、表に対する更新はOracleに伝播されません。PROPAGATEが有効になっている場合、Oracleに対してコミットする必要がない変更を、キャッシュされた表に対して行う必要がある可能性があります。ttCachePropagateFlagSet組込みプロシージャを使用して伝播を無効にし、後で再度有効にします。
伝播が無効になっている場合は、FLUSH CACHE GROUP文を使用して、Oracleに対する挿入および更新を選択的に伝播できます(「USERMANAGEDキャッシュ・グループのフラッシュ」を参照)。
PROPAGATEを使用する場合は、次の制限が適用されます。
注意: | 表にPROPAGATE属性が指定されているキャッシュ・グループの場合、TimesTenは、この表に対する挿入および更新と、キャッシュ・グループ定義の一部であるWHERE句に一貫性があるかどうかを確認しません。このような挿入および更新は回避されず、Oracleに伝播される場合もあります。 |
PROPAGATEを使用する表定義の例は、例2.2を参照してください。
READONLY表属性は、USERMANAGEDキャッシュ・グループ内の表に対してのみ指定できます。
注意: | READONLY表属性とREADONLYキャッシュ・グループ・タイプを混同しないでください。READONLYキャッシュ・グループには、読取り専用の表が含まれていますが、READONLY表は、USERMANAGEDキャッシュ・グループに対してのみ明示的に指定できます。 |
READONLY表属性を各キャッシュ・グループ表に対して指定して、TimesTenアプリケーションがその表を更新することを禁止できます。
READONLY表属性を使用する場合は、次の制限が適用されます。
PassThrough=2を設定したREADONLY表を使用する場合の特別な考慮事項については、「パススルー・レベルの設定」を参照してください。
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は、キャッシュ・グループ内の表にハッシュ索引が作成されるように指定します。ハッシュ索引で指定される列は、主キーの列と同じである必要があります。『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のCREATE CACHE GROUPに関する説明を参照してください。