मेरे पास एक प्रक्रिया है जिसमें एक जेएमएस संदेश भेजना शामिल है। प्रक्रिया एक लेनदेन का हिस्सा है। यदि लेनदेन का बाद का हिस्सा विफल रहता है, तो एक संदेश जो पिछले भाग के बाद संदेश भेजता है, मुझे संदेश रद्द करना होगा। एक विचार मैंने किसी भी तरह संदेश पर सेट किया था कि इसे एक निश्चित समय के लिए नहीं चुना जाना चाहिए, और यदि मुझे रोलबैक की आवश्यकता है, तो मैं संदेश भेज सकता हूं और रद्द कर सकता हूं। मैसेजिंग को नहीं जानते, मुझे नहीं पता कि विचार संभव है या नहीं। या, क्या कोई बेहतर विचार है? धन्यवादजेएमएस रोलबैक
उत्तर
आप जेएमएस और जेटीए (जावा लेनदेन एपीआई) का एक साथ उपयोग कर सकते हैं - see here। ऐसा करने पर, एक जेएमएस संदेश भेजने या प्राप्त संदेश की खपत वास्तव में लेनदेन प्रतिबद्धता के हिस्से के रूप में परमाणु रूप से होती है।
इसका क्या अर्थ है? यदि लेनदेन विफल रहता है या वापस लुढ़का जाता है, तो "भेजा गया" संदेश बाहर नहीं जाता है और किसी भी "प्राप्त" संदेश वास्तव में उपभोग नहीं होते हैं। आपके जेएमएस और जेटीए प्रदाता द्वारा आपके लिए सभी को संभाला गया।
आपको जेटीए का समर्थन करने वाले जेएमएस कार्यान्वयन का उपयोग करने की आवश्यकता है। लगता है जैसे आप पहले से ही लेनदेन का उपयोग कर रहे हैं, इसलिए ऐसा करने के लिए कुछ विन्यास करने का मामला हो सकता है (हाथ को जोर से लहराते हुए ...)।
मुझे इसका उपयोग करने का अनुभव हुआ है (बीईए वेबलॉगिक 7 डब्ल्यू/बीईए वेबलॉगिक एकीकरण)। विज्ञापन के रूप में काम किया - "बाहरी दुनिया" ने जेएमएस सामानों का कोई प्रभाव नहीं देखा जब तक मैंने लेनदेन सफलतापूर्वक नहीं किया।
आपने जो वर्णन किया है वह एक एक्सए लेनदेन है। यह एक लेनदेन को कई परतों यानी जेएमएस प्रदाता, डीबी या किसी अन्य ईआईएस में गुंजाइश करने की अनुमति देता है। अधिकांश कंटेनर को गैर एक्सए और कोई भी एक्सए लेनदेन दोनों का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है, इसलिए अपनी कंटेनर सेटिंग्स की जांच करें!
उदाहरण के लिए यदि आप एक्सए लेनदेन के साथ जेएमएस का उपयोग कर रहे हैं तो निम्नलिखित संभव है।
Start Transaction
|
DB Insert
|
Send JMS Msg
|
More DB Inserts
|
Commit Transaction <- Only at this point will the database records be inserted and the JMS message sent.
XA Tranactions पूर्ण जावा ईई कंटेनर तो XA लेनदेन बिलाव में उपलब्ध नहीं हैं में ही उपलब्ध हैं।
शुभकामनाएं!
कार्ल
- 1. किसी जेएमएस संदेशसूची से रोलबैक सिग्नल करें
- 2. जेएमएस लेनदेन
- 3. रोलबैक
- 4. जेएमएस क्लाइंट
- 5. जेएमएस/एक्टिवएमक्यू
- 6. जेएमएस कतार
- 7. जेएमएस कतार
- 8. वापसी रोलबैक
- 9. जेएमएस ईको सिस्टम में जेएमएस ब्रोकर की ज़िम्मेदारी क्या है?
- 10. संदेश कतार (जेएमएस)
- 11. वेबलॉगिक जेएमएस कतार
- 12. जेएमएस और एक्टिवएमक्यू अपवाद
- 13. एक जेएमएस सहसंबंध आईडी
- 14. ऊंट, जेएमएस, CLIENT_ACKNOWLEDGE मोड
- 15. जेबॉस जेएमएस रिमोट कतार?
- 16. जेएमएस समकक्ष .NET
- 17. जेएमएस कतार पूर्ण है
- 18. जेएमएस संदेश प्राथमिकता संदेश
- 19. जेएमएस बनाम वेबसाइट सर्विसेज
- 20. एक्टिवएमक्यू और जेएमएस: नौसिखिए
- 21. टीआईबीसीओ जेएमएस जार फ़ाइल
- 22. ओरेकल: जेएमएस संदेश
- 23. जेएमएस और वेब सेवा
- 24. प्रभावी जेएमएस प्रोसेसिंग
- 25. जेनेरिक जेएमएस क्लाइंट
- 26. सत्र। रोलबैक (एनएचबीरनेट)
- 27. ईजेबी 3 लेनदेन रोलबैक
- 28. ट्रिगर से रोलबैक लेनदेन
- 29. नेस्टेड/चाइल्ड ट्रांजैक्शनस्कोप रोलबैक
- 30. गिट रोलबैक 1 पुल
इसके अलावा खाते के प्रदर्शन भूमि के ऊपर में रखते हैं: http://stackoverflow.com/questions/12305900/performance-overhead-of-xa-data-sources-best-practices – Vadzim