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


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 , нужно ли получать сообщение из очереди транзакций за пределами контекста транзакции.

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

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

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

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

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