MessageQueue.PeekById Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
PeekById(String, TimeSpan) |
Consulta el mensaje cuyo identificador de mensaje coincide con el parámetro |
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
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 | Sí |
Equipo local y nombre de formato directo | Sí |
Equipo remoto | No |
Equipo remoto y nombre de formato directo | Sí |
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
- 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 | Sí |
Equipo local y nombre de formato directo | Sí |
Equipo remoto | No |
Equipo remoto y nombre de formato directo | Sí |