Compartir vía


MessageQueue.PeekById Método

Definición

Devuelve una copia del mensaje que tiene el identificador de mensaje especificado sin quitar el mensaje de la cola.

Sobrecargas

PeekById(String)

Consulta el mensaje cuyo identificador de mensaje coincide con el parámetro id.

PeekById(String, TimeSpan)

Consulta el mensaje cuyo identificador de mensaje coincide con el parámetro id. Espera hasta que aparezca el mensaje en la cola o se agote el tiempo de espera.

PeekById(String)

Consulta el mensaje cuyo identificador de mensaje coincide con el 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

El Id del mensaje que se va a ver.

Devoluciones

El Message cuya propiedad Id coincide con el parámetro id.

Excepciones

El parámetro id es null.

No existe ningún mensaje con el id especificado.

Error al acceder a un método Message Queuing.

Ejemplos

En el ejemplo de código siguiente se muestra el 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);

Comentarios

Use PeekById(String) para leer, sin quitar de la cola, un mensaje que tenga un identificador de mensaje conocido. El identificador de un mensaje es único en la empresa Message Queuing, por lo que habrá como máximo un mensaje en la cola que coincida con el parámetro id especificado. Esta sobrecarga produce una excepción si la cola no contiene actualmente el mensaje.

Dos métodos adicionales permiten ver mensajes en una cola: Peek y PeekByCorrelationId(String). El método Peek devuelve el primer mensaje de la cola; PeekByCorrelationId(String) devuelve un mensaje de respuesta generado por la aplicación, informe o confirmación que se creó como resultado de un mensaje enviado a la cola.

En la tabla siguiente se muestra si este método está disponible en varios modos de grupo de trabajo.

Modo de grupo de trabajo Disponible
Equipo local
Equipo local y nombre de formato directo
Equipo remoto No
Equipo remoto y nombre de formato directo

Consulte también

Se aplica a

PeekById(String, TimeSpan)

Consulta el mensaje cuyo identificador de mensaje coincide con el parámetro id. Espera hasta que aparezca el mensaje en la cola o se agote el tiempo de espera.

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

El Id del mensaje que se va a ver.

timeout
TimeSpan

Un TimeSpan que indica el tiempo de espera hasta que haya un nuevo mensaje disponible para su inspección.

Devoluciones

El Message cuya propiedad Id coincide con el parámetro id.

Excepciones

El parámetro id es null.

El valor especificado para el parámetro timeout no es válido, posiblemente timeout sea menor que Zero o mayor que InfiniteTimeout.

El mensaje con el id especificado no existe en la cola y no llegó antes del período especificado por el parámetro timeout expirado.

Error al acceder a un método Message Queuing.

Ejemplos

En el ejemplo de código siguiente se muestra el 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));

Comentarios

Use PeekById(String) para leer, sin quitar de la cola, un mensaje que tenga un identificador de mensaje conocido. El identificador de un mensaje es único en la empresa Message Queuing, por lo que habrá como máximo un mensaje en la cola que coincida con el parámetro id especificado. Esta sobrecarga produce una excepción si la cola no contiene actualmente el mensaje y un mensaje nuevo no llega antes de que se produzca el tiempo de espera.

El parámetro timeout no especifica el tiempo de ejecución total para este método. En su lugar, especifica el tiempo para esperar a que llegue un nuevo mensaje a la cola. Cada vez que llega un nuevo mensaje, este método examina la Id del nuevo mensaje para ver si coincide con el parámetro id. Si no es así, este método inicia el período de tiempo de espera y espera a que llegue otro nuevo mensaje. Por lo tanto, si los nuevos mensajes siguen llegando dentro del período de tiempo de espera, es posible que este método continúe ejecutándose indefinidamente, ya sea hasta que expire el período de tiempo de espera sin que llegue ningún mensaje nuevo o hasta que llegue un mensaje cuya Id coincida con el parámetro id.

Dos métodos adicionales permiten ver mensajes en una cola: Peek y PeekByCorrelationId(String). El método Peek devuelve el primer mensaje de la cola; PeekByCorrelationId(String) devuelve un mensaje de respuesta generado por la aplicación, informe o confirmación que se creó como resultado de un mensaje enviado a la cola.

En la tabla siguiente se muestra si este método está disponible en varios modos de grupo de trabajo.

Modo de grupo de trabajo Disponible
Equipo local
Equipo local y nombre de formato directo
Equipo remoto No
Equipo remoto y nombre de formato directo

Consulte también

Se aplica a