कृपया ऐसा न करें: आप वेब परत में दृढ़ता परत को सीधे बांध रहे हैं जब सर्वोत्तम प्रथाओं में केवल एक परत और केवल आसन्न के बीच स्तरित अनुप्रयोगों (ढीले) लिंक के साथ डिजाइन करने की अनुशंसा की जाती है।
ऐसी डिज़ाइन के साथ उत्पन्न होने वाली वास्तविक समस्याओं के लिए, एक स्मृति बर्बाद कर रहा है। चूंकि HTTP एक गैर कनेक्टेड प्रोटोकॉल है, यदि कोई क्लाइंट केवल एक स्पष्ट डिस्कनेक्शन के बिना अपने ब्राउज़र को बंद कर देता है, तो सत्र तुरंत बंद नहीं किया जाएगा और केवल सत्र टाइमआउट द्वारा ही एकत्र किया जाएगा। यही कारण है कि सर्वोत्तम प्रथाओं में सत्र में जितनी संभव हो उतनी छोटी वस्तुएं और जितनी छोटी हो सके स्टोर करने की सलाह दी जाती है। वैसे, यदि आप सर्वर के खेत पर एप्लिकेशन की सेवा करना चाहते हैं, तो सत्र में संग्रहीत वस्तुओं को क्रमिक होना चाहिए, और मुझे यकीन है कि कोई इकाई प्रबंधक है या नहीं। कम से कम इसकी इंटरफ़ेस परिभाषा द्वारा इसकी गारंटी नहीं है।
मैं हाइबरनेट, जहां हाइबरनेट सत्र (एक EntityManager को कम या ज्यादा बराबर) http सत्र में जमा हो गया था का उपयोग कर एक पुराने आवेदन में इस तरह की डिजाइन को देखा है। इसके पीछे तर्कसंगत था कि हाइबरनेट सत्र में कैश था, यह एप्लिकेशन को तेज कर सकता था। वास्तविक परिणाम यह था कि एप्लिकेशन को केवल कई सौ उपयोगकर्ताओं का समर्थन करने के लिए बहुत मेमोरी की आवश्यकता होती है और पूर्ण पुनर्लेखन के बिना हजारों उपयोगकर्ता के लिए कभी भी स्केलेबल नहीं होगा।
मुझे पता है कि मैंने केवल 1 प्रश्न का उत्तर दिया है, लेकिन मुझे सच में लगता है कि जेडीबीसी कनेक्शन प्रश्न प्रमुख नहीं है। हाइबरनेट प्रयोग से पता चला है कि हम जेडीबीसी सत्र की समस्या को प्रबंधित कर सकते हैं ताकि जल्द ही जेडीबीसी कनेक्शन रीसायकल कर सकें और निश्चित रूप से पूल आकार में वृद्धि कर सकें लेकिन स्वीकार्य सीमा तक। क्योंकि मुझे लगता है कि प्रमुख EntityManager कार्यान्वयन स्वचालित रूप से एक नया जेडीबीसी सत्र मांगने में सक्षम होते हैं जब उनकी बंद होने की संभावना होती है (एक हाइबरनेट सत्र के रूप में)।
स्रोत
2016-10-01 10:17:41
यह http://www.benmccann.com/hibernate-with-jpa-annotations-and-guice/ उदाहरण को याद दिलाता है जहां EntityManager थ्रेडलोकल के रूप में संग्रहीत किया जाता है। संबंधित धागा: http://stackoverflow.com/questions/4418979/jpa-web-plication-management-strategies – Justas
क्या आप वास्तव में पूर्ण जावा ईई का उपयोग कर रहे हैं, या सिर्फ टोमकैट जैसे सर्वलेट कंटेनर का उपयोग कर रहे हैं? –
बस सर्वलेट कंटेनर टोमकैट। – Raju