다음을 통해 공유


MessageQueue.ReceiveByLookupId 메서드

정의

MSMQ 3.0에서 도입되었습니다. 큐에서 특정 메시지를 받습니다. 메시지는 조회 식별자로 지정하거나 큐의 앞이나 뒤와 같은 위치로 지정할 수 있습니다.

오버로드

ReceiveByLookupId(Int64)

MSMQ 3.0에서 도입되었습니다. 비트랜잭션 큐에서 지정된 조회 식별자를 갖는 메시지를 받습니다.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

MSMQ 3.0에서 도입되었습니다. 트랜잭션 큐에서 특정 메시지를 받습니다. 메시지는 조회 식별자로 지정하거나 큐의 앞이나 뒤와 같은 위치로 지정할 수 있습니다.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

MSMQ 3.0에서 도입되었습니다. 지정된 트랜잭션 컨텍스트를 사용하여 큐에서 특정 메시지를 받습니다. 메시지는 조회 식별자로 지정하거나 큐의 앞이나 뒤와 같은 위치로 지정할 수 있습니다.

ReceiveByLookupId(Int64)

MSMQ 3.0에서 도입되었습니다. 비트랜잭션 큐에서 지정된 조회 식별자를 갖는 메시지를 받습니다.

public:
 System::Messaging::Message ^ ReceiveByLookupId(long lookupId);
public System.Messaging.Message ReceiveByLookupId (long lookupId);
member this.ReceiveByLookupId : int64 -> System.Messaging.Message
Public Function ReceiveByLookupId (lookupId As Long) As Message

매개 변수

lookupId
Int64

받을 메시지의 LookupId입니다.

반환

전달된 lookupId 매개 변수와 Message 속성이 일치하는 LookupId를 반환합니다.

예외

MSMQ 3.0이 설치되어 있지 않은 경우

지정된 lookupId의 메시지를 찾을 수 없는 경우

메시지 큐 메서드에 액세스하는 동안 오류가 발생한 경우

설명

이 메서드를 사용하여 알려진 조회 식별자가 있는 메시지를 읽고 큐에서 제거합니다. 이 메서드는 메시지가 큐에 없는 경우 즉시 예외를 throw합니다.

메시지의 속성은 LookupId 메시지가 있는 큐에 고유하므로 큐에 지정된 lookupId 매개 변수와 일치하는 최대 하나의 메시지가 있습니다.

지정된 조회 식별자가 있는 메시지를 큐에서 제거하지 않고 읽으려면 메서드를 PeekByLookupId 사용합니다.

다음 표에서는 이 메서드를 다양한 작업 그룹 모드에서 사용할 수 있는지 여부를 보여 줍니다.

작업 그룹 모드 사용 가능
수집 Yes
로컬 컴퓨터 및 직접 형식 이름 Yes
원격 컴퓨터 No
원격 컴퓨터 및 직접 형식 이름 Yes

추가 정보

적용 대상

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

MSMQ 3.0에서 도입되었습니다. 트랜잭션 큐에서 특정 메시지를 받습니다. 메시지는 조회 식별자로 지정하거나 큐의 앞이나 뒤와 같은 위치로 지정할 수 있습니다.

public:
 System::Messaging::Message ^ ReceiveByLookupId(System::Messaging::MessageLookupAction action, long lookupId, System::Messaging::MessageQueueTransaction ^ transaction);
public System.Messaging.Message ReceiveByLookupId (System.Messaging.MessageLookupAction action, long lookupId, System.Messaging.MessageQueueTransaction transaction);
member this.ReceiveByLookupId : System.Messaging.MessageLookupAction * int64 * System.Messaging.MessageQueueTransaction -> System.Messaging.Message
Public Function ReceiveByLookupId (action As MessageLookupAction, lookupId As Long, transaction As MessageQueueTransaction) As Message

매개 변수

action
MessageLookupAction

