2011-12-21 21 views
6

मैं सीडीआई और ईजेबी और एंटिटी बाउंडरी कंट्रोल (ईसीबी) पैटर्न के आसपास अपना सिर लेने की कोशिश कर रहा हूं। ईसीबी पैटर्न की मेरी समझ यह है कि सीमा लेनदेन सीमा की शुरुआत और अंत है। इसके अलावा, सीडीआई एक ईजेबी की तरह लेनदेन समर्थन प्रदान नहीं करता है।ईजेबी बनाम सीडीआई और "एंटिटी बाउंडरी कंट्रोल" पैटर्न

इसलिए यदि मैं ईसीबी पैटर्न को सफलतापूर्वक कार्यान्वित करना चाहता हूं, तो निम्नलिखित सत्य हैं;

  1. मैं EJB के (अर्थात @stateless, @stateful, @singleton) और CDI या EJB के साथ नियंत्रण परत के साथ सीमा भाग को लागू कर सकते हैं।
  2. मैं CDI के साथ सीमा और नियंत्रण भाग को लागू करें, लेकिन (http://smokeandice.blogspot.com/2009/12/cdi-and-declarative-transactions.html)
  3. को सीमा समान में लेन-देन समर्थन लागू कर सकते हैं मैं सीडीआई के साथ सीमा लागू नहीं कर सकता और फिर नियंत्रण परत में ईजेबी का उपयोग करना शुरू कर सकता हूं।

धन्यवाद

+1

तो फिर सवाल क्या है? –

+0

मैं बस अपनी सोच की जांच करना चाहता हूं कि मेरे द्वारा बताए गए 3 अंक सही हैं? या अगर मेरी सोच गलत है। – vcetinick

उत्तर

12

मैं सफलतापूर्वक EJB के लिए पूरी तरह से सीमाओं और CDI नियंत्रकों के लिए के लिए उपयोग कर JavaEE 6 में ईसीबी पैटर्न को लागू। मेरी वास्तुकला में एक ठेठ ढेर

  • स्टेटलेस EJB के
  • CDI नियंत्रक के रूप में @Dependent दायरे में व्यापार तर्क के लिए सेम कामयाब सीमा के रूप में एक बाकी सेवा लागू करने के लिए JAX-आरएस एनोटेशन के साथ एनोटेट
  • CDI कामयाब सेम का उपयोग करता है डेटा एक्सेस वस्तुओं के लिए @Dependent गुंजाइश जो एक डेटाबेस के साथ
  • जेपीए इकाई सेम

बातचीत करने के लिए जेपीए के EntityManager प्रयोग राज्यविहीन EJB के जो Bounda फार्म ry हमेशा @TransactionAttribute (आवश्यक) के साथ एनोटेटेड होते हैं जो डिफ़ॉल्ट है। मैं अन्य लेनदेन विशेषताओं का उपयोग नहीं करता हूं। ऐसा करने से, आप यह सुनिश्चित कर सकते हैं कि सीमा के साथ हर बातचीत वास्तव में एक लेनदेन में होती है।

सीडीआई प्रबंधित बीन्स के लिए केवल @ निर्भर दायरे का उपयोग करके, आप यह सुनिश्चित कर सकते हैं कि प्रत्येक थ्रेड के उस बीन्स का अपना उदाहरण हो। तो आपके पास एक ही समय में एक सीडीआई प्रबंधित बीन तक पहुंचने वाले एक से अधिक धागे नहीं हैं। ऐसा करने से आपको ठेठ समवर्ती मुद्दों से बचाता है।

अधिक भारी वजन के संयोजन का उपयोग करके, पूल के लिए ईजेबी के लिए पूल किया गया और बाकी के लिए हल्के सीडीआई प्रबंधित बीन्स मेरे लिए बहुत अच्छा प्रदर्शन करते हैं।