spring jms - How to set the ActiveMQ redeliveryPolicy on a queue? -


मैं कतार में ActiveMQ में redelivery पॉलिसी कैसे सेट करूँ?

1) डॉक्टर में, देखें:, समझाएं कि आपको इसे कनेक्शनफ़ीचर या कनेक्शन पर सेट करना चाहिए। लेकिन मैं अलग-अलग कतारों के लिए अलग-अलग मान का उपयोग करना चाहता हूं।

2) इसके अलावा, मुझे यह काम नहीं करना पड़ता। इसे वसंत में कनेक्शन कारखाने पर सेट करना (मैं स्प्रिंग 3.0 के साथ activemq 5.4.2 का उपयोग कर रहा हूं) जैसे कि इसमें कोई प्रभाव नहीं है:

  & lt; amq: connectionFactory id = " AmqConnectionFactory "ब्रोकरURL =" $ {jms.factory.url} "& gt; & LT; AMQ: गुण & gt; & Lt; amq: redelivery पॉलिसी अधिकतम Redeliveries = "6" initialRedeliveryDelay = "15000" उपयोगक्षेत्रीबैकऑफ = "सच" बैकऑफ़मल्टीप्लर = "5" / & gt; & Lt; / AMQ: गुण & gt; & Lt; / AMQ: connectionFactory & gt;   

मैंने इसे निर्धारित कतार पर संपत्ति के रूप में सेट करने का भी प्रयास किया है, लेकिन यह भी ध्यान नहीं दिया जा सकता है क्योंकि परिभाषित मूल्यों को शीघ्र ही पुन: वितरित किया जाता है:

  & Lt; amq: क्यूई आईडी = "jmsQueueDeclarationSnd" भौतिक नाम = "$ {jms.queue.declaration.snd}" & gt; & LT; AMQ: गुण & gt; & Lt; amq: redelivery पॉलिसी अधिकतम Redeliveries = "6" initialRedeliveryDelay = "15000" उपयोगक्षेत्रीबैकऑफ = "सच" बैकऑफ़मल्टीप्लर = "5" / & gt; & Lt; / AMQ: गुण & gt; & Lt; / AMQ: कतार & gt;   

धन्यवाद

मैं भी इवान द्वारा दिखाए गए तरीके का उपयोग कर रहा था ऊपर amq: connectionFactory

के लिए ActiveMQ 5.7.0 में अपग्रेड करते समय मैंने देखा कि यह अब काम नहीं करता है (कार्यान्वयन के बाद से) फिर भी मैं वर्तमान में ActiveMQ फ़ोरम पर बेहतर पोस्ट पढ़ने के बाद: -

  & lt; amq: queue id = "emailQueue" physicalName = "emailQueue" / & gt; & Lt; amq: क्यूई आईडी = "smsQueue" physicalName = "smsQueue" / & gt; & Lt;! - 15 सेकंड पहले पुन: वितरण, फिर 45, 135, 405, 1215, 3645 सेकंड - & gt; & Lt; बीन आईडी = "रीडेलरीवरी पॉलिसी" वर्ग = "org.apache.activemq.RedeliveryPolicy" & gt; & Lt; प्रॉपर्टी नाम = "बैकऑफ़मल्टीप्लियर" मान = "3" / & gt; & Lt; प्रॉपर्टी नाम = "प्रारंभिक रीडेलवरीडायल" मान = "15000" / & gt; & Lt; प्रॉपर्टी नाम = "अधिकतम रडेलिवरीज़" मान = "6" / & gt; & Lt; प्रॉपर्टी नाम = "क्यूई" मान = "*" / & gt; & Lt; प्रॉपर्टी नाम = "redeliveryDelay" value = "15000" / & gt; & Lt; प्रॉपर्टी नाम = "useExponentialBackOff" value = "true" / & gt; & Lt; / सेम ​​& gt; & Lt; amq: connectionFactory id = "jmsfactory" ब्रोकरURL = "yourProtocol / BrokerURL" & gt; & Lt; प्रॉपर्टी नाम = "redelivery पॉलिसी" ref = "redelivery पॉलिसी" / & gt; & Lt; / AMQ: connectionFactory & gt;   

ध्यान दें कि किसी भी संदेश के लिए जो 6 रिट्र्रियों के बाद पुन: प्राप्त करने में विफल रहता है, ActiveMQ एक DLQ.emailQueue 'या DLQ.smsQueue बनायेगा और उस कतार पर संदेश को एन्क्यू करें (इसे मूल से डिक्यूइंग करना) कतार)।

Comments