MessageQueue.PeekById 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.
Retorna uma cópia da mensagem que tem o identificador de mensagem especificado sem remover a mensagem da fila.
Sobrecargas
PeekById(String) |
Espia a mensagem cujo identificador de mensagem corresponde ao parâmetro |
PeekById(String, TimeSpan) |
Espia a mensagem cujo identificador de mensagem corresponde ao parâmetro |
PeekById(String)
Espia a mensagem cujo identificador de mensagem corresponde ao parâmetro id
.
public:
System::Messaging::Message ^ PeekById(System::String ^ id);
public System.Messaging.Message PeekById (string id);
member this.PeekById : string -> System.Messaging.Message
Public Function PeekById (id As String) As Message
Parâmetros
Retornos
O Message cuja propriedade Id corresponde ao parâmetro id
.
Exceções
O parâmetro id
é null
.
Não existe nenhuma mensagem com id
especificado.
Erro ao acessar um método do serviço de Enfileiramento de Mensagens.
Exemplos
O exemplo de código a seguir demonstra o uso de PeekById(String).
// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");
// Create a new message.
Message^ msg = gcnew Message("Example Message Body");
// Send the message.
queue->Send(msg, "Example Message Label");
// Get the message's Id property value.
String^ id = msg->Id;
// Simulate doing other work so the message has time to arrive.
System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0));
// Peek at the message.
msg = queue->PeekById(id);
queue->Close();
// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");
// Create a new message.
Message msg = new Message("Example Message Body");
// Send the message.
queue.Send(msg, "Example Message Label");
// Get the message's Id property value.
string id = msg.Id;
// Simulate doing other work so the message has time to arrive.
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(10.0));
// Peek at the message.
msg = queue.PeekById(id);
Comentários
Use PeekById(String) para ler, sem remover da fila, uma mensagem que tenha um identificador de mensagem conhecido. O identificador de uma mensagem é exclusivo na empresa de Enfileiramento de Mensagens, portanto, haverá no máximo uma mensagem na fila que corresponda ao parâmetro especificado id
. Essa sobrecarga gerará uma exceção se a fila não contiver a mensagem no momento.
Dois métodos adicionais permitem que você espie mensagens em uma fila: Peek e PeekByCorrelationId(String). O Peek método retorna a primeira mensagem na fila; PeekByCorrelationId(String) retorna uma mensagem de confirmação, relatório ou resposta gerada pelo aplicativo que foi criada como resultado de uma mensagem enviada para a fila.
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
PeekById(String, TimeSpan)
Espia a mensagem cujo identificador de mensagem corresponde ao parâmetro id
. Aguarda até que a mensagem seja exibida na fila ou um tempo limite ocorra.
public:
System::Messaging::Message ^ PeekById(System::String ^ id, TimeSpan timeout);
public System.Messaging.Message PeekById (string id, TimeSpan timeout);
member this.PeekById : string * TimeSpan -> System.Messaging.Message
Public Function PeekById (id As String, timeout As TimeSpan) As Message
Parâmetros
- timeout
- TimeSpan
Um TimeSpan que indica o tempo de espera até que uma nova mensagem esteja disponível para inspeção.
Retornos
O Message cuja propriedade Id corresponde ao parâmetro id
.
Exceções
O parâmetro id
é null
.
O valor especificado para o parâmetro timeout
não é válido, possivelmente timeout
é menor que Zero ou maior que InfiniteTimeout.
A mensagem com id
especificado não existe na fila e não chegou antes de o período especificado pelo parâmetro timeout
expirar.
Erro ao acessar um método do serviço de Enfileiramento de Mensagens.
Exemplos
O exemplo de código a seguir demonstra o uso de PeekById(String, TimeSpan).
// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");
// Create a new message.
Message^ msg = gcnew Message("Example Message Body");
// Send the message.
queue->Send(msg, "Example Message Label");
// Get the message's Id property value.
String^ id = msg->Id;
// Peek at the message.
msg = queue->PeekById(id, TimeSpan::FromSeconds(10.0));
queue->Close();
// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");
// Create a new message.
Message msg = new Message("Example Message Body");
// Send the message.
queue.Send(msg, "Example Message Label");
// Get the message's Id property value.
string id = msg.Id;
// Peek at the message.
msg = queue.PeekById(id, TimeSpan.FromSeconds(10.0));
Comentários
Use PeekById(String) para ler, sem remover da fila, uma mensagem que tenha um identificador de mensagem conhecido. O identificador de uma mensagem é exclusivo na empresa de Enfileiramento de Mensagens, portanto, haverá no máximo uma mensagem na fila que corresponda ao parâmetro especificado id
. Essa sobrecarga gerará uma exceção se a fila não contiver a mensagem no momento e uma nova mensagem não chegar antes do tempo limite ocorrer.
O timeout
parâmetro não especifica o tempo total de execução para esse método. Em vez disso, ele especifica o tempo de espera para que uma nova mensagem chegue à fila. Sempre que uma nova mensagem chega, esse método examina o Id da nova mensagem para ver se ele corresponde ao id
parâmetro . Caso contrário, esse método inicia o período de tempo limite e aguarda a chegada de outra nova mensagem. Portanto, se novas mensagens continuarem a chegar dentro do período de tempo limite, é possível que esse método continue em execução indefinidamente, seja até que o período de tempo limite expire sem que novas mensagens cheguem ou até que uma mensagem chegue cujo Id parâmetro corresponda id
.
Dois métodos adicionais permitem que você espie mensagens em uma fila: Peek e PeekByCorrelationId(String). O Peek método retorna a primeira mensagem na fila; PeekByCorrelationId(String) retorna uma mensagem de confirmação, relatório ou resposta gerada pelo aplicativo que foi criada como resultado de uma mensagem enviada para a fila.
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 |