MessageQueue.ReceiveByLookupId Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.
- transaction
- MessageQueueTransaction
O objeto MessageQueueTransaction.
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 |