मैं एक सिस्टम बना रहा हूं, जहां क्लाइंट साइड से प्रत्येक अनुरोध सर्वर पक्ष पर एकाधिक थ्रेड बनाता है। प्रत्येक धागा तब एक या अधिक डीएओ का उपयोग कर रहा है (उस समय कुछ डीएओ का उपयोग एक से अधिक धागे द्वारा किया जा सकता है)। सभी डीएओ इंजेक्शन (@Autowired
) वसंत द्वारा मेरे धागे वर्गों में इंजेक्शन दिए जाते हैं। प्रत्येक डीएओ को SessionFactory
इंजेक्शन भी प्राप्त होता है।कई धागे में स्प्रिंग + हाइबरनेट सत्र प्रबंधन
इन एकाधिक डीएओ में हाइबरनेट सत्रों का प्रबंधन करने का उचित तरीका क्या होगा, इसलिए मैं बहुप्रचारित वातावरण की वजह से समस्याओं में नहीं भागूंगा (उदाहरण के लिए विभिन्न धागे से कुछ डीएओ एक ही सत्र में उसी सत्र का उपयोग करने की कोशिश कर रहे हैं)?
पर्याप्त होगा कि मैं हाइबरनेट कॉन्फ़िगरेशन में hibernate.current_session_context_class=thread
निर्दिष्ट करता हूं और फिर डीएओ में हर बार काम करने के लिए बस SessionFactory.getCurrentSession()
का उपयोग करता हूं? क्या यह उचित रूप से प्रति थ्रेड सत्रों का पता लगाएगा और तैयार करेगा?
काम पूरा होने पर सत्र बंद करने के बारे में क्या, क्या यह स्वचालित रूप से किया जाता है? – MounirReg
जब आप स्प्रिंग 3 के साथ हाइबरनेट करते हैं या बाद में आपको इस संपत्ति को स्थापित करने से बचना चाहिए क्योंकि वसंत के पास इसका स्वयं का कार्यान्वयन है जो स्प्रिंग के लिए हाइबरनेट सत्रों का प्रबंधन करने के लिए आवश्यक है। http://stackoverflow.com/a/18842593/3826713 – UCJava