Partilhar via


MessageQueue.ReceiveByLookupId Método

Definição

Introduzido no MSMQ 3.0. Recebe uma mensagem específica da fila. A mensagem pode ser especificada por um identificador de pesquisa ou pela sua posição no início ou no final da fila.

Sobrecargas

ReceiveByLookupId(Int64)

Introduzido no MSMQ 3.0. Recebe a mensagem que corresponde ao identificador de pesquisa especificado de uma fila não transacional.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

Introduzido no MSMQ 3.0. Recebe uma mensagem específica de uma fila transacional. A mensagem pode ser especificada por um identificador de pesquisa ou pela sua posição no início ou no final da fila.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

Introduzido no MSMQ 3.0. Recebe uma mensagem específica da fila, usando o contexto de transação especificado. A mensagem pode ser especificada por um identificador de pesquisa ou pela sua posição no início ou no final da fila.

ReceiveByLookupId(Int64)

Introduzido no MSMQ 3.0. Recebe a mensagem que corresponde ao identificador de pesquisa especificado de uma fila não transacional.

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

Parâmetros

lookupId
Int64

O LookupId da mensagem a ser recebida.

Retornos

O Message cuja propriedade LookupId corresponde ao parâmetro lookupId passado.

Exceções

O MSMQ 3.0 não está instalado.

Não foi possível localizar a mensagem com o lookupId especificado.

Erro ao acessar um método do serviço de Enfileiramento de Mensagens.

Comentários

Use esse método para ler uma mensagem com um identificador de pesquisa conhecido e removê-la da fila. Esse método gera uma exceção imediatamente se a mensagem não estiver na fila.

A LookupId propriedade de uma mensagem é exclusiva para a fila em que a mensagem reside, portanto, haverá no máximo uma mensagem na fila que corresponde ao parâmetro especificado lookupId .

Para ler uma mensagem com um identificador de pesquisa especificado sem removê-la da fila, use o PeekByLookupId método .

A tabela a seguir mostra se esse método está disponível em vários modos de Grupo de Trabalho.

Modo de grupo de trabalho Disponível
Computador local Yes
Nome do computador local e do formato direto Yes
Computador remoto Não
Computador remoto e nome de formato direto Yes

Confira também

Aplica-se a

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

Introduzido no MSMQ 3.0. Recebe uma mensagem específica de uma fila transacional. A mensagem pode ser especificada por um identificador de pesquisa ou pela sua posição no início ou no final da fila.

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

Parâmetros

action
MessageLookupAction

Um dos valores MessageLookupAction, especificando como a mensagem é lida na fila. Especifique um dos seguintes:

MessageLookupAction.Current: recebe a mensagem especificada pela lookupId e a remove da fila.

MessageLookupAction.Next: recebe a mensagem seguinte à mensagem especificada pela lookupId e a remove da fila.

MessageLookupAction.Previous: recebe a mensagem anterior à mensagem especificada por lookupId e a remove da fila.

MessageLookupAction.First: recebe a primeira mensagem na fila e a remove da fila. O parâmetro lookupId deve ser definido como 0.

MessageLookupAction.Last: recebe a última mensagem na fila e a remove da fila. O parâmetro lookupId deve ser definido como 0.

lookupId
Int64

O LookupId da mensagem a receber, ou 0. 0 é usado para acessar a primeira ou a última mensagem na fila.

Retornos

O Message especificado pelos parâmetros lookupId e action passados.

Exceções

O MSMQ 3.0 não está instalado.

Não foi possível localizar a mensagem com o lookupId especificado.

Erro ao acessar um método do serviço de Enfileiramento de Mensagens.

- ou -

A fila é não transacional.

O parâmetro action não é um dos membros do MessageLookupAction.

Comentários

Use esse método para ler uma mensagem com um identificador de pesquisa conhecido e removê-la da fila, usando um contexto de transação definido pelo transaction parâmetro . Esse método gera uma exceção imediatamente se a mensagem não estiver na fila.

A LookupId propriedade de uma mensagem é exclusiva para a fila em que a mensagem reside, portanto, haverá no máximo uma mensagem na fila que corresponde ao parâmetro especificado lookupId .

