पर डुप्लिकेट किए गए संदेशों से बचें ActiveMQ सर्वर पर परिभाषित कतार पर डुप्लिकेट संदेशों को दबाने का एक तरीका है?जेएमएस/एक्टिवएमक्यू
मैंने मैन्युअल रूप से JMSMessageID को परिभाषित करने का प्रयास किया, (message.setJMSMessageID ("uniqueid")), लेकिन सर्वर इस संशोधन को अनदेखा करता है और अंतर्निर्मित जेएमएसएमसेज आईडी के साथ एक संदेश प्रदान करता है।
विनिर्देशन से, मुझे संदेशों को deduplicate करने के बारे में कोई संदर्भ नहीं मिला।
हॉर्नेटक में, इस समस्या से निपटने के लिए, हमें संदेश परिभाषा पर मुख्यालय विशिष्ट संपत्ति org.hornetq.core.message.impl.HDR_DUPLICATE_DETECTION_ID घोषित करने की आवश्यकता है।
यानी .:
Message jmsMessage = session.createMessage();
String myUniqueID = "This is my unique id"; // Could use a UUID for this
message.setStringProperty(HDR_DUPLICATE_DETECTION_ID.toString(), myUniqueID);
किसी को जानता हो, तो ActiveMQ के लिए एक समान समाधान?
मुझे संदेह है कि यह विधि मेरी समस्या का समाधान करेगी। मुझे इस उदाहरण के दौरान कतार में ही एक ही JMSMessageID के साथ संदेश का केवल एक उदाहरण रखना होगा। मुझे इसे सेट के रूप में काम करने की ज़रूरत है। कतार से नवीनतम idem तत्व हटा दिए जाने के बाद मैं एक ही JMSMessageID के साथ अन्य संदेश डाल सकता हूं। मुझे इसे लागू करने और परीक्षण करने की आवश्यकता है। लेकिन, ईएआई पुस्तक पर वर्णित इडेमपोटेन्ट पर आधारित, मुझे लगता है कि अवधारणा मेरी आवश्यकता से मेल नहीं खाती है। बीयूटी, प्रस्तावित समाधान अच्छा है। मैं इसके बारे में और अधिक पढ़ूंगा और यहां अपने परिणामों पर टिप्पणी करूंगा। धन्यवाद – apast