큐에서 메시지를 읽는 방법을 지정하는 MessageLookupAction 값 중 하나입니다. 다음 중 하나를 지정합니다.

MessageLookupAction.Current: lookupId로 지정된 메시지를 받고 큐에서 제거합니다.

MessageLookupAction.Next: lookupId로 지정된 메시지의 뒤에 있는 메시지를 받고 큐에서 제거합니다.

MessageLookupAction.Previous: lookupId로 지정된 메시지의 앞에 있는 메시지를 받고 큐에서 제거합니다.

MessageLookupAction.First: 큐에 있는 첫 번째 메시지를 받고 큐에서 제거합니다. lookupId 매개 변수는 0으로 설정되어야 합니다.

MessageLookupAction.Last: 큐에 있는 마지막 메시지를 받고 큐에서 제거합니다. lookupId 매개 변수는 0으로 설정되어야 합니다.

lookupId
Int64

0을 수신할 메시지의 LookupId입니다. 0은 큐에 있는 첫 번째 또는 마지막 메시지에 액세스할 때 사용됩니다.

반환

전달된 lookupIdaction 매개 변수로 지정된 Message입니다.

예외

MSMQ 3.0이 설치되어 있지 않은 경우

지정된 lookupId의 메시지를 찾을 수 없는 경우

메시지 큐 메서드에 액세스하는 동안 오류가 발생한 경우

또는

비트랜잭션 큐입니다.

action 매개 변수가 MessageLookupAction 멤버 중 하나가 아닌 경우

설명

이 메서드를 사용하여 알려진 조회 식별자가 있는 메시지를 읽고 매개 변수로 정의된 transaction 트랜잭션 컨텍스트를 사용하여 큐에서 제거합니다. 이 메서드는 메시지가 큐에 없는 경우 즉시 예외를 throw합니다.

메시지의 속성은 LookupId 메시지가 있는 큐에 고유하므로 큐에 지정된 lookupId 매개 변수와 일치하는 최대 하나의 메시지가 있습니다.

이 메서드는 트랜잭션 큐에서 호출되므로 트랜잭션이 중단되면 수신된 메시지가 큐로 반환됩니다. 트랜잭션이 커밋될 때까지 메시지는 큐에서 영구적으로 제거되지 않습니다.

지정된 식별자가 있는 메시지를 큐에서 제거하지 않고 읽으려면 메서드를 PeekByLookupId 사용합니다. 에 대한 호출 PeekByLookupId에서 반환된 메시지와 연결된 트랜잭션 컨텍스트가 없습니다. 는 PeekByLookupId 큐에서 메시지를 제거하지 않으므로 트랜잭션이 중단된 경우 롤백할 것이 없습니다.

다음 표에서는 이 메서드를 다양한 작업 그룹 모드에서 사용할 수 있는지 여부를 보여 줍니다.

작업 그룹 모드 사용 가능
수집 Yes
로컬 컴퓨터 및 직접 형식 이름 Yes
원격 컴퓨터 No
원격 컴퓨터 및 직접 형식 이름 Yes

추가 정보

적용 대상

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

MSMQ 3.0에서 도입되었습니다. 지정된 트랜잭션 컨텍스트를 사용하여 큐에서 특정 메시지를 받습니다. 메시지는 조회 식별자로 지정하거나 큐의 앞이나 뒤와 같은 위치로 지정할 수 있습니다.

public:
 System::Messaging::Message ^ ReceiveByLookupId(System::Messaging::MessageLookupAction action, long lookupId, System::Messaging::MessageQueueTransactionType transactionType);
public System.Messaging.Message ReceiveByLookupId (System.Messaging.MessageLookupAction action, long lookupId, System.Messaging.MessageQueueTransactionType transactionType);
member this.ReceiveByLookupId : System.Messaging.MessageLookupAction * int64 * System.Messaging.MessageQueueTransactionType -> System.Messaging.Message
Public Function ReceiveByLookupId (action As MessageLookupAction, lookupId As Long, transactionType As MessageQueueTransactionType) As Message