Como esse método é chamado em uma fila transacional, a mensagem recebida será retornada para a fila se a transação for anulada. A mensagem não será removida permanentemente da fila até que a transação seja confirmada.

Para ler uma mensagem com um identificador especificado sem removê-la da fila, use o PeekByLookupId método . Não há nenhum contexto de transação associado a uma mensagem retornada por uma chamada para PeekByLookupId. Como PeekByLookupId não remove nenhuma mensagem da fila, não haveria nada a ser revertido se a transação fosse anulada.

A tabela a seguir mostra se esse método está disponível em vários modos de Grupo de Trabalho.

Modo de grupo de trabalho Disponível
Computador local Yes
Nome do computador local e do formato direto Yes
Computador remoto Não
Computador remoto e nome de formato direto Yes

Confira também

Aplica-se a

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

Introduzido no MSMQ 3.0. Recebe uma mensagem específica da fila, usando o contexto de transação especificado. A mensagem pode ser especificada por um identificador de pesquisa ou pela sua posição no início ou no final da fila.

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

Parâmetros

action
MessageLookupAction

Um dos valores MessageLookupAction, especificando como a mensagem é lida na fila. Especifique um dos seguintes:

MessageLookupAction.Current: recebe a mensagem especificada pela lookupId e a remove da fila.

MessageLookupAction.Next: recebe a mensagem seguinte à mensagem especificada pela lookupId e a remove da fila.

MessageLookupAction.Previous: recebe a mensagem anterior à mensagem especificada por lookupId e a remove da fila.

MessageLookupAction.First: recebe a primeira mensagem na fila e a remove da fila. O parâmetro lookupId deve ser definido como 0.

MessageLookupAction.Last: recebe a última mensagem na fila e a remove da fila. O parâmetro lookupId deve ser definido como 0.

lookupId
Int64

O LookupId da mensagem a receber, ou 0. 0 é usado para acessar a primeira ou a última mensagem na fila.

transactionType
MessageQueueTransactionType

Um dos valores de MessageQueueTransactionType, que descreve o tipo de contexto de transação associado à mensagem.

Retornos

O Message especificado pelos parâmetros action e lookupId passados.

Exceções

O MSMQ 3.0 não está instalado.

Não foi possível localizar a mensagem com o lookupId especificado.

Erro ao acessar um método do serviço de Enfileiramento de Mensagens.

O parâmetro action não é um dos membros do MessageLookupAction.

- ou -

O parâmetro transactionType não é um dos membros do MessageQueueTransactionType.

Comentários

Use esse método para ler uma mensagem com um identificador de pesquisa conhecido e removê-la da fila, usando um contexto de transação definido pelo transactionType parâmetro . Esse método gerará uma exceção imediatamente se a mensagem não estiver na fila.

A LookupId propriedade de uma mensagem é exclusiva da fila em que a mensagem reside, portanto, haverá no máximo uma mensagem na fila que corresponda ao parâmetro especificado lookupId .

Para ler uma mensagem com um identificador especificado sem removê-la da fila, use o PeekByLookupId método . Não há nenhum contexto de transação associado a uma mensagem retornada por uma chamada para PeekByLookupId. Como PeekByLookupId não remove nenhuma mensagem da fila, não haveria nada a ser revertido se a transação fosse anulada.

Especifique Automatic para o transactionType parâmetro se já houver um contexto de transação externo anexado ao thread que você deseja usar para receber a mensagem. Especifique Single se deseja receber a mensagem como uma única transação interna. Você pode especificar None se deseja receber uma mensagem de uma fila transacional fora de um contexto de transação.

Se esse método for chamado para receber uma mensagem de uma fila transacional, a mensagem recebida será retornada para a fila se a transação for anulada. A mensagem não será removida permanentemente da fila até que a transação seja confirmada.

A tabela a seguir mostra se esse método está disponível em vários modos de Grupo de Trabalho.

Modo de grupo de trabalho Disponível
Computador local Yes
Nome do computador local e do formato direto Yes
Computador remoto Não
Computador remoto e nome de formato direto Yes

Confira também

Aplica-se a