2010-12-15 12 views
6

आइए कहें कि मेरे पास दो एप्लिकेशन हैं, प्रत्येक एक अलग ईएआर फ़ाइल के साथ, जो एक दूसरे को एक ही जेटीए लेनदेन के भीतर कॉल करता है। यदि दोनों एक ही इकाई प्रबंधक साझा करते हैं, तो क्या उन्हें एक ही सत्र मिलता है या क्या यह हर बार नया बनाया जाता है?दो ईएआर फाइलें, एक ही जेपीए इकाई प्रबंधक, वही लेनदेन => एक ही सत्र?

+0

एप्लिकेशन क्लास फाइलों को साझा करते हैं? –

+0

हां, संस्थाएं और कुछ सामान्य एपीआई – Mauli

+0

क्या आपने विस्तारित दृढ़ता संदर्भों का उपयोग करने के लिए अपने इकाई प्रबंधक को कॉन्फ़िगर किया है? – HDave

उत्तर

1

एक EntityManager (जेपीए में) एक सत्र (हाइबरनेट में) के बराबर बराबर है। एक शुद्ध जेपीए आवेदन में, आप केवल EntityManager का उपयोग करेंगे। यह एक सत्र encapsulates। सत्र जब तक EntityManager रहता है तब तक रहता है।

एंटिटी मैनेजर को दो अनुप्रयोगों के बीच साझा करने के लिए कोई कारण नहीं है (क्योंकि मुझे कोई तरीका नहीं है), क्योंकि वे अलग-अलग जेवीएम में चलते हैं (कम से कम उन एप्लिकेशन सर्वर पर जिनके साथ मैंने काम किया है)। आप क्या कर सकते हैं EntityManager सेटअप (एक पर्सिस्टेंस यूनिट कहा जाता है) साझा करें। आप इकाई वर्गों और एक्सएमएल को एक जेएआर में डालकर और दोनों अनुप्रयोगों से इसका उपयोग करके ऐसा कर सकते हैं, लेकिन यह वास्तव में कैसे किया जाता है, संभवतः आपके एप्लिकेशन सर्वर पर निर्भर करता है। यह निश्चित रूप से सटीक प्रभाव होगा क्योंकि दूसरे एप्लिकेशन के लिए कक्षाओं और एक्सएमएल को डुप्लिकेट करना होगा।

यह क्या होगा: प्रत्येक दो अनुप्रयोगों में से प्रत्येक का अपना दृढ़ता संदर्भ होगा। इसका मतलब है, जब आप एक आवेदन में एक इकाई लोड करते हैं, तो यह दूसरे में लोड नहीं होगा। यदि आप एप्लिकेशन में किसी इकाई को लोड और संशोधित करते हैं, तो उसे एप्लिकेशन दो में लोड करें, एप्लिकेशन दो को अनमोडिफाइड इकाई दिखाई देगी (सिवाय इसके कि यदि आपके पास बहुत अजीब लेनदेन अलगाव सेटिंग्स और एप्लिकेशन पहले इकाई को फ़्लश करने का निर्णय लेता है)।

कोई भी संघर्ष केवल जेटीए लेनदेन के अंत में ही होगा। मुझे नहीं पता कि तब क्या होगा, और मुझे लगता है कि यह आपके डेटाबेस और लेनदेन सेटिंग्स पर निर्भर करता है। यदि दोनों एप्लिकेशन एक ही डेटा पर अलग-अलग चीजों को करने का प्रयास करते हैं तो शायद लेनदेन वापस रोल करेगा। प्रत्येक एप्लिकेशन का अपना डेटाबेस कनेक्शन होगा। वे जेटीए लेनदेन द्वारा एक साथ बंधे हैं, इसलिए यह सुनिश्चित किया जाता है कि दोनों प्रतिबद्ध हैं या दोनों रोल वापस हैं।

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