2011-12-11 11 views
6

मैं खरगोश टेम्पलेट वर्ग का उपयोग कर वसंत amqp के साथ एक RabbitMQ कतार में लिख रहा हूँ। मैं कतार में संदेश भेजने के लिए convertAndSend विधि का उपयोग करता हूं। यह सामान्य स्थितियों के तहत अच्छी तरह से काम करता है, लेकिन अगर कतार मौजूद नहीं है तो यह चुपचाप विफल हो रहा है। कोई अपवाद नहीं फेंक दिया गया है और लॉगर में कोई त्रुटि/डीबग संदेश लॉग नहीं है।मुझे कैसे पता चलेगा कि मेरा संदेश वसंत amqp के साथ सफलतापूर्वक भेजा गया था?

संदेश सुनिश्चित करने के लिए मेरे लिए सबसे अच्छा तरीका क्या है?

यहां एक उदाहरण है कि कोड वर्तमान में क्या कर रहा है।

RabbitTemplate template = new RabbitTemplate(factory); 
template.setQueue(queueName); 
template.setRoutingKey(queueName); 
template.convertAndSend(message); 
+0

क्या आप पूरी तरह से सुनिश्चित हैं कि कोई संदेश लॉग इन नहीं है? क्या आपने जानबूझकर दलाल के साथ यूनिट परीक्षण की कोशिश की है? – artbristol

+0

ब्रोकर नीचे होने पर मैं चुप विफलता के बारे में गलत था, ब्रोकर नीचे होने पर मुझे वास्तव में अज्ञातहोस्ट अपवाद प्राप्त होता है। मैंने सवाल अपडेट किया है। उस ने कहा, अगर कतार मौजूद नहीं है तो मुझे अभी भी कोई अपवाद या त्रुटि संदेश नहीं मिला है। –

+0

क्या आप कोड भेज सकते हैं जहां आप संदेश भेजते हैं? – artbristol

उत्तर

2

यह एक RabbitMQ ग्राहक एक दलाल जो कोई कतारों यह भीतर बाध्य संदेश स्वीकार करने के लिए है करने के लिए एक संदेश भेजने के लिए एक त्रुटि नहीं है। RabbitMQ चुपचाप इसे छोड़ देगा और ग्राहक कोई भी बुद्धिमान नहीं होगा। यदि आपके संदेशों में रुचि रखने वाली कोई कतार नहीं है, तो ब्रोकर को इसके लिए कई अन्य विकल्प उपलब्ध नहीं हैं।

यह कहा गया है कि अगर आप mandatory ध्वज सेट करके चुपचाप गिराएंगे तो आप RabbitMQ शिकायत कर सकते हैं। मुझे नहीं पता कि वसंत AMQP इंटरफेस इसका समर्थन करता है, लेकिन यह निश्चित रूप से RabbitMQ जावा क्लाइंट लाइब्रेरी में उपलब्ध है।

+0

धन्यवाद, मैं इसे देख लूंगा। मैं कल इसे पाने की कोशिश करूंगा, हम अभी बहुत व्यस्त हैं। –

+0

मुझे अनिवार्य ध्वज सेट करने का कोई तरीका नहीं दिख रहा है। लगता है कि वसंत-एएमपीपी वस्तुओं में से कोई भी उस सेटिंग में प्रतीत नहीं होता है। –

+0

मुझे लगता है कि मेरी समस्या यह है कि संदेश वितरित माना जाता है क्योंकि यह एक्सचेंज पर पहुंचता है। संदेश कतार में कभी नहीं भेजा गया है क्योंकि यह अस्तित्व में नहीं है। शायद खरगोश में कुछ विन्यास है जिसे यह सुनिश्चित करने के लिए स्थापित किया जाना चाहिए कि संदेश गुम नहीं है। –

1

आप mandatory का उपयोग कर सकते हैं और प्रकाशक रिटर्न (अविश्वसनीय संदेशों के लिए) भी सक्षम कर सकते हैं।

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