...
- 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}"/>
Info title rmiUrls Property Value It is (unfortunately) necessary to populate the
rmiUrls
property value differently for each cache peer included in the distribution matrix. Furthermore, each configured cache must be included on this list for each peer, so as you can imagine this value can become exceedingly long and difficult to read. So, for example, I have listed the specific configuration values for what a 3 server configuration might look like below. (To "simplify" the management of these values, it might be advantageous to incorporate these property values into your specific deployment process via tokenization...)
For app1:
${CACHE_PROVIDER_RMIURLS}=//app2.foo.edu:40001/org.jasig.portal.security.provider.AuthorizationImpl.AUTH_PRINCIPAL_CACHE|//app2.foo.edu:40001/org.jasig.portal.groups.CompositeEntityIdentifier.NAME_PARSE_CACHE|//app2.foo.edu:40001/org.jasig.services.persondir.USER_INFO|//app2.foo.edu:40001/org.jasig.portal.channels.CONTENT_CACHE|//app2.foo.edu:40001/org.jasig.portal.layout.dlm.LAYOUT_CACHE|//app2.foo.edu:40001/org.jasig.portal.ChannelDefinition|//app2.foo.edu:40001/org.jasig.portal.groups.IEntityGroup|//app2.foo.edu:40001/org.jasig.portal.groups.IEntity|//app2.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_CACHE|//app2.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_NOT_FOUND_CACHE|//app2.foo.edu:40001/edu.jhu.services.persondir.support.http.CACHE|//app2.foo.edu:40001/org.jasig.portal.security.IPermissionSet|//app3.foo.edu:40001/org.jasig.portal.security.provider.AuthorizationImpl.AUTH_PRINCIPAL_CACHE|//app3.foo.edu:40001/org.jasig.portal.groups.CompositeEntityIdentifier.NAME_PARSE_CACHE|//app3.foo.edu:40001/org.jasig.services.persondir.USER_INFO|//app3.foo.edu:40001/org.jasig.portal.channels.CONTENT_CACHE|//app3.foo.edu:40001/org.jasig.portal.layout.dlm.LAYOUT_CACHE|//app3.foo.edu:40001/org.jasig.portal.ChannelDefinition|//app3.foo.edu:40001/org.jasig.portal.groups.IEntityGroup|//app3.foo.edu:40001/org.jasig.portal.groups.IEntity|//app3.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_CACHE|//app3.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_NOT_FOUND_CACHE|//app3.foo.edu:40001/edu.jhu.services.persondir.support.http.CACHE|//app3.foo.edu:40001/org.jasig.portal.security.IPermissionSet
For app2:
${CACHE_PROVIDER_RMIURLS}=//app1.foo.edu:40001/org.jasig.portal.security.provider.AuthorizationImpl.AUTH_PRINCIPAL_CACHE|//app1.foo.edu:40001/org.jasig.portal.groups.CompositeEntityIdentifier.NAME_PARSE_CACHE|//app1.foo.edu:40001/org.jasig.services.persondir.USER_INFO|//app1.foo.edu:40001/org.jasig.portal.channels.CONTENT_CACHE|//app1.foo.edu:40001/org.jasig.portal.layout.dlm.LAYOUT_CACHE|//app1.foo.edu:40001/org.jasig.portal.ChannelDefinition|//app1.foo.edu:40001/org.jasig.portal.groups.IEntityGroup|//app1.foo.edu:40001/org.jasig.portal.groups.IEntity|//app1.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_CACHE|//app1.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_NOT_FOUND_CACHE|//app1.foo.edu:40001/edu.jhu.services.persondir.support.http.CACHE|//app1.foo.edu:40001/org.jasig.portal.security.IPermissionSet|//app3.foo.edu:40001/org.jasig.portal.security.provider.AuthorizationImpl.AUTH_PRINCIPAL_CACHE|//app3.foo.edu:40001/org.jasig.portal.groups.CompositeEntityIdentifier.NAME_PARSE_CACHE|//app3.foo.edu:40001/org.jasig.services.persondir.USER_INFO|//app3.foo.edu:40001/org.jasig.portal.channels.CONTENT_CACHE|//app3.foo.edu:40001/org.jasig.portal.layout.dlm.LAYOUT_CACHE|//app3.foo.edu:40001/org.jasig.portal.ChannelDefinition|//app3.foo.edu:40001/org.jasig.portal.groups.IEntityGroup|//app3.foo.edu:40001/org.jasig.portal.groups.IEntity|//app3.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_CACHE|//app3.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_NOT_FOUND_CACHE|//app3.foo.edu:40001/edu.jhu.services.persondir.support.http.CACHE|//app3.foo.edu:40001/org.jasig.portal.security.IPermissionSet
For app3:
${CACHE_PROVIDER_RMIURLS}=//app1.foo.edu:40001/org.jasig.portal.security.provider.AuthorizationImpl.AUTH_PRINCIPAL_CACHE|//app1.foo.edu:40001/org.jasig.portal.groups.CompositeEntityIdentifier.NAME_PARSE_CACHE|//app1.foo.edu:40001/org.jasig.services.persondir.USER_INFO|//app1.foo.edu:40001/org.jasig.portal.channels.CONTENT_CACHE|//app1.foo.edu:40001/org.jasig.portal.layout.dlm.LAYOUT_CACHE|//app1.foo.edu:40001/org.jasig.portal.ChannelDefinition|//app1.foo.edu:40001/org.jasig.portal.groups.IEntityGroup|//app1.foo.edu:40001/org.jasig.portal.groups.IEntity|//app1.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_CACHE|//app1.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_NOT_FOUND_CACHE|//app1.foo.edu:40001/edu.jhu.services.persondir.support.http.CACHE|//app1.foo.edu:40001/org.jasig.portal.security.IPermissionSet|//app2.foo.edu:40001/org.jasig.portal.security.provider.AuthorizationImpl.AUTH_PRINCIPAL_CACHE|//app2.foo.edu:40001/org.jasig.portal.groups.CompositeEntityIdentifier.NAME_PARSE_CACHE|//app2.foo.edu:40001/org.jasig.services.persondir.USER_INFO|//app2.foo.edu:40001/org.jasig.portal.channels.CONTENT_CACHE|//app2.foo.edu:40001/org.jasig.portal.layout.dlm.LAYOUT_CACHE|//app2.foo.edu:40001/org.jasig.portal.ChannelDefinition|//app2.foo.edu:40001/org.jasig.portal.groups.IEntityGroup|//app2.foo.edu:40001/org.jasig.portal.groups.IEntity|//app2.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_CACHE|//app2.foo.edu:40001/org.jasig.portal.utils.ResourceLoader.RESOURCE_URL_NOT_FOUND_CACHE|//app2.foo.edu:40001/edu.jhu.services.persondir.support.http.CACHE|//app2.foo.edu:40001/org.jasig.portal.security.IPermissionSet
...