You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/07/11 16:25:06 UTC
[2/2] git commit: cleaned up EHCache configuration (fixes
MARMOTTA-200 and MARMOTTA-201)
cleaned up EHCache configuration (fixes MARMOTTA-200 and MARMOTTA-201)
Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/8a59038f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/8a59038f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/8a59038f
Branch: refs/heads/develop
Commit: 8a59038f03a648a65a268bd493c289a8b7ad4559
Parents: 08c0567
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Thu Jul 11 16:24:56 2013 +0200
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Thu Jul 11 16:24:56 2013 +0200
----------------------------------------------------------------------
.../src/main/resources/ehcache-lmf.xml | 422 -----------------
.../src/main/resources/ehcache-marmotta.xml | 407 +++++++++++++++++
.../src/test/resources/ehcache.xml | 4 +-
.../core/services/cache/CachingServiceImpl.java | 7 +-
.../src/test/resources/ehcache-db.xml | 451 -------------------
.../src/test/resources/ehcache-lmf.xml | 417 -----------------
.../src/test/resources/ehcache-marmotta.xml | 405 +++++++++++++++++
7 files changed, 820 insertions(+), 1293 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/8a59038f/launchers/marmotta-webapp/src/main/resources/ehcache-lmf.xml
----------------------------------------------------------------------
diff --git a/launchers/marmotta-webapp/src/main/resources/ehcache-lmf.xml b/launchers/marmotta-webapp/src/main/resources/ehcache-lmf.xml
deleted file mode 100644
index f2dca9c..0000000
--- a/launchers/marmotta-webapp/src/main/resources/ehcache-lmf.xml
+++ /dev/null
@@ -1,422 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<!--
-CacheManager Configuration
-==========================
-An ehcache-lmf.xml corresponds to a single CacheManager.
-
-See instructions below or the ehcache schema (ehcache.xsd) on how to configure.
-
-System property tokens can be specified in this file which are replaced when the configuration
-is loaded. For example multicastGroupPort=${multicastGroupPort} can be replaced with the
-System property either from an environment variable or a system property specified with a
-command line switch such as -DmulticastGroupPort=4446.
-
-The attributes of <ehcache> are:
-* name - an optional name for the CacheManager. The name is optional and primarily used
-for documentation or to distinguish Terracotta clustered cache state. With Terracotta
-clustered caches, a combination of CacheManager name and cache name uniquely identify a
-particular cache store in the Terracotta clustered memory.
-* updateCheck - an optional boolean flag specifying whether this CacheManager should check
-for new versions of Ehcache over the Internet. If not specified, updateCheck="true".
-* monitoring - an optional setting that determines whether the CacheManager should
-automatically register the SampledCacheMBean with the system MBean server. Currently,
-this monitoring is only useful when using Terracotta and thus the "autodetect" value
-will detect the presence of Terracotta and register the MBean. Other allowed values
-are "on" and "off". The default is "autodetect".
--->
-<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
- updateCheck="false"
- name="lmf">
-
- <!--
- DiskStore configuration
- =======================
-
- The diskStore element is optional. To turn off disk store path creation, comment out the diskStore
- element below.
-
- Configure it if you have overflowToDisk or diskPersistent enabled for any cache.
-
- If it is not configured, and a cache is created which requires a disk store, a warning will be
- issued and java.io.tmpdir will automatically be used.
-
- diskStore has only one attribute - "path". It is the path to the directory where
- .data and .index files will be created.
-
- If the path is one of the following Java System Property it is replaced by its value in the
- running VM. For backward compatibility these are not specified without being enclosed in the ${token}
- replacement syntax.
-
- The following properties are translated:
- * user.home - KiWiUser's home directory
- * user.dir - KiWiUser's current working directory
- * java.io.tmpdir - Default temp file path
- * ehcache.disk.store.dir - A system property you would normally specify on the command line
- e.g. java -Dehcache.disk.store.dir=/u01/myapp/diskdir ...
-
- Subdirectories can be specified below the property e.g. java.io.tmpdir/one
-
- -->
- <diskStore path="java.io.tmpdir/lmf-cache/lmf"/>
-
- <!--
- Cachemanagereventlistener
- =========================
- Specifies a CacheManagerEventListenerFactory which is notified when Caches are added
- or removed from the CacheManager.
-
- The attributes of CacheManagerEventListenerFactory are:
- * class - a fully qualified factory class name
- * properties - comma separated properties having meaning only to the factory.
-
- Sets the fully qualified class name to be registered as the CacheManager event listener.
-
- The events include:
- * adding a Cache
- * removing a Cache
-
- Callbacks to listener methods are synchronous and unsynchronized. It is the responsibility
- of the implementer to safely handle the potential performance and thread safety issues
- depending on what their listener is doing.
-
- If no class is specified, no listener is created. There is no default.
- -->
- <cacheManagerEventListenerFactory class="" properties=""/>
-
-
- <!--
- CacheManagerPeerProvider
- ========================
- (For distributed operation)
-
- Specifies a CacheManagerPeerProviderFactory which will be used to create a
- CacheManagerPeerProvider, which discovers other CacheManagers in the cluster.
-
- One or more providers can be configured. The first one in the ehcache-lmf.xml is the default, which is used
- for replication and bootstrapping.
-
- The attributes of cacheManagerPeerProviderFactory are:
- * class - a fully qualified factory class name
- * properties - comma separated properties having meaning only to the factory.
-
- Providers are available for RMI, JGroups and JMS as shown following.
-
- RMICacheManagerPeerProvider
- +++++++++++++++++++++++++++
-
- Ehcache comes with a built-in RMI-based distribution system with two means of discovery of
- CacheManager peers participating in the cluster:
- * automatic, using a multicast group. This one automatically discovers peers and detects
- changes such as peers entering and leaving the group
- * manual, using manual rmiURL configuration. A hardcoded list of peers is provided at
- configuration time.
-
- Configuring Automatic Discovery:
- Automatic discovery is configured as per the following example:
- <cacheManagerPeerProviderFactory
- class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="hostName=fully_qualified_hostname_or_ip,
- peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
- multicastGroupPort=4446, timeToLive=32"/>
-
- Valid properties are:
- * peerDiscovery (mandatory) - specify "automatic"
- * multicastGroupAddress (mandatory) - specify a valid multicast group address
- * multicastGroupPort (mandatory) - specify a dedicated port for the multicast heartbeat
- traffic
- * timeToLive - specify a value between 0 and 255 which determines how far the packets will
- propagate.
-
- By convention, the restrictions are:
- 0 - the same host
- 1 - the same subnet
- 32 - the same site
- 64 - the same region
- 128 - the same continent
- 255 - unrestricted
-
- * hostName - the hostname or IP of the interface to be used for sending and receiving multicast packets
- (relevant to mulithomed hosts only)
-
- Configuring Manual Discovery:
- Manual discovery requires a unique configuration per host. It is contains a list of rmiURLs for the peers, other
- than itself. So, if we have server1, server2 and server3 the configuration will be:
-
- In server1's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server2:40000/sampleCache1|//server3:40000/sampleCache1
- | //server2:40000/sampleCache2|//server3:40000/sampleCache2"
- propertySeparator="," />
-
- In server2's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server1:40000/sampleCache1|//server3:40000/sampleCache1
- | //server1:40000/sampleCache2|//server3:40000/sampleCache2"
- propertySeparator="," />
-
- In server3's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1
- | //server1:40000/sampleCache2|//server2:40000/sampleCache2"
- propertySeparator="," />
-
-
- Valid properties are:
- * peerDiscovery (mandatory) - specify "manual"
- * rmiUrls (mandatory) - specify a pipe separated list of rmiUrls, in the form
- //hostname:port
- * hostname (optional) - the hostname is the hostname of the remote CacheManager peer. The port is the listening
- port of the RMICacheManagerPeerListener of the remote CacheManager peer.
-
- JGroupsCacheManagerPeerProvider
- +++++++++++++++++++++++++++++++
- <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
- properties="connect=UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_ttl=32;
- mcast_send_buf_size=150000;mcast_recv_buf_size=80000):
- PING(timeout=2000;num_initial_members=6):
- MERGE2(min_interval=5000;max_interval=10000):
- FD_SOCK:VERIFY_SUSPECT(timeout=1500):
- pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):
- UNICAST(timeout=5000):
- pbcast.STABLE(desired_avg_gossip=20000):
- FRAG:
- pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=false)"
- propertySeparator="::"
- />
- The only property necessary is the connect String used by jgroups to configure itself. Refer to the Jgroups documentation for explanation
- of all the protocols. The example above uses UDP multicast. If the connect property is not specified the default JGroups connection will be
- used.
-
-
- JMSCacheManagerPeerProviderFactory
- ++++++++++++++++++++++++++++++++++
- <cacheManagerPeerProviderFactory
- class="net.sf.ehcache.distribution.jms.JMSCacheManagerPeerProviderFactory"
- properties="..."
- propertySeparator=","
- />
-
- The JMS PeerProviderFactory uses JNDI to maintain message queue independence. Refer to the manual for full configuration
- examples using ActiveMQ and Open Message Queue.
-
- Valid properties are:
- * initialContextFactoryName (mandatory) - the name of the factory used to create the message queue initial context.
- * providerURL (mandatory) - the JNDI configuration information for the service provider to use.
- * topicConnectionFactoryBindingName (mandatory) - the JNDI binding name for the TopicConnectionFactory
- * topicBindingName (mandatory) - the JNDI binding name for the topic name
- * getQueueBindingName (mandatory only if using jmsCacheLoader) - the JNDI binding name for the queue name
- * securityPrincipalName - the JNDI java.naming.security.principal
- * securityCredentials - the JNDI java.naming.security.credentials
- * urlPkgPrefixes - the JNDI java.naming.factory.url.pkgs
- * userName - the user name to use when creating the TopicConnection to the Message Queue
- * password - the password to use when creating the TopicConnection to the Message Queue
- * acknowledgementMode - the JMS Acknowledgement mode for both publisher and subscriber. The available choices are
- AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE and SESSION_TRANSACTED. The default is AUTO_ACKNOWLEDGE.
- -->
-<!-- <cacheManagerPeerProviderFactory-->
-<!-- class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"-->
-<!-- properties="peerDiscovery=automatic,-->
-<!-- multicastGroupAddress=230.0.0.1,-->
-<!-- multicastGroupPort=4446, timeToLive=1"-->
-<!-- propertySeparator=","-->
-<!-- />-->
-
-
- <!--
- CacheManagerPeerListener
- ========================
- (Enable for distributed operation)
-
- Specifies a CacheManagerPeerListenerFactory which will be used to create a
- CacheManagerPeerListener, which listens for messages from cache replicators participating in the cluster.
-
- The attributes of cacheManagerPeerListenerFactory are:
- class - a fully qualified factory class name
- properties - comma separated properties having meaning only to the factory.
-
- Ehcache comes with a built-in RMI-based distribution system. The listener component is
- RMICacheManagerPeerListener which is configured using
- RMICacheManagerPeerListenerFactory. It is configured as per the following example:
-
- <cacheManagerPeerListenerFactory
- class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
- properties="hostName=fully_qualified_hostname_or_ip,
- port=40001,
- remoteObjectPort=40002,
- socketTimeoutMillis=120000"
- propertySeparator="," />
-
- All properties are optional. They are:
- * hostName - the hostName of the host the listener is running on. Specify
- where the host is multihomed and you want to control the interface over which cluster
- messages are received. Defaults to the host name of the default interface if not
- specified.
- * port - the port the RMI Registry listener listens on. This defaults to a free port if not specified.
- * remoteObjectPort - the port number on which the remote objects bound in the registry receive calls.
- This defaults to a free port if not specified.
- * socketTimeoutMillis - the number of ms client sockets will stay open when sending
- messages to the listener. This should be long enough for the slowest message.
- If not specified it defaults to 120000ms.
-
- -->
-<!-- <cacheManagerPeerListenerFactory-->
-<!-- class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>-->
-
- <!-- Cache configuration.
-
- The following attributes are required.
-
- name:
- Sets the name of the cache. This is used to identify the cache. It must be unique.
-
- maxElementsInMemory:
- Sets the maximum number of objects that will be created in memory
-
- maxElementsOnDisk:
- Sets the maximum number of objects that will be maintained in the DiskStore
- The default value is zero, meaning unlimited.
-
- eternal:
- Sets whether elements are eternal. If eternal, timeouts are ignored and the
- element is never expired.
-
- overflowToDisk:
- Sets whether elements can overflow to disk when the memory store
- has reached the maxInMemory limit.
-
- The following attributes are optional.
-
- timeToIdleSeconds:
- Sets the time to idle for an element before it expires.
- i.e. The maximum amount of time between accesses before an element expires
- Is only used if the element is not eternal.
- Optional attribute. A value of 0 means that an Element can idle for infinity.
- The default value is 0.
-
- timeToLiveSeconds:
- Sets the time to live for an element before it expires.
- i.e. The maximum time between creation time and when an element expires.
- Is only used if the element is not eternal.
- Optional attribute. A value of 0 means that and Element can live for infinity.
- The default value is 0.
-
- diskPersistent:
- Whether the disk store persists between restarts of the Virtual Machine.
- The default value is false.
-
- diskExpiryThreadIntervalSeconds:
- The number of seconds between runs of the disk expiry thread. The default value
- is 120 seconds.
-
- memoryStoreEvictionPolicy:
- Policy would be enforced upon reaching the maxElementsInMemory limit. Default
- policy is Least Recently Used (specified as LRU). Other policies available -
- First In First Out (specified as FIFO) and Less Frequently Used
- (specified as LFU)
-
- -->
-
- <!--
- Mandatory Default Cache configuration. These settings will be applied to caches
- created programmtically using CacheManager.add(String cacheName)
- -->
- <defaultCache
- maxElementsInMemory="20000"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"
- />
-
-
- <!-- the cache used for triple queries by KiWi -->
- <cache name="uri-node-cache"
- statistics="true"
- maxElementsInMemory="100000"
- timeToIdleSeconds="3600"
- overflowToDisk="false"/>
- <cache name="anon-node-cache"
- statistics="true"
- maxElementsInMemory="10000"
- timeToIdleSeconds="3600"
- overflowToDisk="false"/>
- <cache name="literal-cache"
- statistics="true"
- maxElementsInMemory="10000"
- timeToIdleSeconds="3600"
- overflowToDisk="false"/>
-
- <cache name="namespace-prefix-cache"
- statistics="true"
- maxElementsInMemory="100"
- overflowToDisk="true"/>
-
- <cache name="namespace-uri-cache"
- statistics="true"
- maxElementsInMemory="100"
- overflowToDisk="true"/>
-
- <!-- the cache used for triple queries by KiWi -->
- <cache name="query-cache"
- statistics="true"
- maxElementsInMemory="200000"
- timeToIdleSeconds="3600"
- overflowToDisk="false"/>
-
- <!-- the cache used for resource lookups from module jar files -->
- <cache name="resource-cache"
- statistics="true"
- maxElementsInMemory="10000"
- timeToIdleSeconds="3600"
- timeToLiveSeconds="3600"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <!-- the cache used for triple queries by KiWi -->
- <cache name="page-cache"
- statistics="true"
- maxElementsInMemory="500"
- timeToIdleSeconds="3600"
- memoryStoreEvictionPolicy="LRU"
- overflowToDisk="true"/>
-
- <cache name="http-content-cache"
- statistics="true"
- maxElementsInMemory="500"
- timeToIdleSeconds="3600"
- memoryStoreEvictionPolicy="LRU"
- overflowToDisk="true"/>
-
-
- <!-- uncomment to enable cache debugging -->
-<!--
- <cacheManagerPeerListenerFactory
- class="org.terracotta.ehcachedx.monitor.probe.ProbePeerListenerFactory"
- properties="monitorAddress=localhost, monitorPort=9889" />
--->
-
-</ehcache>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/8a59038f/launchers/marmotta-webapp/src/main/resources/ehcache-marmotta.xml
----------------------------------------------------------------------
diff --git a/launchers/marmotta-webapp/src/main/resources/ehcache-marmotta.xml b/launchers/marmotta-webapp/src/main/resources/ehcache-marmotta.xml
new file mode 100644
index 0000000..eb01074
--- /dev/null
+++ b/launchers/marmotta-webapp/src/main/resources/ehcache-marmotta.xml
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<!--
+CacheManager Configuration
+==========================
+An ehcache-marmotta.xml corresponds to a single CacheManager.
+
+See instructions below or the ehcache schema (ehcache.xsd) on how to configure.
+
+System property tokens can be specified in this file which are replaced when the configuration
+is loaded. For example multicastGroupPort=${multicastGroupPort} can be replaced with the
+System property either from an environment variable or a system property specified with a
+command line switch such as -DmulticastGroupPort=4446.
+
+The attributes of <ehcache> are:
+* name - an optional name for the CacheManager. The name is optional and primarily used
+for documentation or to distinguish Terracotta clustered cache state. With Terracotta
+clustered caches, a combination of CacheManager name and cache name uniquely identify a
+particular cache store in the Terracotta clustered memory.
+* updateCheck - an optional boolean flag specifying whether this CacheManager should check
+for new versions of Ehcache over the Internet. If not specified, updateCheck="true".
+* monitoring - an optional setting that determines whether the CacheManager should
+automatically register the SampledCacheMBean with the system MBean server. Currently,
+this monitoring is only useful when using Terracotta and thus the "autodetect" value
+will detect the presence of Terracotta and register the MBean. Other allowed values
+are "on" and "off". The default is "autodetect".
+-->
+<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
+ updateCheck="false"
+ name="lmf">
+
+ <!--
+ DiskStore configuration
+ =======================
+
+ The diskStore element is optional. To turn off disk store path creation, comment out the diskStore
+ element below.
+
+ Configure it if you have overflowToDisk or diskPersistent enabled for any cache.
+
+ If it is not configured, and a cache is created which requires a disk store, a warning will be
+ issued and java.io.tmpdir will automatically be used.
+
+ diskStore has only one attribute - "path". It is the path to the directory where
+ .data and .index files will be created.
+
+ If the path is one of the following Java System Property it is replaced by its value in the
+ running VM. For backward compatibility these are not specified without being enclosed in the ${token}
+ replacement syntax.
+
+ The following properties are translated:
+ * user.home - KiWiUser's home directory
+ * user.dir - KiWiUser's current working directory
+ * java.io.tmpdir - Default temp file path
+ * ehcache.disk.store.dir - A system property you would normally specify on the command line
+ e.g. java -Dehcache.disk.store.dir=/u01/myapp/diskdir ...
+
+ Subdirectories can be specified below the property e.g. java.io.tmpdir/one
+
+ -->
+ <!--
+ <diskStore path="java.io.tmpdir/lmf-cache/lmf"/>
+ -->
+ <!--
+ Cachemanagereventlistener
+ =========================
+ Specifies a CacheManagerEventListenerFactory which is notified when Caches are added
+ or removed from the CacheManager.
+
+ The attributes of CacheManagerEventListenerFactory are:
+ * class - a fully qualified factory class name
+ * properties - comma separated properties having meaning only to the factory.
+
+ Sets the fully qualified class name to be registered as the CacheManager event listener.
+
+ The events include:
+ * adding a Cache
+ * removing a Cache
+
+ Callbacks to listener methods are synchronous and unsynchronized. It is the responsibility
+ of the implementer to safely handle the potential performance and thread safety issues
+ depending on what their listener is doing.
+
+ If no class is specified, no listener is created. There is no default.
+ -->
+ <cacheManagerEventListenerFactory class="" properties=""/>
+
+
+ <!--
+ CacheManagerPeerProvider
+ ========================
+ (For distributed operation)
+
+ Specifies a CacheManagerPeerProviderFactory which will be used to create a
+ CacheManagerPeerProvider, which discovers other CacheManagers in the cluster.
+
+ One or more providers can be configured. The first one in the ehcache-marmotta.xml is the default, which is used
+ for replication and bootstrapping.
+
+ The attributes of cacheManagerPeerProviderFactory are:
+ * class - a fully qualified factory class name
+ * properties - comma separated properties having meaning only to the factory.
+
+ Providers are available for RMI, JGroups and JMS as shown following.
+
+ RMICacheManagerPeerProvider
+ +++++++++++++++++++++++++++
+
+ Ehcache comes with a built-in RMI-based distribution system with two means of discovery of
+ CacheManager peers participating in the cluster:
+ * automatic, using a multicast group. This one automatically discovers peers and detects
+ changes such as peers entering and leaving the group
+ * manual, using manual rmiURL configuration. A hardcoded list of peers is provided at
+ configuration time.
+
+ Configuring Automatic Discovery:
+ Automatic discovery is configured as per the following example:
+ <cacheManagerPeerProviderFactory
+ class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
+ properties="hostName=fully_qualified_hostname_or_ip,
+ peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
+ multicastGroupPort=4446, timeToLive=32"/>
+
+ Valid properties are:
+ * peerDiscovery (mandatory) - specify "automatic"
+ * multicastGroupAddress (mandatory) - specify a valid multicast group address
+ * multicastGroupPort (mandatory) - specify a dedicated port for the multicast heartbeat
+ traffic
+ * timeToLive - specify a value between 0 and 255 which determines how far the packets will
+ propagate.
+
+ By convention, the restrictions are:
+ 0 - the same host
+ 1 - the same subnet
+ 32 - the same site
+ 64 - the same region
+ 128 - the same continent
+ 255 - unrestricted
+
+ * hostName - the hostname or IP of the interface to be used for sending and receiving multicast packets
+ (relevant to mulithomed hosts only)
+
+ Configuring Manual Discovery:
+ Manual discovery requires a unique configuration per host. It is contains a list of rmiURLs for the peers, other
+ than itself. So, if we have server1, server2 and server3 the configuration will be:
+
+ In server1's configuration:
+ <cacheManagerPeerProviderFactory class=
+ "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
+ properties="peerDiscovery=manual,
+ rmiUrls=//server2:40000/sampleCache1|//server3:40000/sampleCache1
+ | //server2:40000/sampleCache2|//server3:40000/sampleCache2"
+ propertySeparator="," />
+
+ In server2's configuration:
+ <cacheManagerPeerProviderFactory class=
+ "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
+ properties="peerDiscovery=manual,
+ rmiUrls=//server1:40000/sampleCache1|//server3:40000/sampleCache1
+ | //server1:40000/sampleCache2|//server3:40000/sampleCache2"
+ propertySeparator="," />
+
+ In server3's configuration:
+ <cacheManagerPeerProviderFactory class=
+ "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
+ properties="peerDiscovery=manual,
+ rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1
+ | //server1:40000/sampleCache2|//server2:40000/sampleCache2"
+ propertySeparator="," />
+
+
+ Valid properties are:
+ * peerDiscovery (mandatory) - specify "manual"
+ * rmiUrls (mandatory) - specify a pipe separated list of rmiUrls, in the form
+ //hostname:port
+ * hostname (optional) - the hostname is the hostname of the remote CacheManager peer. The port is the listening
+ port of the RMICacheManagerPeerListener of the remote CacheManager peer.
+
+ JGroupsCacheManagerPeerProvider
+ +++++++++++++++++++++++++++++++
+ <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
+ properties="connect=UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_ttl=32;
+ mcast_send_buf_size=150000;mcast_recv_buf_size=80000):
+ PING(timeout=2000;num_initial_members=6):
+ MERGE2(min_interval=5000;max_interval=10000):
+ FD_SOCK:VERIFY_SUSPECT(timeout=1500):
+ pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):
+ UNICAST(timeout=5000):
+ pbcast.STABLE(desired_avg_gossip=20000):
+ FRAG:
+ pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=false)"
+ propertySeparator="::"
+ />
+ The only property necessary is the connect String used by jgroups to configure itself. Refer to the Jgroups documentation for explanation
+ of all the protocols. The example above uses UDP multicast. If the connect property is not specified the default JGroups connection will be
+ used.
+
+
+ JMSCacheManagerPeerProviderFactory
+ ++++++++++++++++++++++++++++++++++
+ <cacheManagerPeerProviderFactory
+ class="net.sf.ehcache.distribution.jms.JMSCacheManagerPeerProviderFactory"
+ properties="..."
+ propertySeparator=","
+ />
+
+ The JMS PeerProviderFactory uses JNDI to maintain message queue independence. Refer to the manual for full configuration
+ examples using ActiveMQ and Open Message Queue.
+
+ Valid properties are:
+ * initialContextFactoryName (mandatory) - the name of the factory used to create the message queue initial context.
+ * providerURL (mandatory) - the JNDI configuration information for the service provider to use.
+ * topicConnectionFactoryBindingName (mandatory) - the JNDI binding name for the TopicConnectionFactory
+ * topicBindingName (mandatory) - the JNDI binding name for the topic name
+ * getQueueBindingName (mandatory only if using jmsCacheLoader) - the JNDI binding name for the queue name
+ * securityPrincipalName - the JNDI java.naming.security.principal
+ * securityCredentials - the JNDI java.naming.security.credentials
+ * urlPkgPrefixes - the JNDI java.naming.factory.url.pkgs
+ * userName - the user name to use when creating the TopicConnection to the Message Queue
+ * password - the password to use when creating the TopicConnection to the Message Queue
+ * acknowledgementMode - the JMS Acknowledgement mode for both publisher and subscriber. The available choices are
+ AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE and SESSION_TRANSACTED. The default is AUTO_ACKNOWLEDGE.
+ -->
+<!-- <cacheManagerPeerProviderFactory-->
+<!-- class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"-->
+<!-- properties="peerDiscovery=automatic,-->
+<!-- multicastGroupAddress=230.0.0.1,-->
+<!-- multicastGroupPort=4446, timeToLive=1"-->
+<!-- propertySeparator=","-->
+<!-- />-->
+
+
+ <!--
+ CacheManagerPeerListener
+ ========================
+ (Enable for distributed operation)
+
+ Specifies a CacheManagerPeerListenerFactory which will be used to create a
+ CacheManagerPeerListener, which listens for messages from cache replicators participating in the cluster.
+
+ The attributes of cacheManagerPeerListenerFactory are:
+ class - a fully qualified factory class name
+ properties - comma separated properties having meaning only to the factory.
+
+ Ehcache comes with a built-in RMI-based distribution system. The listener component is
+ RMICacheManagerPeerListener which is configured using
+ RMICacheManagerPeerListenerFactory. It is configured as per the following example:
+
+ <cacheManagerPeerListenerFactory
+ class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
+ properties="hostName=fully_qualified_hostname_or_ip,
+ port=40001,
+ remoteObjectPort=40002,
+ socketTimeoutMillis=120000"
+ propertySeparator="," />
+
+ All properties are optional. They are:
+ * hostName - the hostName of the host the listener is running on. Specify
+ where the host is multihomed and you want to control the interface over which cluster
+ messages are received. Defaults to the host name of the default interface if not
+ specified.
+ * port - the port the RMI Registry listener listens on. This defaults to a free port if not specified.
+ * remoteObjectPort - the port number on which the remote objects bound in the registry receive calls.
+ This defaults to a free port if not specified.
+ * socketTimeoutMillis - the number of ms client sockets will stay open when sending
+ messages to the listener. This should be long enough for the slowest message.
+ If not specified it defaults to 120000ms.
+
+ -->
+<!-- <cacheManagerPeerListenerFactory-->
+<!-- class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>-->
+
+ <!-- Cache configuration.
+
+ The following attributes are required.
+
+ name:
+ Sets the name of the cache. This is used to identify the cache. It must be unique.
+
+ maxElementsInMemory:
+ Sets the maximum number of objects that will be created in memory
+
+ maxElementsOnDisk:
+ Sets the maximum number of objects that will be maintained in the DiskStore
+ The default value is zero, meaning unlimited.
+
+ eternal:
+ Sets whether elements are eternal. If eternal, timeouts are ignored and the
+ element is never expired.
+
+ overflowToDisk:
+ Sets whether elements can overflow to disk when the memory store
+ has reached the maxInMemory limit.
+
+ The following attributes are optional.
+
+ timeToIdleSeconds:
+ Sets the time to idle for an element before it expires.
+ i.e. The maximum amount of time between accesses before an element expires
+ Is only used if the element is not eternal.
+ Optional attribute. A value of 0 means that an Element can idle for infinity.
+ The default value is 0.
+
+ timeToLiveSeconds:
+ Sets the time to live for an element before it expires.
+ i.e. The maximum time between creation time and when an element expires.
+ Is only used if the element is not eternal.
+ Optional attribute. A value of 0 means that and Element can live for infinity.
+ The default value is 0.
+
+ diskPersistent:
+ Whether the disk store persists between restarts of the Virtual Machine.
+ The default value is false.
+
+ diskExpiryThreadIntervalSeconds:
+ The number of seconds between runs of the disk expiry thread. The default value
+ is 120 seconds.
+
+ memoryStoreEvictionPolicy:
+ Policy would be enforced upon reaching the maxElementsInMemory limit. Default
+ policy is Least Recently Used (specified as LRU). Other policies available -
+ First In First Out (specified as FIFO) and Less Frequently Used
+ (specified as LFU)
+
+ -->
+
+ <!--
+ Mandatory Default Cache configuration. These settings will be applied to caches
+ created programmtically using CacheManager.add(String cacheName)
+ -->
+ <defaultCache
+ maxElementsInMemory="20000"
+ overflowToDisk="false"
+ memoryStoreEvictionPolicy="LRU"
+ />
+
+
+ <!-- the cache used for triple queries by KiWi -->
+ <cache name="uri-node-cache"
+ statistics="true"
+ maxElementsInMemory="100000"
+ timeToIdleSeconds="3600"
+ overflowToDisk="false"/>
+ <cache name="anon-node-cache"
+ statistics="true"
+ maxElementsInMemory="10000"
+ timeToIdleSeconds="3600"
+ overflowToDisk="false"/>
+ <cache name="literal-cache"
+ statistics="true"
+ maxElementsInMemory="10000"
+ timeToIdleSeconds="3600"
+ overflowToDisk="false"/>
+
+ <cache name="namespace-prefix-cache"
+ statistics="true"
+ maxElementsInMemory="100"
+ overflowToDisk="false"/>
+
+ <cache name="namespace-uri-cache"
+ statistics="true"
+ maxElementsInMemory="100"
+ overflowToDisk="false"/>
+
+ <!-- the cache used for triple queries by KiWi -->
+ <cache name="query-cache"
+ statistics="true"
+ maxElementsInMemory="200000"
+ timeToIdleSeconds="3600"
+ overflowToDisk="false"/>
+
+ <!-- the cache used for resource lookups from module jar files -->
+ <cache name="resource-cache"
+ statistics="true"
+ maxElementsInMemory="10000"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ overflowToDisk="false"
+ memoryStoreEvictionPolicy="LRU"/>
+
+ <!-- uncomment to enable cache debugging -->
+<!--
+ <cacheManagerPeerListenerFactory
+ class="org.terracotta.ehcachedx.monitor.probe.ProbePeerListenerFactory"
+ properties="monitorAddress=localhost, monitorPort=9889" />
+-->
+
+</ehcache>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/8a59038f/launchers/marmotta-webapp/src/test/resources/ehcache.xml
----------------------------------------------------------------------
diff --git a/launchers/marmotta-webapp/src/test/resources/ehcache.xml b/launchers/marmotta-webapp/src/test/resources/ehcache.xml
index 727aef0..7cd8120 100644
--- a/launchers/marmotta-webapp/src/test/resources/ehcache.xml
+++ b/launchers/marmotta-webapp/src/test/resources/ehcache.xml
@@ -19,7 +19,7 @@
<!--
CacheManager Configuration
==========================
-An ehcache-lmf.xml corresponds to a single CacheManager.
+An ehcache-marmotta.xml corresponds to a single CacheManager.
See instructions below or the ehcache schema (ehcache.xsd) on how to configure.
@@ -107,7 +107,7 @@ are "on" and "off". The default is "autodetect".
Specifies a CacheManagerPeerProviderFactory which will be used to create a
CacheManagerPeerProvider, which discovers other CacheManagers in the cluster.
- One or more providers can be configured. The first one in the ehcache-lmf.xml is the default, which is used
+ One or more providers can be configured. The first one in the ehcache-marmotta.xml is the default, which is used
for replication and bootstrapping.
The attributes of cacheManagerPeerProviderFactory are:
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/8a59038f/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java
index 4ffe5cf..f1e9d80 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java
@@ -56,7 +56,12 @@ public class CachingServiceImpl implements CachingService {
@PostConstruct
public void initialize() {
- URL url = this.getClass().getClassLoader().getResource("ehcache-lmf.xml");
+ URL url = this.getClass().getClassLoader().getResource("ehcache-marmotta.xml");
+
+ // backwards compatibility
+ if(url == null) {
+ url = this.getClass().getClassLoader().getResource("ehcache-lmf.xml");
+ }
log.info("Apache Marmotta Caching Service starting up (configuration at {}) ...",url);
manager = CacheManager.create(url);
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/8a59038f/platform/marmotta-core/src/test/resources/ehcache-db.xml
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/test/resources/ehcache-db.xml b/platform/marmotta-core/src/test/resources/ehcache-db.xml
deleted file mode 100644
index ad838b2..0000000
--- a/platform/marmotta-core/src/test/resources/ehcache-db.xml
+++ /dev/null
@@ -1,451 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!--
-CacheManager Configuration
-==========================
-An ehcache-lmf.xml corresponds to a single CacheManager.
-
-See instructions below or the ehcache schema (ehcache.xsd) on how to configure.
-
-System property tokens can be specified in this file which are replaced when the configuration
-is loaded. For example multicastGroupPort=${multicastGroupPort} can be replaced with the
-System property either from an environment variable or a system property specified with a
-command line switch such as -DmulticastGroupPort=4446.
-
-The attributes of <ehcache> are:
-* name - an optional name for the CacheManager. The name is optional and primarily used
-for documentation or to distinguish Terracotta clustered cache state. With Terracotta
-clustered caches, a combination of CacheManager name and cache name uniquely identify a
-particular cache store in the Terracotta clustered memory.
-* updateCheck - an optional boolean flag specifying whether this CacheManager should check
-for new versions of Ehcache over the Internet. If not specified, updateCheck="true".
-* monitoring - an optional setting that determines whether the CacheManager should
-automatically register the SampledCacheMBean with the system MBean server. Currently,
-this monitoring is only useful when using Terracotta and thus the "autodetect" value
-will detect the presence of Terracotta and register the MBean. Other allowed values
-are "on" and "off". The default is "autodetect".
--->
-<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" name="lmf-db">
-
- <!--
- DiskStore configuration
- =======================
-
- The diskStore element is optional. To turn off disk store path creation, comment out the diskStore
- element below.
-
- Configure it if you have overflowToDisk or diskPersistent enabled for any cache.
-
- If it is not configured, and a cache is created which requires a disk store, a warning will be
- issued and java.io.tmpdir will automatically be used.
-
- diskStore has only one attribute - "path". It is the path to the directory where
- .data and .index files will be created.
-
- If the path is one of the following Java System Property it is replaced by its value in the
- running VM. For backward compatibility these are not specified without being enclosed in the ${token}
- replacement syntax.
-
- The following properties are translated:
- * user.home - KiWiUser's home directory
- * user.dir - KiWiUser's current working directory
- * java.io.tmpdir - Default temp file path
- * ehcache.disk.store.dir - A system property you would normally specify on the command line
- e.g. java -Dehcache.disk.store.dir=/u01/myapp/diskdir ...
-
- Subdirectories can be specified below the property e.g. java.io.tmpdir/one
-
- -->
- <diskStore path="java.io.tmpdir/lmf-cache/db"/>
-
- <!--
- Cachemanagereventlistener
- =========================
- Specifies a CacheManagerEventListenerFactory which is notified when Caches are added
- or removed from the CacheManager.
-
- The attributes of CacheManagerEventListenerFactory are:
- * class - a fully qualified factory class name
- * properties - comma separated properties having meaning only to the factory.
-
- Sets the fully qualified class name to be registered as the CacheManager event listener.
-
- The events include:
- * adding a Cache
- * removing a Cache
-
- Callbacks to listener methods are synchronous and unsynchronized. It is the responsibility
- of the implementer to safely handle the potential performance and thread safety issues
- depending on what their listener is doing.
-
- If no class is specified, no listener is created. There is no default.
- -->
- <cacheManagerEventListenerFactory class="" properties=""/>
-
-
- <!--
- CacheManagerPeerProvider
- ========================
- (For distributed operation)
-
- Specifies a CacheManagerPeerProviderFactory which will be used to create a
- CacheManagerPeerProvider, which discovers other CacheManagers in the cluster.
-
- One or more providers can be configured. The first one in the ehcache-lmf.xml is the default, which is used
- for replication and bootstrapping.
-
- The attributes of cacheManagerPeerProviderFactory are:
- * class - a fully qualified factory class name
- * properties - comma separated properties having meaning only to the factory.
-
- Providers are available for RMI, JGroups and JMS as shown following.
-
- RMICacheManagerPeerProvider
- +++++++++++++++++++++++++++
-
- Ehcache comes with a built-in RMI-based distribution system with two means of discovery of
- CacheManager peers participating in the cluster:
- * automatic, using a multicast group. This one automatically discovers peers and detects
- changes such as peers entering and leaving the group
- * manual, using manual rmiURL configuration. A hardcoded list of peers is provided at
- configuration time.
-
- Configuring Automatic Discovery:
- Automatic discovery is configured as per the following example:
- <cacheManagerPeerProviderFactory
- class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="hostName=fully_qualified_hostname_or_ip,
- peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
- multicastGroupPort=4446, timeToLive=32"/>
-
- Valid properties are:
- * peerDiscovery (mandatory) - specify "automatic"
- * multicastGroupAddress (mandatory) - specify a valid multicast group address
- * multicastGroupPort (mandatory) - specify a dedicated port for the multicast heartbeat
- traffic
- * timeToLive - specify a value between 0 and 255 which determines how far the packets will
- propagate.
-
- By convention, the restrictions are:
- 0 - the same host
- 1 - the same subnet
- 32 - the same site
- 64 - the same region
- 128 - the same continent
- 255 - unrestricted
-
- * hostName - the hostname or IP of the interface to be used for sending and receiving multicast packets
- (relevant to mulithomed hosts only)
-
- Configuring Manual Discovery:
- Manual discovery requires a unique configuration per host. It is contains a list of rmiURLs for the peers, other
- than itself. So, if we have server1, server2 and server3 the configuration will be:
-
- In server1's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server2:40000/sampleCache1|//server3:40000/sampleCache1
- | //server2:40000/sampleCache2|//server3:40000/sampleCache2"
- propertySeparator="," />
-
- In server2's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server1:40000/sampleCache1|//server3:40000/sampleCache1
- | //server1:40000/sampleCache2|//server3:40000/sampleCache2"
- propertySeparator="," />
-
- In server3's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1
- | //server1:40000/sampleCache2|//server2:40000/sampleCache2"
- propertySeparator="," />
-
-
- Valid properties are:
- * peerDiscovery (mandatory) - specify "manual"
- * rmiUrls (mandatory) - specify a pipe separated list of rmiUrls, in the form
- //hostname:port
- * hostname (optional) - the hostname is the hostname of the remote CacheManager peer. The port is the listening
- port of the RMICacheManagerPeerListener of the remote CacheManager peer.
-
- JGroupsCacheManagerPeerProvider
- +++++++++++++++++++++++++++++++
- <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
- properties="connect=UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_ttl=32;
- mcast_send_buf_size=150000;mcast_recv_buf_size=80000):
- PING(timeout=2000;num_initial_members=6):
- MERGE2(min_interval=5000;max_interval=10000):
- FD_SOCK:VERIFY_SUSPECT(timeout=1500):
- pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):
- UNICAST(timeout=5000):
- pbcast.STABLE(desired_avg_gossip=20000):
- FRAG:
- pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=false)"
- propertySeparator="::"
- />
- The only property necessary is the connect String used by jgroups to configure itself. Refer to the Jgroups documentation for explanation
- of all the protocols. The example above uses UDP multicast. If the connect property is not specified the default JGroups connection will be
- used.
-
-
- JMSCacheManagerPeerProviderFactory
- ++++++++++++++++++++++++++++++++++
- <cacheManagerPeerProviderFactory
- class="net.sf.ehcache.distribution.jms.JMSCacheManagerPeerProviderFactory"
- properties="..."
- propertySeparator=","
- />
-
- The JMS PeerProviderFactory uses JNDI to maintain message queue independence. Refer to the manual for full configuration
- examples using ActiveMQ and Open Message Queue.
-
- Valid properties are:
- * initialContextFactoryName (mandatory) - the name of the factory used to create the message queue initial context.
- * providerURL (mandatory) - the JNDI configuration information for the service provider to use.
- * topicConnectionFactoryBindingName (mandatory) - the JNDI binding name for the TopicConnectionFactory
- * topicBindingName (mandatory) - the JNDI binding name for the topic name
- * getQueueBindingName (mandatory only if using jmsCacheLoader) - the JNDI binding name for the queue name
- * securityPrincipalName - the JNDI java.naming.security.principal
- * securityCredentials - the JNDI java.naming.security.credentials
- * urlPkgPrefixes - the JNDI java.naming.factory.url.pkgs
- * userName - the user name to use when creating the TopicConnection to the Message Queue
- * password - the password to use when creating the TopicConnection to the Message Queue
- * acknowledgementMode - the JMS Acknowledgement mode for both publisher and subscriber. The available choices are
- AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE and SESSION_TRANSACTED. The default is AUTO_ACKNOWLEDGE.
- -->
-<!-- <cacheManagerPeerProviderFactory-->
-<!-- class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"-->
-<!-- properties="peerDiscovery=automatic,-->
-<!-- multicastGroupAddress=230.0.0.1,-->
-<!-- multicastGroupPort=4446, timeToLive=1"-->
-<!-- propertySeparator=","-->
-<!-- />-->
-
-
- <!--
- CacheManagerPeerListener
- ========================
- (Enable for distributed operation)
-
- Specifies a CacheManagerPeerListenerFactory which will be used to create a
- CacheManagerPeerListener, which listens for messages from cache replicators participating in the cluster.
-
- The attributes of cacheManagerPeerListenerFactory are:
- class - a fully qualified factory class name
- properties - comma separated properties having meaning only to the factory.
-
- Ehcache comes with a built-in RMI-based distribution system. The listener component is
- RMICacheManagerPeerListener which is configured using
- RMICacheManagerPeerListenerFactory. It is configured as per the following example:
-
- <cacheManagerPeerListenerFactory
- class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
- properties="hostName=fully_qualified_hostname_or_ip,
- port=40001,
- remoteObjectPort=40002,
- socketTimeoutMillis=120000"
- propertySeparator="," />
-
- All properties are optional. They are:
- * hostName - the hostName of the host the listener is running on. Specify
- where the host is multihomed and you want to control the interface over which cluster
- messages are received. Defaults to the host name of the default interface if not
- specified.
- * port - the port the RMI Registry listener listens on. This defaults to a free port if not specified.
- * remoteObjectPort - the port number on which the remote objects bound in the registry receive calls.
- This defaults to a free port if not specified.
- * socketTimeoutMillis - the number of ms client sockets will stay open when sending
- messages to the listener. This should be long enough for the slowest message.
- If not specified it defaults to 120000ms.
-
- -->
-<!-- <cacheManagerPeerListenerFactory-->
-<!-- class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>-->
-
- <!-- Cache configuration.
-
- The following attributes are required.
-
- name:
- Sets the name of the cache. This is used to identify the cache. It must be unique.
-
- maxElementsInMemory:
- Sets the maximum number of objects that will be created in memory
-
- maxElementsOnDisk:
- Sets the maximum number of objects that will be maintained in the DiskStore
- The default value is zero, meaning unlimited.
-
- eternal:
- Sets whether elements are eternal. If eternal, timeouts are ignored and the
- element is never expired.
-
- overflowToDisk:
- Sets whether elements can overflow to disk when the memory store
- has reached the maxInMemory limit.
-
- The following attributes are optional.
-
- timeToIdleSeconds:
- Sets the time to idle for an element before it expires.
- i.e. The maximum amount of time between accesses before an element expires
- Is only used if the element is not eternal.
- Optional attribute. A value of 0 means that an Element can idle for infinity.
- The default value is 0.
-
- timeToLiveSeconds:
- Sets the time to live for an element before it expires.
- i.e. The maximum time between creation time and when an element expires.
- Is only used if the element is not eternal.
- Optional attribute. A value of 0 means that and Element can live for infinity.
- The default value is 0.
-
- diskPersistent:
- Whether the disk store persists between restarts of the Virtual Machine.
- The default value is false.
-
- diskExpiryThreadIntervalSeconds:
- The number of seconds between runs of the disk expiry thread. The default value
- is 120 seconds.
-
- memoryStoreEvictionPolicy:
- Policy would be enforced upon reaching the maxElementsInMemory limit. Default
- policy is Least Recently Used (specified as LRU). Other policies available -
- First In First Out (specified as FIFO) and Less Frequently Used
- (specified as LFU)
-
- -->
-
- <!--
- Mandatory Default Cache configuration. These settings will be applied to caches
- created programmtically using CacheManager.add(String cacheName)
- -->
- <defaultCache
- maxElementsInMemory="20000"
- eternal="true"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"
- />
-
- <cache name="org.apache.marmotta.platform.core.model.rdf.KiWiNode"
- statistics="true"
- maxElementsInMemory="100000"
- eternal="false"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.apache.marmotta.platform.versioning.model.Version"
- statistics="true"
- maxElementsInMemory="10000"
- eternal="true"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
-
- <cache name="org.apache.marmotta.platform.core.model.rdf.KiWiNamespace"
- statistics="true"
- maxElementsInMemory="100"
- eternal="false"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.apache.marmotta.platform.core.model.user.KiWiGroup"
- statistics="true"
- maxElementsInMemory="100"
- eternal="false"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.apache.marmotta.platform.user.model.UserAccount"
- statistics="true"
- maxElementsInMemory="100"
- eternal="false"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
-
- <cache name="org.apache.marmotta.platform.core.model.rdf.KiWiTriple"
- statistics="true"
- maxElementsInMemory="200000"
- eternal="false"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.apache.marmotta.platform.reasoner.model.Pattern"
- statistics="true"
- maxElementsInMemory="1000"
- eternal="true"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.apache.marmotta.platform.reasoner.model.Field"
- statistics="true"
- maxElementsInMemory="10000"
- eternal="true"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.apache.marmotta.platform.reasoner.model.Rule"
- statistics="true"
- maxElementsInMemory="100"
- eternal="true"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.apache.marmotta.platform.reasoner.model.Rule.body"
- statistics="true"
- maxElementsInMemory="1000"
- eternal="true"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.apache.marmotta.platform.reasoner.model.Program"
- statistics="true"
- maxElementsInMemory="100"
- eternal="true"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.hibernate.cache.StandardQueryCache"
- statistics="true"
- maxElementsInMemory="10000"
- eternal="false"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <cache name="org.hibernate.cache.UpdateTimestampsCache"
- statistics="true"
- maxElementsInMemory="10000"
- eternal="true"
- overflowToDisk="false"/>
-
-
-<!-- uncomment to enable cache debugging -->
-<!--
- <cacheManagerPeerListenerFactory
- class="org.terracotta.ehcachedx.monitor.probe.ProbePeerListenerFactory"
- properties="monitorAddress=localhost, monitorPort=9889" />
--->
-
-</ehcache>
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/8a59038f/platform/marmotta-core/src/test/resources/ehcache-lmf.xml
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/test/resources/ehcache-lmf.xml b/platform/marmotta-core/src/test/resources/ehcache-lmf.xml
deleted file mode 100644
index 824d596..0000000
--- a/platform/marmotta-core/src/test/resources/ehcache-lmf.xml
+++ /dev/null
@@ -1,417 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!--
-CacheManager Configuration
-==========================
-An ehcache-lmf.xml corresponds to a single CacheManager.
-
-See instructions below or the ehcache schema (ehcache.xsd) on how to configure.
-
-System property tokens can be specified in this file which are replaced when the configuration
-is loaded. For example multicastGroupPort=${multicastGroupPort} can be replaced with the
-System property either from an environment variable or a system property specified with a
-command line switch such as -DmulticastGroupPort=4446.
-
-The attributes of <ehcache> are:
-* name - an optional name for the CacheManager. The name is optional and primarily used
-for documentation or to distinguish Terracotta clustered cache state. With Terracotta
-clustered caches, a combination of CacheManager name and cache name uniquely identify a
-particular cache store in the Terracotta clustered memory.
-* updateCheck - an optional boolean flag specifying whether this CacheManager should check
-for new versions of Ehcache over the Internet. If not specified, updateCheck="true".
-* monitoring - an optional setting that determines whether the CacheManager should
-automatically register the SampledCacheMBean with the system MBean server. Currently,
-this monitoring is only useful when using Terracotta and thus the "autodetect" value
-will detect the presence of Terracotta and register the MBean. Other allowed values
-are "on" and "off". The default is "autodetect".
--->
-<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" name="lmf">
-
- <!--
- DiskStore configuration
- =======================
-
- The diskStore element is optional. To turn off disk store path creation, comment out the diskStore
- element below.
-
- Configure it if you have overflowToDisk or diskPersistent enabled for any cache.
-
- If it is not configured, and a cache is created which requires a disk store, a warning will be
- issued and java.io.tmpdir will automatically be used.
-
- diskStore has only one attribute - "path". It is the path to the directory where
- .data and .index files will be created.
-
- If the path is one of the following Java System Property it is replaced by its value in the
- running VM. For backward compatibility these are not specified without being enclosed in the ${token}
- replacement syntax.
-
- The following properties are translated:
- * user.home - KiWiUser's home directory
- * user.dir - KiWiUser's current working directory
- * java.io.tmpdir - Default temp file path
- * ehcache.disk.store.dir - A system property you would normally specify on the command line
- e.g. java -Dehcache.disk.store.dir=/u01/myapp/diskdir ...
-
- Subdirectories can be specified below the property e.g. java.io.tmpdir/one
-
- -->
- <diskStore path="java.io.tmpdir/lmf-cache/lmf"/>
-
- <!--
- Cachemanagereventlistener
- =========================
- Specifies a CacheManagerEventListenerFactory which is notified when Caches are added
- or removed from the CacheManager.
-
- The attributes of CacheManagerEventListenerFactory are:
- * class - a fully qualified factory class name
- * properties - comma separated properties having meaning only to the factory.
-
- Sets the fully qualified class name to be registered as the CacheManager event listener.
-
- The events include:
- * adding a Cache
- * removing a Cache
-
- Callbacks to listener methods are synchronous and unsynchronized. It is the responsibility
- of the implementer to safely handle the potential performance and thread safety issues
- depending on what their listener is doing.
-
- If no class is specified, no listener is created. There is no default.
- -->
- <cacheManagerEventListenerFactory class="" properties=""/>
-
-
- <!--
- CacheManagerPeerProvider
- ========================
- (For distributed operation)
-
- Specifies a CacheManagerPeerProviderFactory which will be used to create a
- CacheManagerPeerProvider, which discovers other CacheManagers in the cluster.
-
- One or more providers can be configured. The first one in the ehcache-lmf.xml is the default, which is used
- for replication and bootstrapping.
-
- The attributes of cacheManagerPeerProviderFactory are:
- * class - a fully qualified factory class name
- * properties - comma separated properties having meaning only to the factory.
-
- Providers are available for RMI, JGroups and JMS as shown following.
-
- RMICacheManagerPeerProvider
- +++++++++++++++++++++++++++
-
- Ehcache comes with a built-in RMI-based distribution system with two means of discovery of
- CacheManager peers participating in the cluster:
- * automatic, using a multicast group. This one automatically discovers peers and detects
- changes such as peers entering and leaving the group
- * manual, using manual rmiURL configuration. A hardcoded list of peers is provided at
- configuration time.
-
- Configuring Automatic Discovery:
- Automatic discovery is configured as per the following example:
- <cacheManagerPeerProviderFactory
- class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="hostName=fully_qualified_hostname_or_ip,
- peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
- multicastGroupPort=4446, timeToLive=32"/>
-
- Valid properties are:
- * peerDiscovery (mandatory) - specify "automatic"
- * multicastGroupAddress (mandatory) - specify a valid multicast group address
- * multicastGroupPort (mandatory) - specify a dedicated port for the multicast heartbeat
- traffic
- * timeToLive - specify a value between 0 and 255 which determines how far the packets will
- propagate.
-
- By convention, the restrictions are:
- 0 - the same host
- 1 - the same subnet
- 32 - the same site
- 64 - the same region
- 128 - the same continent
- 255 - unrestricted
-
- * hostName - the hostname or IP of the interface to be used for sending and receiving multicast packets
- (relevant to mulithomed hosts only)
-
- Configuring Manual Discovery:
- Manual discovery requires a unique configuration per host. It is contains a list of rmiURLs for the peers, other
- than itself. So, if we have server1, server2 and server3 the configuration will be:
-
- In server1's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server2:40000/sampleCache1|//server3:40000/sampleCache1
- | //server2:40000/sampleCache2|//server3:40000/sampleCache2"
- propertySeparator="," />
-
- In server2's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server1:40000/sampleCache1|//server3:40000/sampleCache1
- | //server1:40000/sampleCache2|//server3:40000/sampleCache2"
- propertySeparator="," />
-
- In server3's configuration:
- <cacheManagerPeerProviderFactory class=
- "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
- properties="peerDiscovery=manual,
- rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1
- | //server1:40000/sampleCache2|//server2:40000/sampleCache2"
- propertySeparator="," />
-
-
- Valid properties are:
- * peerDiscovery (mandatory) - specify "manual"
- * rmiUrls (mandatory) - specify a pipe separated list of rmiUrls, in the form
- //hostname:port
- * hostname (optional) - the hostname is the hostname of the remote CacheManager peer. The port is the listening
- port of the RMICacheManagerPeerListener of the remote CacheManager peer.
-
- JGroupsCacheManagerPeerProvider
- +++++++++++++++++++++++++++++++
- <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
- properties="connect=UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_ttl=32;
- mcast_send_buf_size=150000;mcast_recv_buf_size=80000):
- PING(timeout=2000;num_initial_members=6):
- MERGE2(min_interval=5000;max_interval=10000):
- FD_SOCK:VERIFY_SUSPECT(timeout=1500):
- pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):
- UNICAST(timeout=5000):
- pbcast.STABLE(desired_avg_gossip=20000):
- FRAG:
- pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=false)"
- propertySeparator="::"
- />
- The only property necessary is the connect String used by jgroups to configure itself. Refer to the Jgroups documentation for explanation
- of all the protocols. The example above uses UDP multicast. If the connect property is not specified the default JGroups connection will be
- used.
-
-
- JMSCacheManagerPeerProviderFactory
- ++++++++++++++++++++++++++++++++++
- <cacheManagerPeerProviderFactory
- class="net.sf.ehcache.distribution.jms.JMSCacheManagerPeerProviderFactory"
- properties="..."
- propertySeparator=","
- />
-
- The JMS PeerProviderFactory uses JNDI to maintain message queue independence. Refer to the manual for full configuration
- examples using ActiveMQ and Open Message Queue.
-
- Valid properties are:
- * initialContextFactoryName (mandatory) - the name of the factory used to create the message queue initial context.
- * providerURL (mandatory) - the JNDI configuration information for the service provider to use.
- * topicConnectionFactoryBindingName (mandatory) - the JNDI binding name for the TopicConnectionFactory
- * topicBindingName (mandatory) - the JNDI binding name for the topic name
- * getQueueBindingName (mandatory only if using jmsCacheLoader) - the JNDI binding name for the queue name
- * securityPrincipalName - the JNDI java.naming.security.principal
- * securityCredentials - the JNDI java.naming.security.credentials
- * urlPkgPrefixes - the JNDI java.naming.factory.url.pkgs
- * userName - the user name to use when creating the TopicConnection to the Message Queue
- * password - the password to use when creating the TopicConnection to the Message Queue
- * acknowledgementMode - the JMS Acknowledgement mode for both publisher and subscriber. The available choices are
- AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE and SESSION_TRANSACTED. The default is AUTO_ACKNOWLEDGE.
- -->
-<!-- <cacheManagerPeerProviderFactory-->
-<!-- class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"-->
-<!-- properties="peerDiscovery=automatic,-->
-<!-- multicastGroupAddress=230.0.0.1,-->
-<!-- multicastGroupPort=4446, timeToLive=1"-->
-<!-- propertySeparator=","-->
-<!-- />-->
-
-
- <!--
- CacheManagerPeerListener
- ========================
- (Enable for distributed operation)
-
- Specifies a CacheManagerPeerListenerFactory which will be used to create a
- CacheManagerPeerListener, which listens for messages from cache replicators participating in the cluster.
-
- The attributes of cacheManagerPeerListenerFactory are:
- class - a fully qualified factory class name
- properties - comma separated properties having meaning only to the factory.
-
- Ehcache comes with a built-in RMI-based distribution system. The listener component is
- RMICacheManagerPeerListener which is configured using
- RMICacheManagerPeerListenerFactory. It is configured as per the following example:
-
- <cacheManagerPeerListenerFactory
- class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
- properties="hostName=fully_qualified_hostname_or_ip,
- port=40001,
- remoteObjectPort=40002,
- socketTimeoutMillis=120000"
- propertySeparator="," />
-
- All properties are optional. They are:
- * hostName - the hostName of the host the listener is running on. Specify
- where the host is multihomed and you want to control the interface over which cluster
- messages are received. Defaults to the host name of the default interface if not
- specified.
- * port - the port the RMI Registry listener listens on. This defaults to a free port if not specified.
- * remoteObjectPort - the port number on which the remote objects bound in the registry receive calls.
- This defaults to a free port if not specified.
- * socketTimeoutMillis - the number of ms client sockets will stay open when sending
- messages to the listener. This should be long enough for the slowest message.
- If not specified it defaults to 120000ms.
-
- -->
-<!-- <cacheManagerPeerListenerFactory-->
-<!-- class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>-->
-
- <!-- Cache configuration.
-
- The following attributes are required.
-
- name:
- Sets the name of the cache. This is used to identify the cache. It must be unique.
-
- maxElementsInMemory:
- Sets the maximum number of objects that will be created in memory
-
- maxElementsOnDisk:
- Sets the maximum number of objects that will be maintained in the DiskStore
- The default value is zero, meaning unlimited.
-
- eternal:
- Sets whether elements are eternal. If eternal, timeouts are ignored and the
- element is never expired.
-
- overflowToDisk:
- Sets whether elements can overflow to disk when the memory store
- has reached the maxInMemory limit.
-
- The following attributes are optional.
-
- timeToIdleSeconds:
- Sets the time to idle for an element before it expires.
- i.e. The maximum amount of time between accesses before an element expires
- Is only used if the element is not eternal.
- Optional attribute. A value of 0 means that an Element can idle for infinity.
- The default value is 0.
-
- timeToLiveSeconds:
- Sets the time to live for an element before it expires.
- i.e. The maximum time between creation time and when an element expires.
- Is only used if the element is not eternal.
- Optional attribute. A value of 0 means that and Element can live for infinity.
- The default value is 0.
-
- diskPersistent:
- Whether the disk store persists between restarts of the Virtual Machine.
- The default value is false.
-
- diskExpiryThreadIntervalSeconds:
- The number of seconds between runs of the disk expiry thread. The default value
- is 120 seconds.
-
- memoryStoreEvictionPolicy:
- Policy would be enforced upon reaching the maxElementsInMemory limit. Default
- policy is Least Recently Used (specified as LRU). Other policies available -
- First In First Out (specified as FIFO) and Less Frequently Used
- (specified as LFU)
-
- -->
-
- <!--
- Mandatory Default Cache configuration. These settings will be applied to caches
- created programmtically using CacheManager.add(String cacheName)
- -->
- <defaultCache
- maxElementsInMemory="20000"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"
- />
-
-
- <!-- the cache used for triple queries by KiWi -->
- <cache name="uri-node-cache"
- statistics="true"
- maxElementsInMemory="100000"
- timeToIdleSeconds="3600"
- overflowToDisk="false"/>
- <cache name="anon-node-cache"
- statistics="true"
- maxElementsInMemory="10000"
- timeToIdleSeconds="3600"
- overflowToDisk="false"/>
- <cache name="literal-cache"
- statistics="true"
- maxElementsInMemory="10000"
- timeToIdleSeconds="3600"
- overflowToDisk="false"/>
-
- <cache name="namespace-prefix-cache"
- statistics="true"
- maxElementsInMemory="100"
- overflowToDisk="true"/>
-
- <cache name="namespace-uri-cache"
- statistics="true"
- maxElementsInMemory="100"
- overflowToDisk="true"/>
-
- <!-- the cache used for triple queries by KiWi -->
- <cache name="query-cache"
- statistics="true"
- maxElementsInMemory="200000"
- timeToIdleSeconds="3600"
- overflowToDisk="false"/>
-
- <!-- the cache used for resource lookups from module jar files -->
- <cache name="resource-cache"
- statistics="true"
- maxElementsInMemory="10000"
- timeToIdleSeconds="3600"
- timeToLiveSeconds="3600"
- overflowToDisk="false"
- memoryStoreEvictionPolicy="LRU"/>
-
- <!-- the cache used for triple queries by KiWi -->
- <cache name="page-cache"
- statistics="true"
- maxElementsInMemory="500"
- timeToIdleSeconds="3600"
- memoryStoreEvictionPolicy="LRU"
- overflowToDisk="true"/>
-
- <cache name="http-content-cache"
- statistics="true"
- maxElementsInMemory="500"
- timeToIdleSeconds="3600"
- memoryStoreEvictionPolicy="LRU"
- overflowToDisk="true"/>
-
-
- <!-- uncomment to enable cache debugging -->
-<!--
- <cacheManagerPeerListenerFactory
- class="org.terracotta.ehcachedx.monitor.probe.ProbePeerListenerFactory"
- properties="monitorAddress=localhost, monitorPort=9889" />
--->
-
-</ehcache>