TimesTen Classicでの即時自動リフレッシュの開始
TimesTen Classicでは、次の自動リフレッシュ処理を待機することなく、キャッシュ表に適用する必要のあるデータを使用してOracle Database表が更新されている場合は、ttCacheAutorefresh
組込みプロシージャをコールできます。
ttCacheAutorefresh
組込みプロシージャにより、即時リフレッシュ操作が開始され、ttCacheAutorefresh
の起動時に開始されるように自動リフレッシュ・サイクルがリセットされます。
キャッシュ・グループの構成方法に基づいて、完全リフレッシュ処理または増分リフレッシュ処理が行われます。ttCacheAutorefresh
をコールする場合は、自動リフレッシュの状態がON
である必要があります。
通常、自動リフレッシュ処理では、同じリフレッシュ間隔を共有するすべてのキャッシュ・グループのリフレッシュを、これらのキャッシュ・グループ間のトランザクション一貫性を維持するために、1つのトランザクションで行います。したがって、ttCacheAutorefresh
をコールするときに特定のキャッシュ・グループを指定しても、自動リフレッシュ処理は、指定したキャッシュ・グループと自動リフレッシュ間隔を共有するすべてのキャッシュ・グループに対して1つのトランザクションで発生します。既存のトランザクションに表ロックされているオブジェクトがあり、それらのオブジェクトが対象となるキャッシュ・グループに属している場合、ttCacheAutofresh
は何もアクションを行わずにエラーを返します。
ttCacheAutorefresh
の実行は、非同期(デフォルト)または同期を選択できます。同期モードでは、リフレッシュ処理が失敗すると、ttCacheAutorefresh
はエラーを返します。
ttCacheAutorefresh
のコール後は、トランザクションをコミットまたはロールバックしてから、後続の作業を実行する必要があります。
この例では、ttuser.western_customers
キャッシュ・グループに対して非同期モードを使用してttCacheAutorefresh
をコールします。
Command> call ttCacheAutorefresh('ttuser', 'western_customers');