Поделиться через


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 для получения.

Возвращаемое значение

Свойство Message которого LookupId соответствует параметру, переданном lookupId в.

Исключения

MSMQ 3.0 не установлен.

Сообщение с указанным lookupId не удалось найти.

Произошла ошибка при доступе к методу очереди сообщений.

Комментарии

Используйте этот метод, чтобы прочитать сообщение с известным идентификатором подстановки и удалить его из очереди. Этот метод немедленно создает исключение, если сообщение не находится в очереди.

LookupId Свойство сообщения уникально для очереди, в которой находится сообщение, поэтому в очереди будет по крайней мере одно сообщение, соответствующее заданному lookupId параметру.

Чтобы прочитать сообщение с указанным идентификатором подстановки, не удаляя его из очереди, используйте PeekByLookupId метод.

В следующей таблице показано, доступен ли этот метод в различных режимах рабочей группы.

Режим рабочей группы В наличии
Локальный компьютер Да
Имя локального компьютера и прямого формата Да
Удаленный компьютер Нет
Имя удаленного компьютера и прямого формата Да

См. также раздел

Применяется к

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

Сообщение LookupId для получения или 0. Значение 0 используется при доступе к первому или последнему сообщению в очереди.

Возвращаемое значение

Заданные Message параметрами lookupId , action переданными в.

Исключения

MSMQ 3.0 не установлен.

Сообщение с указанным lookupId не удалось найти.

Произошла ошибка при доступе к методу очереди сообщений.

–или–

Очередь не является транзакционной.

Параметр action не является одним из MessageLookupAction членов.

Комментарии

Используйте этот метод, чтобы прочитать сообщение с известным идентификатором подстановки и удалить его из очереди, используя контекст транзакции, определенный параметром transaction . Этот метод немедленно создает исключение, если сообщение не находится в очереди.

LookupId Свойство сообщения уникально для очереди, в которой находится сообщение, поэтому в очереди будет по крайней мере одно сообщение, соответствующее заданному lookupId параметру.

Так как этот метод вызывается в очереди транзакций, полученное сообщение будет возвращено в очередь, если транзакция прервана. Сообщение не удаляется окончательно из очереди, пока транзакция не будет зафиксирована.

Чтобы прочитать сообщение с указанным идентификатором, не удаляя его из очереди, используйте PeekByLookupId метод. Контекст транзакции не связан с сообщением, возвращаемым вызовом PeekByLookupId. Так как PeekByLookupId не удаляет сообщения из очереди, откат транзакции не будет ничего делать, если транзакция была прервана.

В следующей таблице показано, доступен ли этот метод в различных режимах рабочей группы.

Режим рабочей группы В наличии
Локальный компьютер Да
Имя локального компьютера и прямого формата Да
Удаленный компьютер Нет
Имя удаленного компьютера и прямого формата Да

См. также раздел

Применяется к

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

Сообщение LookupId для получения или 0. Значение 0 используется при доступе к первому или последнему сообщению в очереди.

transactionType
MessageQueueTransactionType

Одно из MessageQueueTransactionType значений, описывающее тип контекста транзакции для связывания с сообщением.

Возвращаемое значение

Заданные Message параметрами action , lookupId переданными в.

Исключения

MSMQ 3.0 не установлен.

Сообщение с указанным lookupId не удалось найти.

Произошла ошибка при доступе к методу очереди сообщений.

Параметр action не является одним из MessageLookupAction членов.

–или–

Параметр transactionType не является одним из MessageQueueTransactionType членов.

Комментарии

Используйте этот метод, чтобы прочитать сообщение с известным идентификатором подстановки и удалить его из очереди, используя контекст транзакции, определенный параметром transactionType . Этот метод немедленно создает исключение, если сообщение не находится в очереди.

LookupId Свойство сообщения уникально для очереди, в которой находится сообщение, поэтому в очереди будет по крайней мере одно сообщение, соответствующее заданному lookupId параметру.

Чтобы прочитать сообщение с указанным идентификатором, не удаляя его из очереди, используйте PeekByLookupId метод. Контекст транзакции не связан с сообщением, возвращаемым вызовом PeekByLookupId. Так как PeekByLookupId не удаляет сообщения из очереди, откат транзакции не будет ничего делать, если транзакция была прервана.

Укажите Automatic для transactionType параметра, если уже есть внешний контекст транзакции, подключенный к потоку, который вы хотите использовать для получения сообщения. Укажите Single , хотите ли вы получить сообщение как одну внутреннюю транзакцию. Можно указать None , нужно ли получать сообщение из очереди транзакций за пределами контекста транзакции.

Если этот метод вызывается для получения сообщения из очереди транзакций, полученное сообщение будет возвращено в очередь, если транзакция прервана. Сообщение не удаляется окончательно из очереди, пока транзакция не будет зафиксирована.

В следующей таблице показано, доступен ли этот метод в различных режимах рабочей группы.

Режим рабочей группы В наличии
Локальный компьютер Да
Имя локального компьютера и прямого формата Да
Удаленный компьютер Нет
Имя удаленного компьютера и прямого формата Да

См. также раздел

Применяется к