매개 변수

action
MessageLookupAction

큐에서 메시지를 읽는 방법을 지정하는 MessageLookupAction 값 중 하나입니다. 다음 중 하나를 지정합니다.

MessageLookupAction.Current: lookupId로 지정된 메시지를 받고 큐에서 제거합니다.

MessageLookupAction.Next: lookupId로 지정된 메시지의 뒤에 있는 메시지를 받고 큐에서 제거합니다.

MessageLookupAction.Previous: lookupId로 지정된 메시지의 앞에 있는 메시지를 받고 큐에서 제거합니다.

MessageLookupAction.First: 큐에 있는 첫 번째 메시지를 받고 큐에서 제거합니다. lookupId 매개 변수는 0으로 설정되어야 합니다.

MessageLookupAction.Last: 큐에 있는 마지막 메시지를 받고 큐에서 제거합니다. lookupId 매개 변수는 0으로 설정되어야 합니다.

lookupId
Int64

0을 수신할 메시지의 LookupId입니다. 0은 큐에 있는 첫 번째 또는 마지막 메시지에 액세스할 때 사용됩니다.

transactionType
MessageQueueTransactionType

MessageQueueTransactionType 값 중 하나로, 메시지와 연결할 트랜잭션 컨텍스트 형식을 설명합니다.

반환

전달된 actionlookupId 매개 변수로 지정된 Message입니다.

예외

MSMQ 3.0이 설치되어 있지 않은 경우

지정된 lookupId의 메시지를 찾을 수 없는 경우

메시지 큐 메서드에 액세스하는 동안 오류가 발생한 경우

action 매개 변수가 MessageLookupAction 멤버 중 하나가 아닌 경우

또는

transactionType 매개 변수가 MessageQueueTransactionType 멤버 중 하나가 아닌 경우

설명

이 메서드를 사용하여 알려진 조회 식별자가 있는 메시지를 읽고 매개 변수로 정의된 transactionType 트랜잭션 컨텍스트를 사용하여 큐에서 제거합니다. 이 메서드는 메시지가 큐에 없는 경우 즉시 예외를 throw합니다.

메시지의 속성은 LookupId 메시지가 있는 큐에 고유하므로 큐에 지정된 lookupId 매개 변수와 일치하는 최대 하나의 메시지가 있습니다.

지정된 식별자가 있는 메시지를 큐에서 제거하지 않고 읽으려면 메서드를 PeekByLookupId 사용합니다. 에 대한 호출 PeekByLookupId에서 반환된 메시지와 연결된 트랜잭션 컨텍스트가 없습니다. 는 PeekByLookupId 큐에서 메시지를 제거하지 않으므로 트랜잭션이 중단된 경우 롤백할 것이 없습니다.

메시지를 수신하는 transactionType 데 사용할 스레드에 연결된 외부 트랜잭션 컨텍스트가 이미 있는 경우 매개 변수를 지정 Automatic 합니다. Single 메시지를 단일 내부 트랜잭션으로 받을지 지정합니다. 트랜잭션 컨텍스트 외부의 트랜잭션 큐에서 메시지를 받을지 지정할 수 있습니다 None .

트랜잭션 큐에서 메시지를 수신하기 위해 이 메서드를 호출하면 트랜잭션이 중단된 경우 수신된 메시지가 큐로 반환됩니다. 트랜잭션이 커밋될 때까지 메시지는 큐에서 영구적으로 제거되지 않습니다.

다음 표에서는 이 메서드를 다양한 작업 그룹 모드에서 사용할 수 있는지 여부를 보여 줍니다.

작업 그룹 모드 사용 가능
수집 Yes
로컬 컴퓨터 및 직접 형식 이름 Yes
원격 컴퓨터 No
원격 컴퓨터 및 직접 형식 이름 Yes

추가 정보

적용 대상