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
Параметры
Возвращаемое значение
Объект 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, используется при доступе к первому или последнему сообщению в очереди.
- transaction
- MessageQueueTransaction
Объект MessageQueueTransaction.
Возвращаемое значение
Объект 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
, нужно ли получать сообщение из очереди транзакций за пределами контекста транзакции.
Если этот метод вызывается для получения сообщения из очереди транзакций, полученное сообщение будет возвращено в очередь, если транзакция будет прервана. Сообщение не удаляется окончательно из очереди, пока транзакция не будет зафиксирована.
В следующей таблице показано, доступен ли этот метод в различных режимах рабочей группы.
Режим рабочей группы | Доступно |
---|---|
Локальный компьютер | Да |
Имя локального компьютера и прямого формата | Да |
Удаленный компьютер | Нет |
Имя удаленного компьютера и прямого формата | Да |