diff options
author | Scott Jackson <daneren2005@gmail.com> | 2012-07-02 21:24:02 -0700 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2012-07-02 21:24:02 -0700 |
commit | a1a18f77a50804e0127dfa4b0f5240c49c541184 (patch) | |
tree | 19a38880afe505beddb5590379a8134d7730a277 /subsonic-main/src/main/resources/ehcache.xml | |
parent | b61d787706979e7e20f4c3c4f93c1f129d92273f (diff) | |
download | dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.tar.gz dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.tar.bz2 dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.zip |
Initial Commit
Diffstat (limited to 'subsonic-main/src/main/resources/ehcache.xml')
-rw-r--r-- | subsonic-main/src/main/resources/ehcache.xml | 297 |
1 files changed, 297 insertions, 0 deletions
diff --git a/subsonic-main/src/main/resources/ehcache.xml b/subsonic-main/src/main/resources/ehcache.xml new file mode 100644 index 00000000..a79999ef --- /dev/null +++ b/subsonic-main/src/main/resources/ehcache.xml @@ -0,0 +1,297 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- +CacheManager Configuration +========================== +An ehcache.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. Another example, useful for Terracotta +server based deployments is <terracottaConfig url="${serverAndPort}"/ and specify a command line +switch of -Dserver36:9510 + +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". +* dynamicConfig - an optional setting that can be used to disable dynamic configuration of caches +associated with this CacheManager. By default this is set to true - i.e. dynamic configuration +is enabled. Dynamically configurable caches can have their TTI, TTL and maximum disk and +in-memory capacity changed at runtime through the cache's configuration object. +* 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 clustering and using the +Terracotta Developer Console. With the "autodetect" value, the presence of Terracotta clustering +will be detected and monitoring, via the Developer Console, will be enabled. Other allowed values +are "on" and "off". The default is "autodetect". This setting does not perform any function when +used with JMX monitors. +--> +<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ehcache.sourceforge.net/ehcache.xsd" + updateCheck="false" + monitoring="off" + dynamicConfig="true"> + + <!-- + 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 should be specified without being enclosed in the ${token} + replacement syntax. + + The following properties are translated: + * user.home - User's home directory + * user.dir - User'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 + + --> + <!-- NOTE: The path is overridden in net.sourceforge.subsonic.cache.CacheFactory --> + <diskStore path="java.io.tmpdir"/> + + + <!-- Uncomment this to enable cache monitoring. --> + <!--<cacheManagerPeerListenerFactory--> + <!--class="org.terracotta.ehcachedx.monitor.probe.ProbePeerListenerFactory"--> + <!--properties="monitorAddress=localhost, monitorPort=9889, memoryMeasurement=true" />--> + <!----> + + <!-- + 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. 0 = no limit. + In practice no limit means Integer.MAX_SIZE (2147483647) unless the cache is distributed + with a Terracotta server in which case it is limited by resources. + + 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 and elements are optional. + + overflowToOffHeap: + (boolean) This feature is available only in enterprise versions of Ehcache. + When set to true, enables the cache to utilize off-heap memory + storage to improve performance. Off-heap memory is not subject to Java + GC. The default value is false. + + maxMemoryOffHeap: + (string) This feature is available only in enterprise versions of Ehcache. + Sets the amount of off-heap memory available to the cache. + This attribute's values are given as <number>k|K|m|M|g|G|t|T for + kilobytes (k|K), megabytes (m|M), gigabytes (g|G), or terabytes + (t|T). For example, maxMemoryOffHeap="2g" allots 2 gigabytes to + off-heap memory. + + This setting is in effect only if overflowToOffHeap is true. + + Note that it is recommended to set maxElementsInMemory to at least 100 elements + when using an off-heap store, otherwise performance will be seriously degraded, + and a warning will be logged. + + The minimum amount that can be allocated is 128MB. There is no maximum. + + 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. + + diskSpoolBufferSizeMB: + This is the size to allocate the DiskStore for a spool buffer. Writes are made + to this area and then asynchronously written to disk. The default size is 30MB. + Each spool buffer is used only by its cache. If you get OutOfMemory errors consider + lowering this value. To improve DiskStore performance consider increasing it. Trace level + logging in the DiskStore will show if put back ups are occurring. + + clearOnFlush: + whether the MemoryStore should be cleared when flush() is called on the cache. + By default, this is true i.e. the MemoryStore is cleared. + + statistics: + Whether to collect statistics. Note that this should be turned on if you are using + the Ehcache Monitor. By default statistics is turned off to favour raw performance. + To enable set statistics="true" + + 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) + + copyOnRead: + Whether an Element is copied when being read from a cache. + By default this is false. + + copyOnWrite: + Whether an Element is copied when being added to the cache. + By default this is false. + --> + + + <!-- + Default Cache configuration. These settings will be applied to caches + created programmatically using CacheManager.add(String cacheName). + This element is optional, and using CacheManager.add(String cacheName) when + its not present will throw CacheException + + The defaultCache has an implicit name "default" which is a reserved cache name. + + <defaultCache + maxElementsInMemory="10000" + eternal="false" + timeToIdleSeconds="120" + timeToLiveSeconds="120" + overflowToDisk="true" + diskSpoolBufferSizeMB="10" + maxElementsOnDisk="10000000" + diskPersistent="false" + diskExpiryThreadIntervalSeconds="120" + memoryStoreEvictionPolicy="LRU" + statistics="true" + /> + --> + + <cache name="mediaFileMemoryCache" + maxElementsInMemory="1000" + eternal="false" + timeToIdleSeconds="0" + timeToLiveSeconds="10" + overflowToDisk="false" + statistics="true" + /> + + <cache name="musicFileMemoryCache" + maxElementsInMemory="1000" + eternal="false" + timeToIdleSeconds="0" + timeToLiveSeconds="10" + overflowToDisk="false" + statistics="true" + /> + + <cache name="userCache" + maxElementsInMemory="1000" + eternal="false" + timeToIdleSeconds="172800" + timeToLiveSeconds="172800" + overflowToDisk="false" + diskSpoolBufferSizeMB="1" + statistics="true" + /> + + <!-- + Sample caches. Following are some example caches. Remove these before use. + --> + + <!-- + Sample cache named sampleCache1 + This cache contains a maximum in memory of 10000 elements, and will expire + an element if it is idle for more than 5 minutes and lives for more than + 10 minutes. + + If there are more than 10000 elements it will overflow to the + disk cache, which in this configuration will go to wherever java.io.tmp is + defined on your system. On a standard Linux system this will be /tmp" + + <cache name="sampleCache1" + maxElementsInMemory="10000" + maxElementsOnDisk="1000" + eternal="false" + overflowToDisk="true" + diskSpoolBufferSizeMB="20" + timeToIdleSeconds="300" + timeToLiveSeconds="600" + memoryStoreEvictionPolicy="LFU" + transactionalMode="off" + /> + --> + + + <!-- + Sample cache named sampleCache2 + This cache has a maximum of 1000 elements in memory. There is no overflow to disk, so 1000 + is also the maximum cache size. Note that when a cache is eternal, timeToLive and + timeToIdle are not used and do not need to be specified. + + <cache name="sampleCache2" + maxElementsInMemory="1000" + eternal="true" + overflowToDisk="false" + memoryStoreEvictionPolicy="FIFO" + /> + --> + + + <!-- + Sample cache named sampleCache3. This cache overflows to disk. The disk store is + persistent between cache and VM restarts. The disk expiry thread interval is set to 10 + minutes, overriding the default of 2 minutes. + + <cache name="sampleCache3" + maxElementsInMemory="500" + eternal="false" + overflowToDisk="true" + timeToIdleSeconds="300" + timeToLiveSeconds="600" + diskPersistent="true" + diskExpiryThreadIntervalSeconds="1" + memoryStoreEvictionPolicy="LFU" + /> + --> + +</ehcache> |