2012-03-09 15 views
6

में एमएसएमक्यू संदेशों को संपादित करें मुझे अपनी त्रुटि कतार में संदेशों को संपादित करने में सक्षम होना चाहिए (ताकि वे पुन: प्रसंस्करण के लिए वास्तविक कतार में नाराज हो सकें)।एक कतार

मैं ऐसा करने के लिए अपना स्वयं का कस्टम टूल बनाना चाहता हूं (क्योंकि मेरे संदेशों को समर्थन कर्मियों द्वारा उन्हें आसानी से पठनीय बनाने के लिए विशिष्ट प्रारूपण की आवश्यकता होती है)।

मुझे पता है कि यह संभव है क्योंकि एप्लिकेशन "QueueExplorer" करता है।

क्या कोई जानता है कि मैं एक एमएसएमक्यू संदेश कैसे लोड कर सकता हूं (यह कतार में पहला नहीं है), इसे संपादित करें, और इसे कतार में वापस सहेजें? संदेश के माध्यम से

+0

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

+1

यह शायद बहुत लोकप्रिय नहीं होगा, लेकिन यदि QueueExplorer .NET में लिखा गया है (जो ऐसा प्रतीत होता है) क्यों न सिर्फ इसे एक डिकंपेलर के माध्यम से चलाएं ताकि यह देखने के लिए कि वे इसे कैसे करते हैं? –

+0

@Vaccano QueueExplorer कहता है * जब आप लोड करते हैं, प्रतिलिपि बनाते हैं, खींचते हैं और छोड़ते हैं या संदेश संपादित करते हैं तो यह कतार के अंत तक जाएगा। * (Http://www.cogin.com/mq/qelimitations.php देखें) इसलिए मूल रूप से वे संदेश लोड करते हैं , और संपादन के बाद वे मूल हटाते हैं और संपादित संदेशों को एनक्यू करते हैं। वे "जगह-संपादन" नहीं करते हैं यदि आप यही हैं ... – Yahia

उत्तर

3

दोहराएं, कुछ इस तरह का उपयोग कर:

List<Message> msgList = new List<Message>(); 

using (MessageEnumerator me = queue.GetMessageEnumerator2()) 
{ 
    while (me.MoveNext(new TimeSpan(0, 0, 0))) 
    { 
    Message message = me.Current; 
    msgList.Add(message) 
    } 
} 

फिर आप सूची के माध्यम से पुनरावृति कर सकते हैं, प्रत्येक संदेश के प्रसंस्करण। मूल के आधार पर एक नया संदेश बनाएं। फिर मौजूदा संदेश को हटा दें, और नया जोड़ें।

foreach (Message message in msgList) 
{ 
    //Create a new message as required, add it, then remove the old message 
    MessageQueue.ReceiveById(message.MessageId); 
} 
3

एमएसएमक्यू संदेशों को अपरिवर्तनीय माना जाना चाहिए। सबसे अच्छा आप संदेश पढ़ सकते हैं और कतार में संदेश की एक संपादित प्रति भेज सकते हैं।

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