2011-12-14 18 views
5

पर अटक जाते हैं हमारे पास NServiceBus पर आधारित एक पब/सब सिस्टम है, जहां हमारे पास सब्सक्राइबर्स इनपुट कतारों में प्रेषित होने के बजाय प्रकाशकों के बाहर जाने वाले संदेशों को अनिश्चित काल तक फंसे हुए संदेशों के साथ अंतःविषय समस्याएं हैं।NServiceBus एमएसएमक्यू संदेश आउटगोइंग कतार

अंक नोट करने के लिए:

  1. हम प्रकाशक सेवा और सब्सक्राइबर सेवाओं को पुनः आरंभ करते हैं, तो संदेश प्रवाह थोड़ी देर के लिए सामान्य रूप से शुरू।
  2. समस्या तब होती है जब संदेशों के बीच एक सतत अवधि होती है।
  3. प्रकाशक सेवा लैन, फ़ायरवॉल के अन्य किनारे के ग्राहकों पर रहता है।
  4. कुछ संदेश मिलते हैं! जैसा कि सेवा पुनरारंभ करने के बाद उल्लेख किया गया है, चीजें थोड़ी देर के लिए ठीक हो जाती हैं।
  5. QueueExplorer का उपयोग करके, मैं देख सकता हूं कि आउटगोइंग कतार में संदेशों को प्रतीक्षा करने की स्थिति है।

नाराज रूप से हमारा विकास पर्यावरण इस व्यवहार को प्रदर्शित नहीं करता है, लेकिन फिर प्रकाशक और ग्राहक सभी इस वातावरण में एक ही लैन पर रहते हैं।

+0

उत्सुक, क्या सदस्यता लेने वाली मशीन में कई एनआईसी हैं? मेरे मामले में ग्राहक लैन और वायरलेस दोनों के साथ एक लैपटॉप था, लेकिन डेस्कटॉप के साथ Win7 और केवल 1 एनआईसी ने समस्या का प्रदर्शन नहीं किया। – BlackICE

उत्तर

4


आउटगोइंग कतार में फंस गए एमएसएमक्यू संदेश पूरी तरह से एक एमएसएमक्यू मुद्दा है।
प्रकाशक और सब्सक्राइबर सेवाओं को पुनरारंभ करना कोई फर्क नहीं पड़ता क्योंकि वे संदेश वितरण में सीधे शामिल नहीं हैं। यदि आप केवल पब/उप सेवाओं को पुनरारंभ करके समस्या को ठीक कर सकते हैं और संदेश क्विकिंग सेवाओं को नहीं तो यह संसाधन/स्मृति रिसाव समस्या की तरह दिखता है।

मैं हो रहा तरह कुछ कल्पना:

  1. संदेश गंतव्य के लिए प्रवाह है, जो उन्हें
  2. किसी कारण से भंडारण में कर्नेल स्मृति का उपयोग करता है, कर्नेल स्मृति समाप्त (बहुत अधिक संदेश, स्मृति रिसाव, whetever)
  3. गंतव्य अब नए संदेशों को अस्वीकार कर देता है क्योंकि उन्हें तार
  4. से स्मृति में लोड नहीं किया जा सकता है कनेक्शन कनेक्शन रीसेट हो गया है और प्रतीक्षा समय तक पहुंचने तक पुनः कनेक्ट नहीं किया गया है; कतार इस बिंदु
  5. प्रणाली के माध्यम से लूप पर "इंतज़ार कर" (3) और (4) जब तक ...
  6. पब/उप सेवाओं गए संदेश डिलीवर होते
  7. गोटो के लिए पुन: प्रारंभ कर रहे हैं और पर्याप्त संसाधन अब वहाँ है (2)

कभी-कभी संदेश की आवश्यकता होती है जब पर्याप्त कर्नेल मेमोरी अस्थायी रूप से कई सेवाओं और डिवाइस ड्राइवरों द्वारा इसे मुक्त कर दिया जाता है। इस ब्लॉग पोस्ट का

आइटम 4 सबसे अधिक संभावना दोषी है: http://blogs.msdn.com/b/johnbreakwell/archive/2006/09/18/insufficient-resources-run-away-run-away.aspx

चीयर्स
जॉन Breakwell

+0

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

+0

इस मुद्दे को भी चलाएं, मुझे पता है कि यह आइटम 4 नहीं है, क्योंकि मैं आउटगोइंग कतार में फंसने से पहले इसे कुछ भी नहीं भेजता हूं। अगर मैं संदेश भेजने से पहले लगभग 10 मिनट तक प्रकाशक और ग्राहक दोनों बैठता हूं, तो यह आउटगोइंग कतार कभी नहीं छोड़ता है। अगर मैं उस समय से पहले एक संदेश भेजता हूं, तो यह ठीक हो जाता है। इसके अलावा, अगर मैं ग्राहक को पुनरारंभ करता हूं तो संदेश तब प्रवाह करेगा। – BlackICE

+0

यह हर बार पुन: उत्पन्न होता है जब मैं उन्हें 10 मिनट के लिए निष्क्रिय बैठने देता हूं। – BlackICE

1

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

+1

किसी भी कतार में संदेश सिस्टम कोटा की ओर गिनती हैं और कर्नेल मेमोरी का उपभोग करते हैं। परफॉर्म काउंटर "सभी कतारों में कुल संदेश" की निगरानी करने के लिए हमेशा एक अच्छा विचार है। –

1

मैंने इस मुद्दे में भी भाग लिया है, मुझे पता है कि यह आइटम 4 नहीं है, क्योंकि मैं आउटगोइंग कतार में फंसने से पहले इसे कुछ भी नहीं भेजता हूं। अगर मैं संदेश भेजने से पहले लगभग 10 मिनट तक प्रकाशक और ग्राहक दोनों बैठता हूं, तो यह आउटगोइंग कतार कभी नहीं छोड़ता है। अगर मैं उस समय से पहले एक संदेश भेजता हूं, तो यह ठीक हो जाता है। इसके अलावा, अगर मैं ग्राहक को पुनरारंभ करता हूं तो संदेश तब प्रवाह करेगा। यह हर बार पुन: उत्पन्न होता है जब मैं उन्हें 10 मिनट के लिए निष्क्रिय बैठने देता हूं।

मुझे लगता है कि मैं इस सवाल का जवाब यहां पाया, कम से कम इस मुद्दे मैं हो रही थी तय:

http://support.microsoft.com/kb/2554746

इसके अलावा, मेरे मामले में यह पुन: प्रारंभ करने के साथ कोई संबंध नहीं था, इसलिए नहीं है कि आपको फेंक दिया, मैंने नेटस्टैट में लक्षण प्रदर्शित किए और संदेश शुरू होने पर संदेश शुरू हो जाएंगे।

1

बस में मेरी 2p फेंकने के लिए:

हम एक ऐसी समस्या है, जहां संदेश पंक्तिबद्ध सेवा स्मृति रिसाव किसी तरह का था और स्मृति है जो जारी नहीं किया था की बड़ी मात्रा का उपभोग करेंगे। हालांकि वे अंततः दिया जाएगा (कभी कभी 3 दिन के बाद) -

enter image description here

संदेशों के लिए यह नेतृत्व समय की लंबी अवधि के लिए अटक।

हमने इसे ठीक करने पर कोई दिक्कत नहीं की है क्योंकि यह तब होता है जब सेवा भारी भार में होती है जो अक्सर नहीं होती है।

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