मैं एक .NET विंडोज फॉर्म एप्लिकेशन लिख रहा हूं जो एक वेबस्पेयर एमक्यू कतार में एक संदेश पोस्ट करेगा और फिर प्रतिक्रिया के लिए एक अलग कतार मतदान करेगा। यदि कोई प्रतिक्रिया वापस आती है, तो आवेदन वास्तविक समय में प्रतिक्रिया को आंशिक रूप से संसाधित करेगा। लेकिन प्रतिक्रिया को कतार में रहने की जरूरत है ताकि एक दैनिक बैच नौकरी, जो प्रतिक्रिया कतार से भी पढ़ती है, शेष प्रक्रिया कर सकती है।मैं इसे हटाए बिना किसी वेबस्पेयर एमक्यू संदेश को कैसे ब्राउज़ करूं?
मुझे संदेश पढ़ने के लिए मिल गया है। जो मैं समझ नहीं पा रहा हूं वह इसे हटाने के बिना इसे कैसे पढ़ा जाए।
यहां तक कि मुझे अब तक क्या मिला है। मैं एक एमक्यू नौसिखिया हूँ, इसलिए किसी भी सुझाव की सराहना की जाएगी। और सी # में जवाब देने के लिए स्वतंत्र महसूस करें।
Public Function GetMessage(ByVal msgID As String) As MQMessage
Dim q = ConnectToResponseQueue()
Dim msg As New MQMessage()
Dim getOpts As New MQGetMessageOptions()
Dim runThru = Now.AddMilliseconds(CInt(ConfigurationManager.AppSettings("responseTimeoutMS")))
System.Threading.Thread.Sleep(1000) 'Wait for one second before checking for the first response'
While True
Try
q.Get(msg, getOpts)
Return msg
Catch ex As MQException When ex.Reason = MQC.MQRC_NO_MSG_AVAILABLE
If Now > runThru Then Throw ex
System.Threading.Thread.Sleep(3000)
Finally
q.Close()
End Try
End While
Return Nothing 'Should never reach here'
End Function
नोट: मैं सत्यापित नहीं किया है कि मेरे कोड वास्तव में संदेश को हटा। लेकिन इस तरह मैं काम करने के लिए एमक्यू को समझता हूं, और ऐसा लगता है कि क्या हो रहा है। कृपया मुझे सही करें यदि यह डिफ़ॉल्ट व्यवहार नहीं है।
+1 - मेरी इच्छा है कि मुझे यह प्रश्न पता चल जाए कि मुझे इसे अपने लिए समझना पड़ेगा। –