LibraryToggle FramesPrintFeedback
Name Default Value Description
maxElementsInMemory 1000 The numer of elements that may be stored in the defined cache
memoryStoreEvictionPolicy MemoryStoreEvictionPolicy.LFU

The number of elements that may be stored in the defined cache. The policy options include:

  • MemoryStoreEvictionPolicy.LFU—Least frequently used.

  • MemoryStoreEvictionPolicy.LRU—Least recently used.

  • MemoryStoreEvictionPolicy.FIFO—First in first out, ordered by creation time.

overflowToDisk true Specifies whether cache may overflow to disk.
eternal false Sets whether elements are eternal. If eternal, timeouts are ignored and the element is never expired.
timeToLiveSeconds 300 The maximum time between creation time and when an element expires. Is only used if the element is not eternal.
timeToIdleSeconds 300 The maximum amount of time between accesses before an element expires.
diskPersistent true Whether the disk store persists between restarts of the Virtual Machine. The default value is false.
diskExpiryThreadIntervalSeconds 120 The number of seconds between runs of the disk expiry thread. The default value is 120 seconds.
cacheManagerFactory null Camel 2.3: If you want to use a custom factory which instantiates and creates the EHCache net.sf.ehcache.CacheManager.
Header Description
CACHE_OPERATION

The operation to be performed on the cache. The valid options are:

  • ADD

  • UPDATE

  • DELETE

  • DELETEALL

CACHE_KEY The cache key used to store the message in the cache. The cache key is optional, if the CACHE_OPERATION is DELETEALL.

EHCache has its own statistics and management from JMX.

Here's a snippet on how to expose them via JMX in a Spring application context:

      <bean id="ehCacheManagementService" class="net.sf.ehcache.management.ManagementService" init-method="init" lazy-init="false">
      <constructor-arg>
      <bean class="net.sf.ehcache.CacheManager" factory-method="getInstance"/>
      </constructor-arg>
      <constructor-arg>
      <bean class="org.springframework.jmx.support.JmxUtils" factory-method="locateMBeanServer"/>
      </constructor-arg>
      <constructor-arg value="true"/>
      <constructor-arg value="true"/>
      <constructor-arg value="true"/>
      <constructor-arg value="true"/>
      </bean>
      
    

Of course you can do the same thing in straight Java:

      ManagementService.registerMBeans(CacheManager.getInstance(), mbeanServer, true, true, true, true);
      
    

You can get cache hits, misses, in-memory hits, disk hits, size stats this way. You can also change CacheConfiguration parameters on the fly.

Comments powered by Disqus