Freigeben über


MessageQueue.PeekById Methode

Definition

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 id-Parameter übereinstimmt.

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.

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

id
String

Die Id der einzusehenden Meldung.

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

id
String

Die Id der einzusehenden Meldung.

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

Weitere Informationen

Gilt für: