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 zu lesen, die über einen bekannten Nachrichtenbezeichner verfügt, ohne aus der Warteschlange zu entfernen. Der Bezeichner einer Nachricht ist im gesamten Message Queuing-Unternehmen eindeutig, sodass in der Warteschlange höchstens eine Nachricht vorhanden ist, 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 einsehen: Peek und PeekByCorrelationId(String). Die Peek -Methode gibt die erste Nachricht in der Warteschlange zurück. PeekByCorrelationId(String) Gibt eine Bestätigung, einen Bericht oder eine von der Anwendung generierte Antwortnachricht zurück, die als Ergebnis einer an die Warteschlange gesendeten Nachricht erstellt 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 direktes Format 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 zu lesen, die über einen bekannten Nachrichtenbezeichner verfügt, ohne aus der Warteschlange zu entfernen. Der Bezeichner einer Nachricht ist im gesamten Message Queuing-Unternehmen eindeutig, sodass in der Warteschlange höchstens eine Nachricht vorhanden ist, 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 erst eingeht, wenn das Timeout auftritt.

Der timeout Parameter gibt nicht die Gesamtlaufzeit für diese Methode an. Stattdessen wird die Zeit angegeben, in der auf das Eintreffen einer neuen Nachricht in der Warteschlange gewartet wird. Jedes Mal, wenn eine neue Nachricht eingeht, untersucht diese Methode die Id der neuen Nachricht, um festzustellen, ob sie mit dem id Parameter übereinstimmt. Wenn dies nicht der Fall ist, beginnt diese Methode mit dem Timeoutzeitraum und wartet darauf, dass eine weitere neue Nachricht eingeht. Wenn also neue Nachrichten weiterhin innerhalb des Timeoutzeitraums eingehen, kann diese Methode unbegrenzt weiter ausgeführt werden, entweder bis der Timeoutzeitraum abläuft, ohne dass neue Nachrichten eingehen, oder bis eine Nachricht eingeht, deren Idid Parameter entspricht.

Mit zwei zusätzlichen Methoden können Sie Nachrichten in einer Warteschlange einsehen: Peek und PeekByCorrelationId(String). Die Peek -Methode gibt die erste Nachricht in der Warteschlange zurück. PeekByCorrelationId(String) Gibt eine Bestätigung, einen Bericht oder eine von der Anwendung generierte Antwortnachricht zurück, die als Ergebnis einer an die Warteschlange gesendeten Nachricht erstellt 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 direktes Format Ja
Remotecomputer Nein
Name des Remotecomputers und des direkten Formats Ja

Weitere Informationen

Gilt für: