다음을 통해 공유


MSMQ 큐 지정

이 섹션에서는 MSMQ 어댑터를 사용할 때 Microsoft Message Queuing(MSMQ라고도 함) 큐를 지정하는 방법을 설명합니다. 경로 지정 규칙에 대해 설명하고, 경로를 큐 지정으로 변환할 때 형식 이름이 어떤 역할을 하는지에 대해서도 설명합니다.

큐 경로 명명 규칙

큐 이름이 경로를 참조하는 경우 다음 표에 있는 명명 규칙을 사용합니다.

큐 유형 경로 구문
공개 큐 Computername\QueueName
개인 큐 Computername\Private$\QueueName
저널 큐 Computername\QueueName\Journal$
컴퓨터 저널 큐 참고: 수신 큐에만 사용합니다. Computername\Journal$
컴퓨터 배달 못 한 편지 큐 참고: 수신 큐에만 사용합니다. Computername\Deadletter$
컴퓨터 트랜잭션 배달 못 한 편지 큐 참고: 수신 큐에만 사용합니다. Computername\XactDeadletter$

참고

큐 경로는 고유해야 합니다.

큐 이름이 형식 이름을 참조하는 경우 큐가 공개인지, 개인인지를 나타내는 문자열 뒤에 생성된 큐의 GUID와 필요한 경우 다른 식별자가 오는 형식을 사용합니다. 다음 표에 있는 명명 규칙을 사용합니다.

형식 유형 형식 이름 구문
공용 FormatName:P ublic=QueueGUID
직접 FormatName:D IRECT=SPX:NetworkNumber:HostNumber\QueueName

FormatName: DIRECT=TCP:IPAddress\QueueName

FormatName: DIRECT=OS:ComputerName\QueueName

송신 포트 큐 경로가 메일 그룹인 경우 큐 경로 구문은 다음과 같습니다.

DL=DistributionListGUID

송신 또는 수신 큐 경로가 HTTP 또는 HTTPS URL인 경우 구문은 다음과 같습니다.

FormatName:DIRECT=http://<client name>/msmq/<queue name>

FormatName:DIRECT=https://<client name>/msmq/<queue name>

참고

"msmq"는 메시지 큐가 IIS(인터넷 정보 서비스)에서 만든 가상 폴더입니다.

참고

메시지를 보낼 때는 HTTP만 사용할 수 있습니다. HTTP 직접 형식 이름을 사용하여 큐가 열린 경우 원격 컴퓨터에 있는 큐의 메시지를 읽을 수 없습니다. 그러나 HTTP 없이 개인 또는 공개 큐 경로를 사용하여 원격 큐에서 SOAP (형식) 메시지를 받을 수 있습니다.

큐 이름이 관리자가 큐에 대해 지정한 설명 텍스트 레이블을 참조하는 경우 이 레이블을 참조하는 큐 경로의 구문은 다음과 같습니다.

LABEL:MyQueue

참고

레이블은 고유하지 않을 수도 있습니다. 따라서 레이블을 사용하여 특정 큐에 연결할 때 이름 충돌이 있을 경우 오류가 표시됩니다.

참고

레이블은 어댑터의 필수 전송 필드입니다.

형식 이름의 역할

메시지 큐는 형식 이름을 사용하여 큐를 식별하고 큐에 액세스하는 방법을 확인합니다. 메시지 큐가 큐에 형식 이름을 할당합니다.

경로 이름 구문을 사용하여 큐를 지정하는 경우(예: myMachine\myQueue) 메시지 큐는 경로를 조회하여 연결된 형식 이름을 찾습니다. 그런 다음 형식 이름을 사용하여 큐에 액세스합니다. 형식 이름을 지정하는 경우 메시지 큐는 지정된 형식 이름을 사용합니다.

형식 이름에 대한 자세한 내용은 .NET Frameworks 클래스 라이브러리 도움말의 "MessageQueue.FormatName 속성"을 참조하십시오.

큐 경로 문제 해결

  • 제공한 큐 경로가 앞의 "큐 경로 명명 규칙"에서 설명한 형식 중 하나와 일치하지 않을 경우 예외가 발생합니다.

  • 다음 문자는 큐 경로의 컴퓨터 이름에 사용할 수 없습니다.

    \ ; , + "

    컴퓨터 이름이 숫자인 경우 예외가 발생합니다. 예: 234\private$\queue.

  • 컴퓨터 배달 못한 편지 큐, 컴퓨터 저널 큐 및 컴퓨터 트랜잭션 배달 못한 편지 큐의 경우 사용자가 시스템 큐 중 하나를 송신 대상 큐로 지정하면 예외가 발생합니다.

  • System.Messaging.MessageQueue.Exists는 원격 큐에서 작동하지 않습니다. 자세한 내용은 .NET Frameworks 클래스 라이브러리 도움말의 "MessageQueue.Exists 메서드"를 참조하십시오.

참고 항목

MSMQ 어댑터 구성