데이터가 하나의 큐에 푸시되고있는 MSMQ 응용 프로그램 설치가있었습니다. 처음에는 한 프로세스 만 읽고 처리했습니다. 볼륨이 증가했기 때문에 기본적으로 원래 프로세스의 새로운 인스턴스 인 여러 프로세스를 읽기 시작했습니다. 오류는 보이지 않지만 성능이 떨어졌습니다. 나의 이해는 각 프로세스가 대기열에서 읽고 아직 처리되지 않은 새 메시지를 수신하여 계속 진행한다는 것입니다. 이것이 맞습니까, 아니면 여러 프로세스가 같은 메시지를 처리하게 될 수 있습니까?여러 프로세스가 표시된 MSMQ 큐
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)
....
답장을 보내 주셔서 감사합니다. 나는 그것을보고 당신의 제안을 적용했다. 여기 게시 한 후에 나는 두개 이상의 프로세스를 해고하고 결과적으로 대기열은 프로세스가 원활하게 실행되도록 비워 두었습니다. 그렇습니다. 실제로 여러 프로세스를 쉽게 처리 할 수 있도록 처리되었습니다. – vbNewbie