다음을 통해 공유


메시지 읽기 및 검색 소개

업데이트: 2007년 11월

메시지를 읽거나 검색할 때 유의할 고려 사항이 몇 가지 있습니다.

큐에 대한 액세스 잠그기

수신 작업 시 일시적으로 다른 사용자가 작업 중인 큐에서 메시지를 제거하지 못하도록 해야 하는 경우가 있습니다. 이렇게 하려면 해당 큐의 DenySharedReceive 속성을 true로 설정하면 됩니다. DenySharedReceive를 설정하면 가비지 수집 또는 Close 메서드 호출을 통해 해당 사용자가 이를 해제하기 전까지는 다른 사용자가 같은 큐에서 메시지를 제거할 수 없습니다.

검색할 속성

메시지에는 많은 속성들이 있지만 수신할 속성을 필터링하면 사용자와 관련된 정보에만 치중할 수 있습니다. 예를 들어, 트랜잭션 메시지를 사용하지 않는 경우에는 트랜잭션과 관련된 속성을 검색할 필요가 없습니다. 이 경우 MessagePropertyFilter 속성인 IsFirstInTransaction, IsLastInTransaction, TransactionIdTransactionStatusQueue를 false로 설정합니다. MessageQueue 구성 요소 인스턴스는 큐에서 메시지를 가져올 때마다 이 속성과 일치하는 모든 값을 검색하지 않습니다. 자세한 내용은 방법: 메시지와 함께 검색할 속성 지정을 참조하십시오.

받은 메시지의 형식 지정

큐에서 메시지를 읽는 경우 포맷터 개체는 메시지를 조작할 때처럼 메시지의 내용을 serialize 및 deserialize하는 데 사용됩니다. 기본적으로 XmlMessageFormatter 개체는 사용자가 만든 MessageQueue 구성 요소의 모든 인스턴스와 관련되어 있으며 몇 가지 필요한 속성을 설정하면 이 개체를 사용하여 메시지를 수신할 수 있고 다양한 형식의 포맷터 개체를 사용할 수도 있습니다. 사용할 수 있는 포맷터에 대한 자세한 내용은 메시지 serialization을 참조하십시오.

XmlMessageFormatter는 사람이 읽을 수 있는 XML 문자열을 사용하여 개체 및 기본 데이터 형식과 메시지 사이의 전환을 수행합니다. 이 포맷터를 사용하여 메시지를 검색하려면 TargetTypeNames 또는 TargetTypes 속성을 설정하여 최종 메시지가 처리되는 방식을 나타냅니다. 다른 포맷터 개체를 사용하는 경우 속성이 다릅니다.

참고 항목

작업

방법: 검색된 메시지의 포맷터 지정

방법: 프로그래밍 방식으로 메시지 받기

방법: 메시지 피킹(Peeking)

개념

비동기 메시지 처리

메시지 serialization