MessageQueue.PeekById Méthode

Définition

Retourne une copie du message portant l'identificateur de message spécifié, sans supprimer le message de la file d'attente.

Surcharges

PeekById(String)

Lit le message dont l'identificateur de message correspond au paramètre id.

PeekById(String, TimeSpan)

Lit le message dont l'identificateur de message correspond au paramètre id. Attend que le message s'affiche dans la file d'attente ou que le délai expire.

PeekById(String)

Lit le message dont l'identificateur de message correspond au paramètre 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

Paramètres

id
String

Propriété Id du message à lire.

Retours

Message dont la propriété Id correspond au paramètre id.

Exceptions

Le paramètre id a la valeur null.

Il n'existe aucun message avec le paramètre id spécifié.

Une erreur s'est produite lors de l'accès à une méthode Message Queuing.

Exemples

L'exemple de code suivant montre l'utilisation 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);

Remarques

Utilisez PeekById(String) pour lire, sans supprimer de la file d’attente, un message qui a un identificateur de message connu. L’identificateur d’un message étant unique dans l’entreprise Message Queuing, il y aura au plus un message dans la file d’attente qui correspond au paramètre donné id . Cette surcharge lève une exception si la file d’attente ne contient pas actuellement le message.

Deux méthodes supplémentaires vous permettent d’aperçu des messages dans une file d’attente : Peek et PeekByCorrelationId(String). La Peek méthode retourne le premier message de la file d’attente ; PeekByCorrelationId(String) retourne un accusé de réception, un rapport ou un message de réponse généré par l’application qui a été créé à la suite d’un message envoyé à la file d’attente.

Le tableau suivant indique si cette méthode est disponible dans différents modes de groupe de travail.

Mode groupe de travail Disponible
Ordinateur local Oui
Ordinateur local et nom de format direct Oui
Ordinateur distant Non
Ordinateur distant et nom de format direct Oui

Voir aussi

S’applique à

PeekById(String, TimeSpan)

Lit le message dont l'identificateur de message correspond au paramètre id. Attend que le message s'affiche dans la file d'attente ou que le délai expire.

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

Paramètres

id
String

Propriété Id du message à lire.

timeout
TimeSpan

TimeSpan qui indique la durée d'attente avant qu'un nouveau message ne soit accessible pour consultation.

Retours

Message dont la propriété Id correspond au paramètre id.

Exceptions

Le paramètre id a la valeur null.

La valeur spécifiée pour le paramètre timeout n'est pas valide. Il se peut que timeout soit inférieur à Zero ou supérieur à InfiniteTimeout.

Le message avec le paramètre id spécifié n'existe pas dans la file d'attente et n'est pas arrivé avant l'expiration du délai d'attente spécifié par le paramètre timeout.

Une erreur s'est produite lors de l'accès à une méthode Message Queuing.

Exemples

L'exemple de code suivant montre l'utilisation 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));

Remarques

Utilisez PeekById(String) pour lire, sans supprimer de la file d’attente, un message qui a un identificateur de message connu. L’identificateur d’un message étant unique dans l’entreprise Message Queuing, il y aura au plus un message dans la file d’attente qui correspond au paramètre donné id . Cette surcharge lève une exception si la file d’attente ne contient pas actuellement le message et qu’un nouveau message n’arrive pas avant que le délai d’attente ne se produise.

Le timeout paramètre ne spécifie pas la durée totale d’exécution de cette méthode. Au lieu de cela, il spécifie le délai d’attente pour qu’un nouveau message arrive dans la file d’attente. Chaque fois qu’un nouveau message arrive, cette méthode examine le Id du nouveau message pour voir s’il correspond au id paramètre . Si ce n’est pas le cas, cette méthode démarre le délai d’attente et attend qu’un autre nouveau message arrive. Par conséquent, si de nouveaux messages continuent d’arriver dans le délai imparti, il est possible que cette méthode continue à s’exécuter indéfiniment, soit jusqu’à ce que le délai d’expiration expire sans qu’aucun nouveau message n’arrive, soit jusqu’à ce qu’un message dont Id le paramètre corresponde à l’arrivée id .

Deux méthodes supplémentaires vous permettent d’aperçu des messages dans une file d’attente : Peek et PeekByCorrelationId(String). La Peek méthode retourne le premier message de la file d’attente ; PeekByCorrelationId(String) retourne un accusé de réception, un rapport ou un message de réponse généré par l’application qui a été créé à la suite d’un message envoyé à la file d’attente.

Le tableau suivant indique si cette méthode est disponible dans différents modes de groupe de travail.

Mode groupe de travail Disponible
Ordinateur local Oui
Ordinateur local et nom de format direct Oui
Ordinateur distant Non
Ordinateur distant et nom de format direct Oui

Voir aussi

S’applique à