ヘッダーをスキップ
Oracle Coherenceクライアント・ガイド
リリース3.5
B56041-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

7 C++クライアント用ローカル・キャッシュの構成

ローカル・キャッシュは、特定のC++アプリケーションに対してローカルである(つまりアプリケーション内に完全に含まれる)キャッシュです。ローカル・キャッシュの特に興味深い属性について、次に示します。

詳細は、『Oracle Coherenceスタート・ガイド』の「ローカル・キャッシュ」を参照してください。

ローカル・キャッシュの構成

ローカル・キャッシュの主要な構成要素は<local-scheme>です。ローカル・キャッシュは通常、ニアスキームのフロント層としてなど、他のキャッシュ・スキーム内にネストされています。したがって、この要素はcoherence-cache-configファイルの次の要素のいずれかのサブ要素として記述できます。<caching-schemes><distributed-scheme><replicated-scheme><optimistic-scheme><near-scheme><versioned-near-scheme><overflow-scheme><read-write-backing-map-scheme>および<versioned-backing-map-scheme>の各要素です。

<local-scheme>には、キャッシュの特性を定義できるいくつかのサブ要素がオプションで用意されています。たとえば、<low-units>および<high-units>サブ要素はキャッシュのサイズを制限します。キャッシュが最大許容サイズに達すると、指定されたエビクション・ポリシー(<eviction-policy>)に従って削除対象エントリが決定され、指定されたより小さなサイズに戻ります。エントリおよびサイズの制限は、該当するスキームの単位換算カリキュレータ(<unit-calculator>)で計算される単位で測定されます。

キャッシュの有効期間も制限できます。<expiry-delay>サブ要素は、前回の更新からエントリが期限切れとしてマークされるまでの、キャッシュでエントリが保持される期間を指定します。期限切れのエントリを読み取るには、構成済のキャッシュ・ストア(<cachestore-scheme>)からエントリをリロードすることになります。期限切れになった値は、フラッシュ遅延に基づいてキャッシュから定期的に破棄されます。

<cache-store-scheme>が指定されていない場合、キャッシュされたデータはメモリー内に存在して、キャッシュに対して実行された操作を反映するだけになります。使用可能なすべてのサブ要素の詳細は、「<local-scheme>」を参照してください。

例7-1(XMLコード)に、ローカル・キャッシュの構成を示します。その他の例については、「キャッシュ・コンフィギュレーションのサンプル」を参照してください。

例7-1 ローカル・キャッシュの構成

<?xml version="1.0"?>

<cache-config>
  <caching-scheme-mapping>
    <cache-mapping>
      <cache-name>example-local-cache</cache-name>
      <scheme-name>example-local</scheme-name>
    </cache-mapping>
  </caching-scheme-mapping>
  <caching-schemes>
    <local-scheme>
      <scheme-name>example-local</scheme-name>
      <eviction-policy>LRU</eviction-policy>
      <high-units>32000</high-units>
      <low-units>10</low-units>
      <unit-calculator>FIXED</unit-calculator>
      <expiry-delay>10ms</expiry-delay>
      <flush-delay>1000ms</flush-delay>
      <cachestore-scheme>
        <class-scheme>
          <class-name>ExampleCacheStore</class-name>
        </class-scheme>
      </cachestore-scheme>
      <pre-load>true</pre-load>
    </local-scheme>
  </caching-schemes>
</cache-config>

C++クライアント用ローカル・キャッシュ参照の取得

CacheFactoryクラスを使用することによって、構成済ローカル・キャッシュへの参照を名前によって取得できます。

NamedCache::Handle hCache = CacheFactory::GetCache("example-local-cache");

ローカル・キャッシュに関連付けられたリソースのクリーンアップ

すべてのNamedCache実装のインスタンスは、LocalCacheを含め、不要になった時点でNamedCache::Release()メソッドをコールして明示的に解放し、インスタンスで保持されているリソースをすべて解放する必要があります。

特定のNamedCacheがアプリケーションの継続期間を通して使用される場合、リソースはそのアプリケーションがシャットダウンされたとき、または停止したときにクリーンアップされます。ただし、わずかの間だけ使用される場合は、使い終わった時点でアプリケーションからRelease()メソッドをコールする必要があります。