You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2010/08/31 00:11:54 UTC
svn commit: r991004 - in /directory/apacheds/trunk/core-api/src/main:
java/org/apache/directory/server/core/CacheService.java
resources/directory-cacheservice.xml
Author: kayyagari
Date: Mon Aug 30 22:11:54 2010
New Revision: 991004
URL: http://svn.apache.org/viewvc?rev=991004&view=rev
Log:
o fixed illegal state exception caused by destroy method of cache service by just clearing all caches instead of shutting down
o added cache configuration for DN cache
Modified:
directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/CacheService.java
directory/apacheds/trunk/core-api/src/main/resources/directory-cacheservice.xml
Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/CacheService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/CacheService.java?rev=991004&r1=991003&r2=991004&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/CacheService.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/CacheService.java Mon Aug 30 22:11:54 2010
@@ -79,14 +79,8 @@ public class CacheService
public void destroy()
{
- if ( cacheManager.getStatus() == Status.STATUS_ALIVE )
- {
- LOG.info( "destroying the cache service" );
-
- cacheManager.removalAll();
-
- cacheManager.shutdown();
- }
+ LOG.info( "clearing all the caches" );
+ cacheManager.clearAll();
}
Modified: directory/apacheds/trunk/core-api/src/main/resources/directory-cacheservice.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/resources/directory-cacheservice.xml?rev=991004&r1=991003&r2=991004&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/resources/directory-cacheservice.xml (original)
+++ directory/apacheds/trunk/core-api/src/main/resources/directory-cacheservice.xml Mon Aug 30 22:11:54 2010
@@ -1,43 +1,110 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="ehcache.xsd"
- updateCheck="false" monitoring="autodetect"
- dynamicConfig="true" >
-
- <diskStore path="java.io.tmpdir"/>
+ xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false"
+ monitoring="autodetect" dynamicConfig="true">
- <cacheManagerEventListenerFactory class="" properties=""/>
+ <diskStore path="java.io.tmpdir" />
<!--
- Mandatory Default Cache configuration. These settings will be applied to caches
- created programmtically using CacheManager.add(String cacheName).
+ Cache configuration
+ ===================
- The defaultCache has an implicit name "default" which is a reserved cache name.
- -->
- <defaultCache
- maxElementsInMemory="0"
- eternal="false"
- overflowToDisk="true"
- timeToIdleSeconds="1200"
- timeToLiveSeconds="1200">
- </defaultCache>
+ The following attributes are required.
- <!--
- 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="groupCache"
- maxElementsInMemory="10000"
- maxElementsOnDisk="1000"
- eternal="true"
- overflowToDisk="true"
- diskSpoolBufferSizeMB="20"
- timeToIdleSeconds="300"
- timeToLiveSeconds="600"/>
+ 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 and elements 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.
+
+ 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.
+
+ 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).
+ The defaultCache has an implicit name "default" which is a reserved cache
+ name. -->
+
+ <defaultCache maxElementsInMemory="0" eternal="false"
+ overflowToDisk="true" timeToIdleSeconds="1200" timeToLiveSeconds="1200">
+ </defaultCache>
+
+ <!-- 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="groupCache"
+ maxElementsInMemory="10000"
+ maxElementsOnDisk="1000"
+ eternal="true"
+ overflowToDisk="true"
+ diskSpoolBufferSizeMB="20"
+ timeToIdleSeconds="300"
+ timeToLiveSeconds="600"
+ memoryStoreEvictionPolicy="LFU"
+ diskPersistent="false" />
+
+ <cache name="dnCache"
+ maxElementsInMemory="10000"
+ maxElementsOnDisk="1000"
+ eternal="false"
+ overflowToDisk="true"
+ diskSpoolBufferSizeMB="20"
+ timeToIdleSeconds="300"
+ timeToLiveSeconds="600"
+ memoryStoreEvictionPolicy="LFU"
+ diskPersistent="false" />
+
</ehcache>
\ No newline at end of file