Comparteix a través de


MessageQueue.PeekById Método

Definición

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

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.

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

id
String

Id del mensaje que se va a buscar.

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
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)

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

id
String

Id del mensaje que se va a buscar.

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
Equipo local y nombre de formato directo
Equipo remoto No
Equipo remoto y nombre de formato directo

Consulte también

Se aplica a