ヘッダーをスキップ
Oracle Coherence Oracle Coherence*Webユーザーズ・ガイド
リリース3.6.1
B61371-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

C セッション・キャッシュ構成ファイル

Coherence*Webでは、session-cache-config.xmlファイルで定義したキャッシュとサービスを使用してHTTPセッション管理を実装します。このファイルは、設定済のWebアプリケーションまたは共有しているWebLogic Coherence*Web SPIライブラリのWEB-INF/classesにデプロイされます。表C-1は、session-cache-config.xmlファイルで使用するキャッシュ関連デフォルト値を示しています。

表C-1 session-cache-config.xmlで使用するキャッシュ関連の値

説明

session-management

このキャッシュには、セッション管理実装の内部的な構成情報と管理情報を保存します。この情報は、更新頻度が低いことから、このキャッシュはデフォルトでレプリケートしたキャッシュになります。

servletcontext-storage

ServletContext属性のクラスタリング(表A-1coherence-servletcontext-clusteredパラメータを参照)が有効になっている場合(デフォルトでは無効)、ServletContext属性はこのキャッシュに保存されます。read-mostly属性が少数存在することを想定して、このキャッシュはデフォルトでレプリケートされます。

session-storage

このキャッシュには、セッション・モデルを保存します。このキャッシュは、分散キャッシュをバック・キャッシュとするニア・キャッシュにデフォルトでマップされます。これは、セッションのサブセットにはコンテナによるアクセスと変更が何回も発生することを想定しているからです(スティッキー・セッションのロード・バランシングが構成されている場合)。詳細は、「セッション・モデル」を参照してください。

session-overflow

coherence-sessioncollection-classパラメータ(表A-1を参照)をcom.tangosol.coherence.servlet.SplitHttpSessionCollectionに設定している場合は、このキャッシュに「大型の」セッション属性が保存されます。デフォルトでは、1Kを超えるサイズのセッション属性がこのキャッシュに保存されます。このキャッシュは分散キャッシュとして構成されます。

session-death-certificates

最近使用されたセッションIDが再利用されないように、最近有効期限が切れたセッションIDがこのキャッシュに保存されます。デフォルトでは、記憶域ノードごとに最大4000個のセッションIDを保持できます。これらのセッションIDは、保存した時点から24時間後に削除されます。このキャッシュは分散キャッシュとして構成されます。

local-session-storage

構成済のcoherence-distributioncontroller-classパラメータが存在する場合、それによって「ローカル」と見なされたセッション・モデルをこのキャッシュに保存します。このパラメータの詳細は、表A-1を参照してください。

local-attribute-storage

このローカル・キャッシュには、分散配置しない属性を保存します。これには、次の2つの状況が考えられます。

  • coherence-distributioncontroller-classを構成済の場合。「ローカル」セッションの属性をこのキャッシュに保存します。

  • 分散セッションに対してシリアライズ不可能な属性を設定している場合。coherence-preserve-attributestrueに設定した場合は、シリアライズ不可能な属性がこのキャッシュに配置されます。このパラメータの詳細は、表A-1を参照してください。


表C-2は、session-cache-config.xmlファイルで使用するサービス関連値を示しています。

表C-2 session-cache-config.xmlで使用するサービス関連の値

説明

ReplicatedSessionsMisc

このレプリケートしたサービスは、session-managementキャッシュとservletcontext-storageキャッシュで使用します。

DistributedSessions

この分散サービスは、次のキャッシュで使用します。

  • session-storage

  • session-overflow

  • session-death-certificates

これらのキャッシュのデータをJVMで保存および管理するかどうかを、tangosol.coherence.session.localstorageシステム・プロパティで制御します。大半の状況では、WebコンテナのJVMについてこのシステム・プロパティをfalseに設定する必要があります。詳細は、「デプロイメント・トポロジ」を参照してください。

SessionOwnership

この起動サービスは、スティッキー・セッションの最適化機能で使用します(coherence-sticky-sessionstrueに設定している場合)。


例C-1は、session-cache-config.xmlファイルの内容を示しています。ここでは、前述の各表で説明したキャッシュ関連の値とサービス関連の値を太字で示します。

例C-1 session-cache-config.xmlファイルの内容

