Compartilhar via


MessageQueue.PeekById Método

Definição

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 id.

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.

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

id
String

O Id da mensagem a espiar.

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

id
String

O Id da mensagem a espiar.

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

Confira também

Aplica-se a