...
- 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.
We chose to enable the distribution of the following caches:
uPortal Framework Caches
org.jasig.portal.security.provider.AuthorizationImpl.AUTH_PRINCIPAL_CACHE
org.jasig.portal.groups.CompositeEntityIdentifier.NAME_PARSE_CACHE
org.jasig.services.persondir.USER_INFO
org.jasig.portal.channels.CONTENT_CACHE
org.jasig.portal.layout.dlm.LAYOUT_CACHE
org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_CACHE
org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_NOT_FOUND_CACHE
uPortal IBasicEntity Caches
org.jasig.portal.ChannelDefinition
org.jasig.portal.groups.IEntityGroup
org.jasig.portal.groups.IEntity
org.jasig.portal.security.IPermissionSet
We did NOT enable distribution of the Hibernate Caches or Portal Stats Hibernate Caches.
Monitoring ehcache using JMX and JConsole
...