मैं वर्तमान में अपने जावा ईई 6-एप्लिकेशन में सभी डेटाबेस संचालन को संभालने के लिए एक ईजेबी 3 डाटा एक्सेस क्लास बना रहा हूं। अब, चूंकि जावा ईई 6 नया एप्लीकेशनस्कोप्ड-एनोटेशन प्रदान करता है, मुझे आश्चर्य है कि मेरे ईजेबी के पास क्या राज्य होना चाहिए, या यदि यह स्टेटलेस होना चाहिए।जावाई 6 डीएओ: क्या यह @ स्टेटलेस या @ एप्प्लिकेशंस स्कॉप्ड होना चाहिए?
क्या डीएओ को @ स्टेटलेस सत्र बीन, या @ एप्प्लिकेशंसस्कोड बीन होने देना बेहतर होगा? @ सिंगलेटन के बारे में क्या? डीएओ से संबंधित इन विकल्पों के बीच अंतर क्या हैं?
संपादित करें: मैं Glassfish 3.0.1 का उपयोग कर रहा पूर्ण जावा ईई 6 मंच
उत्तर के लिए धन्यवाद! यदि कोई डीएओ समझ में आता है तो मैं यहां चर्चा नहीं करना चाहता हूं। मेरे लिए यह एक का उपयोग करने के लिए समझ में आता है। कम से कम सीम 3 पर्सिस्टेंस मॉड्यूल उत्पादन के लिए तैयार है;) तो आप कहते हैं कि मुझे डीएओ परत को ईजेबी एपीआई में नहीं जोड़ना चाहिए। लेकिन लेनदेन और सुरक्षा के बारे में क्या? डेटाबेस संचालन के लिए नहीं, तो मैं उन सेवाओं का उपयोग कहां करूंगा -> डीएओ? ये सेवाएं सीडीआई द्वारा प्रदान नहीं की जाती हैं, कम से कम नियमित जावाई 6-कंटेनर प्रबंधन की तरह नहीं। या शायद मुझे सीडीआई और ईजेबी मिश्रण करना चाहिए? – ifischer
@ifischer: डीएओ निश्चित रूप से लेनदेन नियंत्रण और सीमा (या सुरक्षा) के लिए जिम्मेदार नहीं होना चाहिए, इसके लिए एक एसएलएसबी (एक सत्र फेकाडे) का उपयोग करें। तो, हाँ, ईजेबी और सीडीआई का उपयोग करें। –
> 'ईजेबी को कंटेनर द्वारा पूल किया जाता है, इसलिए यदि आपके पास पूल प्रति हजार उदाहरण हैं और हजारों टेबल हैं- 1. यदि आपके पास हजारों टेबल हैं, और हजारों इकाइयां आपको अपने डिज़ाइन को संशोधित करने की आवश्यकता हो सकती हैं। इसके अलावा, ईजेबी के उदाहरण आम तौर पर मांग पर बनाए जाते हैं और पहले से ही नहीं और निश्चित रूप से पूर्ण पूल क्षमता के लिए नहीं। फिर, भले ही उनमें से हजारों का निर्माण किया जाए, हजारों उदाहरणों की स्मृति आवश्यकताएं केवल एक मेगाबाइट है, जो पूरी तरह से महत्वहीन है। ऐप सर्वर शुरू करते समय एक छोटी सी अतिरिक्त लागत होती है (जो मैं लेता हूं वह समय है जिसे आप तैनाती के साथ लेते हैं) –