<?xml version="1.0"?>
<!DOCTYPE cache-config SYSTEM "cache-config.dtd">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!--                                                                       -->
<!--      Cache configuration descriptor for Coherence*Web                 -->
<!--                                                                       -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<cache-config>
  <caching-scheme-mapping>
    <!--
    The clustered cache used to store Session management data.
    -->
    <cache-mapping>
      <cache-name>session-management</cache-name>
      <scheme-name>replicated</scheme-name>
    </cache-mapping>

    <!--
    The clustered cache used to store ServletContext attributes.
    -->
    <cache-mapping>
      <cache-name>servletcontext-storage</cache-name>
      <scheme-name>replicated</scheme-name>
    </cache-mapping>

    <!--
    The clustered cache used to store Session attributes.
    -->
    <cache-mapping>
      <cache-name>session-storage</cache-name>
      <scheme-name>session-near</scheme-name>
    </cache-mapping>

    <!--
    The clustered cache used to store the "overflowing" (split-out due to size)
    Session attributes. Only used for the "Split" model.
    -->
    <cache-mapping>
      <cache-name>session-overflow</cache-name>
      <scheme-name>session-distributed</scheme-name>
    </cache-mapping>

    <!--
    The clustered cache used to store IDs of "recently departed" Sessions.
    -->
    <cache-mapping>
      <cache-name>session-death-certificates</cache-name>
      <scheme-name>session-certificate</scheme-name>
    </cache-mapping>

    <!--
    The local cache used to store Sessions that are not yet distributed (if
    there is a distribution controller).
    -->
    <cache-mapping>
      <cache-name>local-session-storage</cache-name>
      <scheme-name>unlimited-local</scheme-name>
    </cache-mapping>

    <!--
    The local cache used to store Session attributes that are not distributed
    (if there is a distribution controller or attributes are allowed to become
    local when serialization fails).
    -->
    <cache-mapping>
      <cache-name>local-attribute-storage</cache-name>
      <scheme-name>unlimited-local</scheme-name>
    </cache-mapping>
  </caching-scheme-mapping>

  <caching-schemes>
    <!--
    Replicated caching scheme used by the Session management and ServletContext
    attribute caches.
    -->
    <replicated-scheme>
      <scheme-name>replicated</scheme-name>
      <service-name>ReplicatedSessionsMisc</service-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>unlimited-local</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <request-timeout>30s</request-timeout>
      <autostart>true</autostart>
    </replicated-scheme>

    <!--
    Near caching scheme used by the Session attribute cache. The front cache
    uses a Local caching scheme and the back cache uses a Distributed caching
    scheme.
    -->
    <near-scheme>
      <scheme-name>session-near</scheme-name>
      <front-scheme>
        <local-scheme>
          <scheme-ref>session-front</scheme-ref>
        </local-scheme>
      </front-scheme>
      <back-scheme>
        <distributed-scheme>
          <scheme-ref>session-distributed</scheme-ref>
        </distributed-scheme>
      </back-scheme>
      <invalidation-strategy>present</invalidation-strategy>
    </near-scheme>

    <local-scheme>
      <scheme-name>session-front</scheme-name>
      <eviction-policy>HYBRID</eviction-policy>
      <high-units>1000</high-units>
      <low-units>750</low-units>
    </local-scheme>

    <distributed-scheme>
      <scheme-name>session-distributed</scheme-name>
      <scheme-ref>session-base</scheme-ref>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>unlimited-local</scheme-ref>
        </local-scheme>
        <!-- for disk overflow use this backing scheme instead:
        <overflow-scheme>
          <scheme-ref>session-paging</scheme-ref>
        </overflow-scheme>
        -->
      </backing-map-scheme>
    </distributed-scheme>

    <!--
    Distributed caching scheme used by the "recently departed" Session cache.
    -->
    <distributed-scheme>
      <scheme-name>session-certificate</scheme-name>
      <scheme-ref>session-base</scheme-ref>
      <backing-map-scheme>
        <local-scheme>
          <eviction-policy>HYBRID</eviction-policy>
          <high-units>4000</high-units>
          <low-units>3000</low-units>
          <expiry-delay>86400</expiry-delay>
        </local-scheme>
      </backing-map-scheme>
    </distributed-scheme>

    <!--
    "Base" Distributed caching scheme that defines common configuration.
    -->
    <distributed-scheme>
      <scheme-name>session-base</scheme-name>
      <service-name>DistributedSessions</service-name>
      <thread-count>0</thread-count>
      <lease-granularity>member</lease-granularity>
      <local-storage system-property="tangosol.coherence.session.localstorage">false</local-storage>
      <partition-count>257</partition-count>
      <backup-count>1</backup-count>
      <backup-storage>
        <type>on-heap</type>
      </backup-storage>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>unlimited-local</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <request-timeout>30s</request-timeout>
      <autostart>true</autostart>
    </distributed-scheme>

    <!--
    Disk-based Session attribute overflow caching scheme.
    -->
    <overflow-scheme>
      <scheme-name>session-paging</scheme-name>
      <front-scheme>
        <local-scheme>
          <scheme-ref>session-front</scheme-ref>
        </local-scheme>
      </front-scheme>
      <back-scheme>
        <external-scheme>
          <bdb-store-manager/>
        </external-scheme>
      </back-scheme>
    </overflow-scheme>

    <!--
    Local caching scheme definition used by all caches that do not require an
    eviction policy.
    -->
    <local-scheme>
      <scheme-name>unlimited-local</scheme-name>
      <service-name>LocalSessionCache</service-name>
    </local-scheme>

    <!--
    Clustered invocation service that manages sticky session ownership.
    -->
    <invocation-scheme>
      <service-name>SessionOwnership</service-name>
      <request-timeout>30s</request-timeout>
    </invocation-scheme>
  </caching-schemes>
</cache-config>