2011-03-16 12 views
7

मैं एक सर्वर से दूसरे सर्वर पर एक एप्लिकेशन ले जा रहा हूं और नया सर्वर 'प्रसिद्ध' - "ऑपरेशन करने के लिए अपर्याप्त संसाधन" देता है। संदेश जब कोड एक कतार में एकाधिक संदेश भेजने का प्रयास करता है, प्रक्रिया एक लेनदेन (लेनदेनस्कोप) के अंदर लपेटा जाता है। पुराना सर्वर सही ढंग से कोड निष्पादित करता है और सभी संदेशों (150 लगभग) को कतार में भेजा जाता है, लेकिन नया सर्वर एपॉर्क्स 27 में विफल रहता है।"ऑपरेशन करने के लिए अपर्याप्त संसाधन।" एमएसएमक्यू जब लेनदेन में कई संदेश होते हैं

अब संदेश का आकार छोटा है और कतार पर संदेशों की संख्या शून्य है

मैंने 'Insufficient Resources? Run away, run away!' आलेख पढ़ा है लेकिन मुझे यकीन है कि एमएसएमक्यू के लिए मशीन कोटा कैसे बदला जाए।

System.Messaging.MessageQueueException (0x80004005):: अपर्याप्त संसाधनों कार्रवाई करने के लिए

एप्लिकेशन लॉग निम्नलिखित प्रविष्टि है।

प्रौद्योगिकी सी # & है नेट 4.0, सर्वर 2003 R2 SP2

कोई भी विचार क्यों मैं इस जीत हो रही है है?

+1

आप केवल, आप समस्याओं के कारण 27 संदेशों को देख कोटा सेट कर रहे हैं नहीं है जहाँ आप देखने के लिए चाहते हैं। मेरे ब्लॉग पोस्ट में आइटम # 4 वह है जिसे आप जांचना चाहते हैं। –

+0

जॉन, – AwkwardCoder

+0

के सिर के लिए धन्यवाद, ऐसा लगता है कि संदेशों में से एक 4 एमबी सीमा से अधिक था, एक बार यह हल हो जाने पर यह – AwkwardCoder

उत्तर

7

संदेश 4 एमबी सीमा से अधिक था में से एक - एक बार यह हल कर रहा था सब कुछ के रूप में काम अपेक्षित होना।

+0

आप निश्चित रूप से इसे पकड़ने के लिए अपने ऐप के अंदर जांच करना चाहते हैं और सुनिश्चित करें कि आप संदेश स्वरूप परिवर्तनों को जारी रखें। http://blogs.msdn.com/b/johnbreakwell/archive/2007/08/22/why-is-there-a-4mb-limit-on-msmq-messages.aspx http: // ब्लॉग .msdn.com/b/johnbreakwell/archive/2007/06/29/the-message-format-has-change-in-msmq-4-0-so-re-test-all-your-applications.aspx –

+0

जॉन , धन्यवाद, बस यह किया और सुनिश्चित किया कि यह फिर से नहीं हो सकता है, यह एक छवि के आकार के आसपास था और तथ्य यह है कि हमने ऊपरी प्रतिबंध नहीं लगाया था या अधिक महत्वपूर्ण रूप से एक छवि प्रकार प्रतिबंध ... – AwkwardCoder

3

बस समस्या संख्या # 7 संग्रहण स्थान और मिच का उत्तर जोड़ने के लिए।

आपका कोटा आकार डिस्क पर भौतिक आकार है और कतार की रिपोर्ट आकार नहीं है (जैसा कि क्यूईएक्सप्लोरर या प्रदर्शन मॉनीटर जैसे ऐप्स में बताया गया है)।

तो भले ही आप अपने कतार पर्ज है आप वास्तव में उन्हें डिस्क से नहीं हटाया है (इसकी हर छह घंटे से साफ किया जा करने के लिए होती) -

डिफ़ॉल्ट स्थान C: \ Windows \ System32 \ MSMQ \ भंडारण , या इसे मिच के जवाब में पहले लिंक से प्राप्त करें।

साफ़ करने के लिए आप केवल फाइलों को हटा नहीं सकते हैं।

नीचे दी गई स्क्रिप्ट (myScript.vbs के रूप में सहेजें) आज़माएं। भागो इस का उपयोग कर कमांड प्रॉम्प्ट से व्यवस्थापक के रूप में:

cscript myScript.vbs

Option Explicit 

Dim mqa 
set mqa = WScript.CreateObject("MSMQ.MSMQApplication") 

WScript.Echo "Bytes in all queues: " + CStr(mqa.BytesInAllQueues) 

mqa.Tidy 

WScript.Echo "MSMQ cleaned up" 

यह हमारे फ़ाइलों के बारे में 50 एमबी के लिए 1 जीबी से हटा दिया गया के बाद भले ही कतारों में बाइट्स 40mb की सूचना दी।

धागा करने के लिए क्रेडिट: https://groups.google.com/forum/#!topic/microsoft.public.msmq.performance/jByfXUwXFw8