2010-01-29 5 views
0

대기열을 두 개의 다른 응용 프로그램에서 수신 대기하려고하지만 지금까지는 성공하지 못했습니다.MSMQ 대기열을 두 대의 서버에서 수신 대기하는 방법

BeginPeek 및 BeginReceive 메서드를 모두 시도했지만 그 중 아무 것도 작동하지 않았습니다. ReceiveCompleted 이벤트와 함께 BeginReceive를 사용하면 하나의 서버 만 메시지를 수신합니다. PeekCompleted와 함께 BeginPeek을 사용하면 시스템이 루프로 실행되거나 큐에서 메시지를 제거하면 하나의 서버 만 수신합니다.

어떻게 수행 할 것인가?

답변

0

보통 대기열 방법은 대기열이기 때문에 사용자의 경우에는 작동하지 않습니다. 몇 가지 옵션이 있습니다.

첫 번째 옵션은 두 개의 다른 대기열 (각 클라이언트 응용 프로그램마다 하나씩)에 서버를 게시하는 것입니다. 그런 다음 각 클라이언트는 BeginReceive/ReceiveCompleted 메서드를 사용합니다. 이것은 매우 간단하지만 많은 클라이언트 응용 프로그램으로 확장하려는 경우 문제가 될 수 있습니다. 이것은 내가 메시지를 보낼 필요가있는 몇 가지 다운 스트림 시스템이있을 때 내가 한 일이다.

MSDN blog은 PGM 멀티 캐스트 주소를 대기열에 첨부 할 수 있음을 나타냅니다. 그런 다음 클라이언트는 멀티 캐스트 그룹에 가입하고 그런 식으로 메시지를 수신합니다. 나는 이것에 대한 어떤 경험도 없지만 당신이 트랜잭션 성을 잃는 것처럼 보입니다. 이것은 문제 일 수 있습니다.

관련 문제