Bir Tomcat örneğindeki sürümleri deployed in parallel olan bir web uygulamasında ehcache kullanıyorum. Bu, yeni sürümleri bir uygulamayı durdurmadan dağıtmanın kullanışlı bir yoludur.Paralel olarak dağıtılan bir web sunucusunun tüm sürümlerinin önbellekleri kapatıldı
Ben ancak devam etmek bu şekilde bir sorun var: bir örneğini durdurma zaman webapp sürümlerine bağlı olarak, önbellek ve disk mağaza farklı adlar vermeyi bile tüm önbelleğe durdurulur.
Benim yapılandırma geçerli:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd" name="mywebapp-${project.version}_build_${buildNumber}">
<defaultCache
maxElementsInMemory="1000"
maxElementsOnDisk="10000"
eternal="false"
timeToLiveSeconds="300"
timeToIdleSeconds="300"
overflowToDisk="true"
diskPersistent="false"
memoryStoreEvictionPolicy="LRU"
statistics="true"
/>
<cache
maxElementsInMemory="1000"
maxElementsOnDisk="10000"
name="org.hibernate.cache.internal.StandardQueryCache"
eternal="false"
timeToLiveSeconds="300"
timeToIdleSeconds="300"
overflowToDisk="true"
diskPersistent="false"
statistics="true"/>
<cache
name="org.hibernate.cache.spi.UpdateTimestampsCache"
maxElementsInMemory="10000"
maxElementsOnDisk="100000"
timeToLiveSeconds="300"
timeToIdleSeconds="300"
eternal="false"
overflowToDisk="true"
diskPersistent="false"
statistics="true"/>
<cache
name="query.Presences"
maxElementsInMemory="100"
maxElementsOnDisk="1000"
eternal="false"
timeToLiveSeconds="300"
timeToIdleSeconds="300"
overflowToDisk="true"
diskPersistent="false"
statistics="true"/>
<diskStore path="java.io.tmpdir/mywebapp-${project.version}_build_${buildNumber}"/>
</ehcache>
${project.version}
ve
${buildNumber}
oluşturma işlemi sırasında maven yerini.
Birisi bu istenmeyen davranıştan nasıl kaçınıldığını biliyor mu?
Ehcache-core-2.4.3 ve hibernate-ehcache-4.3.8 kullanıyorum.
Belki de tahmin etme konusunda yanıldım, ancak "diskPersistence" öğesi true olarak ayarlanmamalı. EhCache'in iç yapısını bilmiyorum, ancak önbelleklerin yalnızca bellekte tutulması ve bir örneği kapatması (aynı JVM'de hala bir tomcat örneğidir) önbelleğin temizlendiği doğrudur. Yanılıyorsam düzelt, ama doc devletler – meistermeier
: diskPersistent: «önbelleklerini için diske o taşma, disk önbelleği CacheManager örnekleri arasında devam edip» yanlış ben arzu davranıştır. –
ecache 2.4 için tam dokümanlar nerede bulacağımı bilmiyorum ama bilgileri http://ehcache.org/documentation/2.8/configuration/fast-restart/section adresinden aldım "Önceki Sürümlerle Uyumluluk" – meistermeier