के दौरान सर्वलेट अनुरोधों को कैसे संसाधित करें हमें अपने सर्वलेट एप्लिकेशन में एक सुंदर शटडाउन तंत्र को लागू करने की आवश्यकता है।लंबे शटडाउन
संपादित करें: हम इसे यथासंभव सरल बनाना चाहते हैं, जो ऑपरेटिंग सिस्टम के फ़ंक्शन के माध्यम से भेजे गए एक हत्या संकेत को संभालेगा। यह सिस्टम प्रशासकों को खोल उपयोगिताओं (विंडोज़ पर मार या टास्किल) में निर्मित करने की अनुमति देगा, अन्यथा उन्हें सर्वर के साथ "बात करने" के लिए एक और उपयोगिता स्थापित करनी होगी।
इस तंत्र को दो चरणों में काम करता है:
-
बंद अनुरोध पर
- , इनकार कुछ महत्वपूर्ण गतिविधियों
- ब्लॉक पहले से शुरू की महत्वपूर्ण कार्यों पूरा कर रहे हैं जब तक; इनमें कई घंटे लग सकते हैं
चरण # 1 हमारी डीएओ परत में लागू किया गया है। चरण # 2 हमारे ServletContextListener # संदर्भ में कार्यान्वित किया गया है Destroyed विधि
हमारी समस्या यह है कि एक बार संदर्भ के बाद प्रोस्टेटेड को बुलाया जाता है, सर्वलेट कंटेनर आगे HTTP अनुरोधों की सेवा बंद कर देता है।
संपादित करें: संदर्भ डीस्ट्रायर्ड कहा जाता है जब कोई सर्वर की प्रक्रिया पर ऑपरेटिंग सिस्टम के हत्या कार्य को बुला रहा है।
हम चरण # 2 के दौरान एप्लिकेशन को जीवित रहने देना चाहते हैं, जो उपयोगकर्ताओं को सूचित करते हैं कि कुछ गतिविधियां अनुपलब्ध हैं।
अच्छा सवाल। यदि उन गतिविधियों को अस्वीकार किया जाना है जिन्हें विशिष्ट सर्लेट में लागू किया गया है, तो आप हमेशा इन्हें (और केवल इन) को 4xx रेंज में एक स्थिति वापस कर सकते हैं यदि कोई डीबी लुकअप बताता है कि शटडाउन प्रगति पर है? –
कुछ गतिविधियां यूआई कार्यों द्वारा शुरू की जाती हैं और कुछ शेड्यूलर द्वारा शुरू की जाती हैं - यही कारण है कि मैं उन्हें डीएओ परत पर नियंत्रित करने के बारे में सोच रहा हूं। –