2012-01-09 19 views
6

आईएएम कैशिंग के लिए जेसीएस का उपयोग कर गारंटी। अब मैं सभी डेटा अस्थायी रूप से स्टोर करने के लिए डिस्क कैश का उपयोग कर रहा हूं। समस्या यह है कि जब मैं जेसीएस का उपयोग करता हूं, तो कुंजी केवल डिस्क पर लिखी जाती है यदि कैश ठीक से है बंद करना।जेसीएस कैश शट डाउन, डिस्क

मैं डिस्क उपयोग पैटर्न का उपयोग UPDATE के रूप में कर रहा हूं जो जेसीएस को तुरंत स्मृति में रखे बिना डिस्क पर डेटा लिखने के लिए कहता है। लेकिन समस्या यह है कि हम कैश में ऑब्जेक्ट्स की मुख्य सूची का मिलान नहीं कर रहे हैं। इसलिए मैं समूह का उपयोग करता हूं कैश का उपयोग करें और कैश से चाबियां प्राप्त करें और फिर परिणाम प्राप्त करने के लिए कुंजी के माध्यम से फिर से भरें।

तो अब मुझे एक ऐसी स्थिति में पकड़ा गया है जहां मुझे कैश को सही तरीके से बंद करना है यानी इंडेक्स किए गए डिस्क कैश का उपयोग कर डिस्क पर सभी डेटा लिखा गया है। लेकिन यहां एक जटिलता है, अनुक्रमित डिस्क कैश पृष्ठभूमि थ्रेड का उपयोग करता है डिस्क पर लिखें जो इसकी स्थिति पर कुछ भी वापस नहीं करता है।

तो अब, मैं यह गारंटी देने में असमर्थ हूं कि अनुक्रमित डिस्क कैश ने मेरे सामने के अंत कार्यान्वयन में डिस्क पर डेटा लिखा है। क्या इस स्थिति से निपटने का कोई तरीका है, क्योंकि अब मैं बस कुछ यादृच्छिक समय सो रहा हूं (10 सेकंड कहें), कैश बंद होने से पहले, जो वास्तव में इसे करने का एक बहुत बेवकूफ तरीका है।

संपादित करें: मुझे मेमोरी कैश के साथ भी इस समस्या का सामना करना पड़ रहा है, लेकिन एक सेकंड की नींद 500 एमबी डेटा के लिए काफी अधिक है। लेकिन डिस्क कैश का मामला थोड़ा अलग है।

उत्तर

0

ऐसा इसलिए हो सकता है क्योंकि आपकी वस्तुएं स्मृति में संग्रहीत हैं और डिस्क पर लिखने की प्रतीक्षा कर रही हैं। यदि आपको निष्पादन के दौरान तुरंत डिस्क पर ऑब्जेक्ट्स लिखने की आवश्यकता है तो आपको को अपने कैश कॉन्फ़िगरेशन 0 पर बनाना होगा।

jcs.region.<yourRegion>.cacheattributes.MaxObjects=0 jcs.region.<yourRegion>.cacheattributes.DiskUsagePattern=UPDATE

मैं तुम्हें UPDATE की पहले से ही जानते पता है। संदर्भ के लिए इसे फिर से जोड़ना।

संबंधित मुद्दे