我正在尝试使用赤土陶器和ehcache。我的项目设置就像我正在使用2个tomcat实例,我的应用程序集成了ehcache。我需要在这两个实例之间进行同步,这就是我使用兵马俑的原因。然而 我正面临错误
“net.sf.ehcache.CacheException:get()中未捕获的异常 - Java堆空间” 当我把ehcache与兵马俑融为一体时。 我的ehcache.xml是
<?xml version="1.0" encoding="UTF-8"?>
<ehcache name="terracotta" maxBytesLocalHeap="30%" >
<diskStore path="java.io.tmpdir" />
<terracottaConfig url="localhost:9510"/>
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>
<cache name="LocalCache"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache1"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache2"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache3"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache4"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache5"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache6"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache7"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache8"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache9"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache10"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="DetailStockByKey"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache11"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache12"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache13"
timeToLiveSeconds="10"
maxElementsOnDisk="0"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<terracotta />
</cache>
<cache name="cache15"
timeToLiveSeconds="10"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<!--<terracotta /> -->
</cache>
<cache name="cache14"
timeToLiveSeconds="10"
eternal="false"
memoryStoreEvictionPolicy="LFU" >
<!--<terracotta /> -->
</cache>
</ehcache>
我也收到了像
这样的警告警告:已达到配置的1,000个对象引用限制 在尝试计算对象图的大小时。严重 如果大小调整操作继续,可能会发生性能下降。 通过设置CacheManger或Cache可以避免这种情况 元素maxDepthExceededBehavior为“中止”或添加停止点 使用@IgnoreSizeOf注释。如果性能下降不是 在配置的限制下发出,使用提高限制值 CacheManager或Cache元素maxDepth属性。对于 有关更多信息,请参阅Ehcache配置文档。
我正在使用-Xmx:1024m来运行兵马俑。我提到了这个问题,运行独立的ehcache.xml时我的响应时间也少了。然而,当使用ehcache与赤土陶器时,响应时间已增加了700倍。请帮助解决此问题。我应该怎么做,以便响应时间减少,我不会再次面对这个错误。 提前致谢