MessageQueue.PeekById Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
PeekById(String, TimeSpan) |
Lit le message dont l'identificateur de message correspond au paramètre |
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
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
- 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 |