2014-11-19 12 views

उत्तर

1

@MessageDriven (एमडीबी) जेएमएस एपीआई का हिस्सा है। असफल संदेश खपत, लेनदेन समर्थन पर पुनः प्रयास करने के लिए जेएमएस में सभी प्रकार के अतिरिक्त हैं और आपको संदेशों की कतार को नियंत्रित करने की अनुमति भी मिलती है।

@Asynchronous एनोटेशन जावा ई -6 -6 (ईजेबी 3.1) शुरू नहीं किया गया था।

USECASE मान लिया जाये कि एक जावा-ee-6 कंटेनर में सरल अतुल्यकालिक मंगलाचरण या इसके बाद के संस्करण, @Asynchronous का उपयोग (arun guptas blog on this)

आपको लगता है कि परे अधिक की जरूरत है, JMS एक विकल्प

6

@Asynchronous है हो सकता है केवल तभी उपयुक्त होता है जब बाहरी लेनदेन को समानांतर में काम के कई टुकड़े लॉन्च करने की आवश्यकता होती है और फिर उन सभी पर प्रतीक्षा करें (या पृष्ठभूमि में काम का एक टुकड़ा लॉन्च करें, अग्रभूमि में कुछ काम करें, और फिर पृष्ठभूमि के काम पर प्रतीक्षा करें)। @Asynchronous लेनदेन के लिए उपयुक्त नहीं है "आग और भूलें" क्योंकि कंटेनर एसिंक्रोनस काम को कभी भी निष्पादित करना शुरू करने से पहले क्रैश हो सकता है (मेरी राय में, शून्य ईजेबी एसिंक्रोनस विधियां बहुत ही कम उपयोगी होती हैं, शायद इन-मेमोरी कैश को अपडेट करने जैसी कुछ चीज़ों के लिए)। यदि आप काम की गारंटी देना चाहते हैं तो इसे पूरा करने के इंतजार किए बिना असीमित रूप से होगा, तो आपको एक एमडीबी को एक संदेश भेजना चाहिए या ईजेबी टाइमर शेड्यूल करना चाहिए।

+0

कंटेनर "क्रैश" कैसे हो सकता है? – Dherik

+0

जेवीएम प्रक्रिया की मौत हो गई है, मशीन अचानक बिजली खो देती है, आदि। –

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