मैं एक वेबपैप में ehcache का उपयोग करता हूं जिसका संस्करण deployed in parallel टॉमकैट उदाहरण पर है। एप्लिकेशन को रोक दिए बिना नए संस्करणों को तैनात करने का यह एक आसान तरीका है।समानांतर में तैनात वेबपैप के सभी संस्करणों के कैश बंद कर दिए गए हैं
मैं हालांकि इस तरह से आगे बढ़ने के लिए के साथ एक समस्या है: भले ही मैं webapp के संस्करण पर निर्भर करता है, कैश और डिस्क की दुकान अलग-अलग नाम देते हैं, सभी कैश जब एक उदाहरण रोक बंद कर दिया जाता है।
मेरे config है:
<?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}
और ${buildNumber}
निर्माण प्रक्रिया के दौरान Maven द्वारा प्रतिस्थापित किया जा।
क्या कोई जानता है कि इस अवांछित व्यवहार से कैसे बचें?
मैं ehcache-core-2.4.3 और हाइबरनेट-एहैचे-4.3.8 का उपयोग कर रहा हूं।
शायद मैं अनुमान लगाने में गलत हूं लेकिन 'डिस्कपर्सिस्टेंस' सत्य पर सेट नहीं होना चाहिए। मुझे एह कैश के आंतरिक पता नहीं है, लेकिन यदि कैश केवल स्मृति में हैं और आपने एक उदाहरण बंद कर दिया है (उसी जेवीएम में क्योंकि यह अभी भी एक टोमकैट उदाहरण है) यह सही लगता है कि कैश साफ़ हो गया है। – meistermeier
मुझे सही अगर मैं गलत हूँ, लेकिन इस दस्तावेज़ कहता है: diskPersistent: «। कैश के लिए डिस्क के लिए कि अतिप्रवाह, डिस्क कैश CacheManager उदाहरणों के बीच बनी हुई है या» झूठा व्यवहार मैं इच्छा है। –
मुझे नहीं पता कि पारिस्थितिक 2.4 के लिए पूर्ण दस्तावेज़ कहां ढूंढें। लेकिन मुझे अपनी जानकारी http://ehcache.org/documentation/2.8/configuration/fast-restart/section "पिछले संस्करणों के साथ संगतता" – meistermeier