0

I am trying to configure Ehcache for JPA 2.0. first i have setup following into persistance.xml

<property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/>
<property name="hibernate.cache.use_query_cache" value="true"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.generate_statistics" value="true"/>

I have ehcache.xml in my class path. configure @Cacheable(true) to my @Entity class.

I am getting following error.

 net.sf.ehcache.config.InvalidConfigurationException: There is one error in your configuration: 
    * Cache 'net.sf.ehcache.constructs.asynchronous.MessageCache' error: If your CacheManager has no maxBytesLocalHeap set, you need to either set maxEntriesLocalHeap or maxBytesLocalHeap at the Cache level

ehcache.xml

<?xml version="1.0" encoding="UTF-8"?>



<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true"
    monitoring="autodetect" dynamicConfig="true">

    <!-- By default, Ehcache stored the cached files in temp folder. -->
    <!-- <diskStore path="java.io.tmpdir" /> -->

    <!-- Ask Ehcache to store cache in this path -->
    <diskStore path="c:\\cache" />

    <!-- Sample cache named cache1
    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 = "com.test.myDataDE"
        maxEntriesLocalHeap="10000"
        maxEntriesLocalDisk="1000"
        eternal="false"
        diskSpoolBufferSizeMB="20"
        timeToIdleSeconds="300" timeToLiveSeconds="600"
        memoryStoreEvictionPolicy="LFU"
        transactionalMode="off">
        <persistence strategy="localTempSwap" />
    </Cache>

</ehcache>

Please help me understand any mistake I am doing?

2 Answers2

1

I had the same problem today, solved it by adding:

maxBytesLocalHeap="100M"

and removing:

maxEntriesLocalHeap

in my ehcache.xml configuration.

hilmer
  • 23
  • 6
0

Without your ehcache.xml content, it is hard to be definitive.

However, given the error message, I believe the issue is that you did not specify a heap size to your cache, either in entries or in bytes.

Louis Jacomet
  • 13,661
  • 2
  • 34
  • 43