2012-02-14 11 views
9

हम एक ऐसे सिस्टम का विकास कर रहे हैं जिसमें दो मुख्य तर्क हैं; एक प्रबंधन तर्क है, जो बहुत हल्का है; और दूसरा प्रसंस्करण तर्क है, जो बहुत संसाधन (रैम + सीपीयू) उपभोग कर रहा है।वेबलॉगिक में विभिन्न अनुप्रयोगों से ईजेबी के बीच एक लेनदेन का प्रचार किया जा सकता है?

हमने प्रसंस्करण तर्क चलाने के लिए प्रबंधन मशीन चलाने के लिए एक मशीन और एक (या अधिक) अन्य मशीनों का निर्णय लेने का निर्णय लिया है।
विभिन्न मशीनों में तर्क को अलग करने के लिए, हमने प्रत्येक तर्क के लिए एक एप्लिकेशन (ईएआर) बनाया है, जो हमें दो अलग-अलग एप्लिकेशन देता है।

अब, हम वेबलॉगिक का उपयोग हमारे एप्लिकेशन सर्वर के रूप में कर रहे हैं, और हमने अभी तक विभिन्न मशीनों पर एप्लिकेशन चलाने के लिए हमारे डोमेन को कॉन्फ़िगर नहीं किया है।

ऐसा करने से पहले, हम जानना चाहते हैं; जब प्रबंधन आवेदन से ईजेबी प्रसंस्करण आवेदन से ईजेबी को कॉल करेगा, तो क्या लेनदेन प्रचारित होगा? यदि प्रबंधन-ईजेबी अपने लेनदेन को वापस लाएगा, तो क्या प्रसंस्करण-ईजेबी भी इसे रोलबैक करेगा? क्या इस सुविधा को डोमेन की विशेष कॉन्फ़िगरेशन की आवश्यकता है?

उत्तर

6

हां। यदि आप सर्वोत्तम प्रथाओं का पालन करते हैं और कुछ भी मूर्खतापूर्ण प्रयास नहीं करते हैं, तो लेन-देन और रोलबैक दोनों प्रचारित होंगे। यही वही है जो ईजेबी को करने के लिए डिज़ाइन किया गया है! अगर आपको ईजेबी का उपयोग करके ईजेबी को सही तरीके से इंजेक्ट करने के तरीके की मदद की ज़रूरत है, तो एक महान गाइड मास्टरिंग ईजेबी 3.1 या जावा लॉबी से छोटा ईजेबी 3.0 रिफाकार्ड है।

EJBs कथात्मक लेनदेन प्रबंधन का उपयोग, ताकि आप सुनिश्चित करें कि आप अपने बीन पर सही घोषणा डाल करने की आवश्यकता होगी:

@Stateless 
@Remote({MyService.class}) 
@TransactionAttribute(TransactionAttributeType.REQUIRED) 
public class MyServiceBean implements MyService { 
    ...awesome code here 
} 

संपादित

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

यदि आप सर्वलेट में हैं, और आप 612 ईजेबी को REQUIRED के साथ एनोटेट करते हैं, तो आपको 6 लेनदेन मिलेगा, क्योंकि प्रत्येक कॉल पर लेनदेन सीमा ईजेबी को शुरू होती है, और विधि समाप्त होती है।

यदि आप ईजेबी में हैं, और आप REQUIRED के साथ एनोटेट किए गए 6 अतिरिक्त ईजेबी को कॉल करते हैं, तो आपको एक लेनदेन मिलेगा क्योंकि लेनदेन सीमा पहले ही शुरू हो चुकी है।

+0

पहले मैंने मान लिया कि यह काम करेगा, लेकिन फिर जब मैं उत्तर की तलाश में था (अब लिंक नहीं मिल पा रहा है) मैंने पाया कि चश्मा इस विषय के बारे में बहुत अस्पष्ट हैं। मुझे लगता है मुझे बस कोशिश करनी होगी। साइड नोट: मैं कड़ी सवाल पूछता हूं; मुझे जवाब नहीं मिलते हैं/मुझे गलत जवाब मिलते हैं/मुझे जवाब मिलता है कि कोई समाधान नहीं है। – wafwaf

+0

यह समझ में आता है :) –

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