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で使用するキャッシュ関連の値
| 値 | 説明 |
|---|---|
|
|
このローカル・キャッシュには、分散配置しない属性を保存します。これには、次のような状況が考えられます。
|
|
構成済の |
|
|
|
|
|
最近使用されたセッションIDが再利用されないように、最近有効期限が切れたセッションIDがこのキャッシュに保存されます。デフォルトでは、記憶域ノードごとに最大4000個のセッションIDを保持できます。これらのセッションIDは、保存した時点から24時間後に削除されます。このキャッシュは分散キャッシュとして構成されます。 |
|
|
このキャッシュには、セッション管理実装の内部的な構成情報と管理情報を保存します。この情報は、更新頻度が低いことから、このキャッシュはデフォルトでレプリケートしたキャッシュになります。 |
|
|
|
|
|
このキャッシュには、セッション・モデルを保存します。このキャッシュは、分散キャッシュをバック・キャッシュとするニア・キャッシュにデフォルトでマップされます。これは、セッションのサブセットにはコンテナによるアクセスと変更が何回も発生することを想定しているからです(スティッキー・セッションのロード・バランシングが構成されている場合)。詳細は、「セッション・モデル」を参照してください。 |
表C-2は、session-cache-config.xmlファイルで使用するサービス関連値を示しています。
表C-2 session-cache-config.xmlで使用するサービス関連の値
| 値 | 説明 |
|---|---|
|
この分散サービスは、次のキャッシュで使用します。
これらのキャッシュのデータをJVMで保存および管理するかどうかを、 |
|
|
このレプリケートしたサービスは、 |
|
|
この起動サービスは、スティッキー・セッションの最適化機能で使用します( |
例C-1は、session-cache-config.xmlファイルの内容を示しています。表C-1と表C-2で説明したキャッシュ関連およびサービス関連の値はboldフォントで表示されています。
例C-1 session-cache-config.xmlファイルの内容
<?xml version="1.0"?>
<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">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- -->
<!-- Cache configuration descriptor for Coherence*Web -->
<!-- -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<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>