...
- Spring Configuration:
cacheContext.xml
- ehcache Configuration:
ehcache.xml
Configuring Distributed
...
Caching
Configuration
- Configure a
cacheManagerPeerProviderFactory
inehcache.xml
Code Block xml xml <!-- | The rmiUrls is a list of the cache peers of the server being configured. | Do not include the server being configured in the list. +--> <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties="peerDiscovery=manual, rmiUrls=${CACHE_PROVIDER_RMIURLS}"/>
- Configure a
cacheManagerPeerListenerFactory
inehcache.xml
Code Block xml xml <cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" properties="//hostname=${CACHE_LISTENER_HOSTNAME},port=${CACHE_LISTENER_PORT}, socketTimeoutMillis=120000"/>
- Configure each specific cache that you would like distribute via
cacheEventListenerFactory
inehcache.xml
Code Block xml xml <cache name="org.jasig.portal.security.provider.AuthorizationImpl.AUTH_PRINCIPAL_CACHE" eternal="false" maxElementsInMemory="150" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="0" memoryStoreEvictionPolicy="LRU"> <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" properties="replicateAsynchronously=true, replicatePuts=false, replicateUpdates=false, replicateUpdatesViaCopy=false, replicateRemovals=true "/> </cache>
Note title Important! It is important to note that we have configured each cache to use a "invalidation only" strategy by configuring only
replicateRemovals=true
(i.e. - no puts or updates). As I understand it, not everything that is currently being cached in uPortal 3 is guaranteed to implementjava.io.Serializable
and therefore may not be replicated across instances. Furthermore, using an invalidation strategy should reduce network traffic.
...