データが1つのキューにプッシュされるMSMQアプリケーションのセットアップがありました。最初は、それを読み取って処理するプロセスは1つしかありませんでした。ボリュームが増えたので、それから読み取るために複数のプロセスを開始しました。これは基本的に元のプロセスの新しいインスタンスです。エラーは表示されませんが、パフォーマンスは実際に低下しています。私の理解では、各プロセスはキューから読み取り、まだ処理されていない新しいメッセージを受信して続行します。これは正しいですか、それとも複数のプロセスが同じメッセージを処理してしまう可能性がありますか?
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)
....