title: MSMQ queue with multiple processes reading
body: <p>I had a MSMQ application setup where data was being pushed into one queue. Initially I only had one process reading from it and processing it. Since the volume has increased I started multiple processes to read from it which is basically a new instance of my original process. I do not see any errors but the performance has really dropped. My understanding is that each process will read from a queue and receive a new message that has not yet been processed and continue with that. Is this correct or is it possible that multiple processes could end up processing the same message?</p>
  
  <pre><code>    Dim q As MessageQueue
      If MessageQueue.Exists(".\private$\MsgsIQueue") Then
          q = New MessageQueue(".\private$\MsgsIQueue")
      Else
          'GS - If there is no queue then we're done here
          Console.WriteLine("Queue has not been created!")
          Return
      End If
  
       While True
              Dim message As Message
              counter += 1
             Try
                  If q.Transactional = True Then
                      Thread.Sleep(2000)
                  End If
                  q.MessageReadPropertyFilter.ArrivedTime = True
                  message = q.Peek(TimeSpan.FromSeconds(20.0))
                  message.UseJournalQueue = True
                  message = q.Receive(New TimeSpan(0, 0, 60))
                  message.Formatter = New XmlMessageFormatter
                                     (New [String]() {"System.String"})
                  ProcessMessage(message)
                  ....
  </code></pre>