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 quitarlo de esta.
Sobrecargas
PeekById(String) |
Busca el mensaje cuyo identificador de mensaje coincida con el parámetro |
PeekById(String, TimeSpan) |
Busca el mensaje cuyo identificador de mensaje coincida con el parámetro |
PeekById(String)
Busca el mensaje cuyo identificador de mensaje coincida 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
Message cuya propiedad Id coincide con el parámetro id
.
Excepciones
El parámetro id
es null
.
No existe ningún mensaje con el valor de id
especificado.
Error al obtener acceso a un método de Message Queuing.
Ejemplos
En el siguiente ejemplo de código 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 tiene 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 especificado id
. 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 Peek método devuelve el primer mensaje de la cola; PeekByCorrelationId(String) devuelve un mensaje de confirmación, informe o respuesta generado por la aplicació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)
Busca el mensaje cuyo identificador de mensaje coincida con el parámetro id
. Espera hasta que el mensaje aparezca en la cola o hasta que finalice 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
TimeSpan que indica el tiempo que hay que esperar hasta que haya un nuevo mensaje disponible para inspección.
Devoluciones
Message cuya propiedad Id coincide con el parámetro id
.
Excepciones
El parámetro id
es null
.
El valor que especifica el parámetro timeout
no es válido, quizás porque timeout
es menor que Zero o mayor que InfiniteTimeout.
En la cola no existe un mensaje con el id
especificado, ni llegó ninguno antes de que expirara el período de tiempo especificado en el parámetro timeout
.
Error al obtener acceso a un método de Message Queuing.
Ejemplos
En el siguiente ejemplo de código 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 tiene 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 especificado id
. 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 timeout
parámetro no especifica el tiempo de ejecución total para este método. En su lugar, especifica el tiempo de espera para que llegue un nuevo mensaje a la cola. Cada vez que llega un nuevo mensaje, este método examina el Id del nuevo mensaje para ver si coincide con el id
parámetro . Si no es así, este método inicia el período de tiempo de espera y espera a que llegue otro mensaje nuevo. Por lo tanto, si los nuevos mensajes continúan llegando dentro del período de tiempo de espera, es posible que este método siga ejecutándose indefinidamente, ya sea hasta que expire el período de tiempo de espera sin que lleguen mensajes nuevos o hasta que llegue un mensaje cuyo Id parámetro coincida id
.
Dos métodos adicionales permiten ver mensajes en una cola: Peek y PeekByCorrelationId(String). El Peek método devuelve el primer mensaje de la cola; PeekByCorrelationId(String) devuelve un mensaje de confirmación, informe o respuesta generado por la aplicació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í |