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');