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時間後に削除されます。このキャッシュは分散キャッシュとして構成されます。 |
|
構成済の |
|
local-attribute-storage |
このローカル・キャッシュには、分散配置しない属性を保存します。これには、次の2つの状況が考えられます。
|
表C-2は、session-cache-config.xml
ファイルで使用するサービス関連値を示しています。
表C-2 session-cache-config.xmlで使用するサービス関連の値
値 | 説明 |
---|---|
このレプリケートしたサービスは、 |
|
この分散サービスは、次のキャッシュで使用します。
これらのキャッシュのデータをJVMで保存および管理するかどうかを、 |
|
この起動サービスは、スティッキー・セッションの最適化機能で使用します( |
例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>