MessageQueue.PeekById Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt eine Kopie der Meldung mit der angegebenen Meldungs-ID zurück, ohne die Meldung aus der Warteschlange zu entfernen.
Überlädt
PeekById(String) |
Sieht die Meldung ein, deren Meldungs-ID mit dem |
PeekById(String, TimeSpan) |
Sieht die Meldung ein, deren Meldungs-ID mit dem |
PeekById(String)
Sieht die Meldung ein, deren Meldungs-ID mit dem id
-Parameter übereinstimmt.
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
Parameter
Gibt zurück
Die Message, deren Id-Eigenschaft mit dem id
-Parameter übereinstimmt.
Ausnahmen
Der id
-Parameter ist null
.
Es ist keine Meldung mit der angegebenen id
vorhanden.
Fehler beim Zugriff auf eine Message Queuing-Methode.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung von 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);
Hinweise
Verwenden Sie PeekById(String) , um eine Nachricht mit einem bekannten Nachrichtenbezeichner zu lesen, ohne sie aus der Warteschlange zu entfernen. Der Bezeichner einer Nachricht ist im gesamten Message Queuing-Unternehmen eindeutig, sodass sich maximal eine Nachricht in der Warteschlange befindet, die dem angegebenen id
Parameter entspricht. Diese Überladung löst eine Ausnahme aus, wenn die Warteschlange die Nachricht derzeit nicht enthält.
Mit zwei zusätzlichen Methoden können Sie Nachrichten in einer Warteschlange anzeigen: Peek und PeekByCorrelationId(String). Die Peek Methode gibt die erste Nachricht in der Warteschlange zurück. PeekByCorrelationId(String) Gibt eine Bestätigungs-, Berichts- oder anwendungsgenerierte Antwortnachricht zurück, die als Ergebnis einer nachricht erstellt wurde, die an die Warteschlange gesendet wurde.
Die folgende Tabelle zeigt, ob diese Methode in verschiedenen Arbeitsgruppenmodi verfügbar ist.
Arbeitsgruppenmodus | Verfügbar |
---|---|
Lokalem Computer | Ja |
Name des lokalen Computers und des direkten Formats | Ja |
Remotecomputer | Nein |
Name des Remotecomputers und des direkten Formats | Ja |
Weitere Informationen
Gilt für:
PeekById(String, TimeSpan)
Sieht die Meldung ein, deren Meldungs-ID mit dem id
-Parameter übereinstimmt. Wartet, bis die Meldung in der Warteschlange eingeht oder ein Timeout auftritt.
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
Parameter
- timeout
- TimeSpan
Eine TimeSpan, die die Zeitspanne angibt, für die auf den Eingang einer neuen Meldung zur Überprüfung gewartet werden soll.
Gibt zurück
Die Message, deren Id-Eigenschaft mit dem id
-Parameter übereinstimmt.
Ausnahmen
Der id
-Parameter ist null
.
Der für den timeout
-Parameter angegebene Wert ist ungültig. Möglicherweise ist der timeout
kleiner als Zero oder größer als der InfiniteTimeout.
Eine Meldung mit der angegebenen id
ist nicht in der Warteschlange vorhanden und nicht vor Ablauf der im timeout
-Parameter angegebenen Zeitspanne eingegangen.
Fehler beim Zugriff auf eine Message Queuing-Methode.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung von 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));
Hinweise
Verwenden Sie PeekById(String) , um eine Nachricht mit einem bekannten Nachrichtenbezeichner zu lesen, ohne sie aus der Warteschlange zu entfernen. Der Bezeichner einer Nachricht ist im gesamten Message Queuing-Unternehmen eindeutig, sodass sich maximal eine Nachricht in der Warteschlange befindet, die dem angegebenen id
Parameter entspricht. Diese Überladung löst eine Ausnahme aus, wenn die Warteschlange die Nachricht derzeit nicht enthält und eine neue Nachricht nicht eingeht, bevor das Timeout auftritt.
Der timeout
Parameter gibt nicht die Gesamtlaufzeit für diese Methode an. Es gibt vielmehr die Zeit an, bis eine neue Nachricht in der Warteschlange eintrifft. Jedes Mal, wenn eine neue Nachricht eingeht, untersucht diese Methode die Id der neuen Nachricht, um festzustellen, ob sie mit dem id
Parameter übereinstimmt. Andernfalls beginnt diese Methode mit dem Timeout und wartet, bis eine weitere neue Nachricht eingeht. Wenn also neue Nachrichten weiterhin innerhalb des Timeoutzeitraums eintreffen, ist es möglich, dass diese Methode unbegrenzt weiter ausgeführt wird, bis der Timeoutzeitraum abläuft, ohne dass neue Nachrichten eintreffen, oder bis eine Nachricht eingeht, deren Idid
Parameter entspricht.
Mit zwei zusätzlichen Methoden können Sie Nachrichten in einer Warteschlange anzeigen: Peek und PeekByCorrelationId(String). Die Peek Methode gibt die erste Nachricht in der Warteschlange zurück. PeekByCorrelationId(String) Gibt eine Bestätigungs-, Berichts- oder anwendungsgenerierte Antwortnachricht zurück, die als Ergebnis einer nachricht erstellt wurde, die an die Warteschlange gesendet wurde.
Die folgende Tabelle zeigt, ob diese Methode in verschiedenen Arbeitsgruppenmodi verfügbar ist.
Arbeitsgruppenmodus | Verfügbar |
---|---|
Lokalem Computer | Ja |
Name des lokalen Computers und des direkten Formats | Ja |
Remotecomputer | Nein |
Name des Remotecomputers und des direkten Formats | Ja |