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

Coherence*Webは、セッション・キャッシュ構成ファイル、default-session-cache-config.xmlを使用して、HTTPセッション管理を実装するキャッシュおよびサービスを定義します。このファイルは、WEB-INF/classesディレクトリにデプロイされます。

表C-1は、default-session-cache-config.xmlファイルで使用するキャッシュ関連デフォルト値を示しています。

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

説明

local-attribute-storage

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

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

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

local-session-storage

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

servletcontext-storage

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

session-management

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

session-storage

この値は、セッション属性の格納に使用されるデフォルトのクラスタ化キャッシュです。別のキャッシュを使用するには、coherence-session-cachenameコンテキスト・パラメータを使用してキャッシュ名を指定します。

session-overflow

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

session-storage-heap-only

このクラスタ化キャッシュ(非エラスティック)は、セッション属性の格納に使用されます。この値は、coherence-session-cachenameコンテキスト・パラメータとともに使用するために指定できます。

session-overflow-heap-only

このクラスタ化キャッシュ(非エラスティック)は、(サイズ制限のために分割された)オーバーフロー・セッション属性の格納に使用されます。これは分割モデルのみで使用できます。coherence-session-overflow-cachenameコンテキスト・パラメータとともに使用するために指定できます。

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

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

説明

DistributedSessions

この分散サービスはRAMジャーナル・バッキング・マップ(エラスティック・データ)を使用し、次のキャッシュで使用されます:

  • session-storage
  • session-overflow

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

ReplicatedSessionsMisc

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

SessionOwnership

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

DistributedSessionsHeapOnly

この分散サービスは、次のキャッシュで使用します。
  • session-storage-heap-only
  • session-overflow-heap-only

例C-1は、default-session-cache-config.xmlファイルの内容を示しています。表C-1表C-2で説明したキャッシュ関連およびサービス関連の値はboldフォントで表示されています。

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

<?xml version="1.0"?>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!--                                                                       -->
<!--      Cache configuration descriptor for Coherence*Web                 -->
<!--                                                                       -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 	

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
              xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd">
 
  <scope-name>oracle.coherence.web</scope-name>

  <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-distributed</scheme-name>
    </cache-mapping>

    <!--
    The clustered (non-elastic) cache used to store Session attributes.
    -->
    <cache-mapping>
      <cache-name>session-storage-heap-only</cache-name>
      <scheme-name>session-distributed-heap-only</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 (non-elastic) 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-heap-only</cache-name>
      <scheme-name>session-distributed-heap-only</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>
      <request-timeout>30s</request-timeout>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>unlimited-local</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <autostart>true</autostart>
    </replicated-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>
      <service-name>DistributedSessions</service-name>
      <lease-granularity>member</lease-granularity>
      <local-storage system-property="coherence.session.localstorage">false</local-storage>
      <partition-count>257</partition-count>
      <backup-count>1</backup-count>
      <request-timeout>30s</request-timeout>
      <backing-map-scheme>
        <ramjournal-scheme>
           <high-units system-property="coherence.session.highunits"/>
           <unit-calculator>BINARY</unit-calculator>
        </ramjournal-scheme>
      </backing-map-scheme>
      <autostart>true</autostart>
    </distributed-scheme>

    <distributed-scheme>
      <scheme-name>session-distributed-heap-only</scheme-name>
      <service-name>DistributedSessionsHeapOnly</service-name>
      <lease-granularity>member</lease-granularity>
      <local-storage system-property="coherence.session.localstorage">false</local-storage>
      <partition-count>257</partition-count>
      <backup-count>1</backup-count>
      <request-timeout>30s</request-timeout>
      <backing-map-scheme>
        <local-scheme/>
      </backing-map-scheme>
      <autostart>true</autostart>
    </distributed-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>