MessageQueue.PeekById Metoda

Definice

Vrátí kopii zprávy, která má zadaný identifikátor zprávy bez odebrání zprávy z fronty.

Přetížení

Name Description
PeekById(String)

Zobrazí zprávu, jejíž identifikátor zprávy odpovídá parametru id .

PeekById(String, TimeSpan)

Zobrazí zprávu, jejíž identifikátor zprávy odpovídá parametru id . Počká, dokud se zpráva nezobrazí ve frontě nebo dojde k vypršení časového limitu.

PeekById(String)

Zobrazí zprávu, jejíž identifikátor zprávy odpovídá parametru 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

Parametry

id
String

Zpráva Id , která se má zobrazit.

Návraty

Jehož Message vlastnost odpovídá parametruId.id

Výjimky

Parametr id je null.

Žádná zpráva se zadanou id zprávou neexistuje.

Při přístupu k metodě řízení front zpráv došlo k chybě.

Příklady

Následující příklad kódu ukazuje použití 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);

Poznámky

Umožňuje PeekById(String) číst zprávu se známým identifikátorem zprávy bez odebrání z fronty. Identifikátor zprávy je jedinečný v rámci organizace služby Řízení front zpráv, takže ve frontě bude maximálně jedna zpráva, která odpovídá danému id parametru. Toto přetížení vyvolá výjimku, pokud fronta aktuálně neobsahuje zprávu.

Dvě další metody umožňují náhled zpráv ve frontě: Peek a PeekByCorrelationId(String). Metoda Peek vrátí první zprávu ve frontě; PeekByCorrelationId(String) vrátí potvrzení, sestavu nebo zprávu odpovědi vygenerovanou aplikací, která byla vytvořena v důsledku zprávy odeslané do fronty.

Následující tabulka ukazuje, zda je tato metoda k dispozici v různých režimech pracovní skupiny.

Režim pracovní skupiny Available
Místní počítač Yes
Název místního počítače a přímého formátu Yes
Vzdálený počítač No
Název vzdáleného počítače a přímého formátu Yes

Viz také

Platí pro

PeekById(String, TimeSpan)

Zobrazí zprávu, jejíž identifikátor zprávy odpovídá parametru id . Počká, dokud se zpráva nezobrazí ve frontě nebo dojde k vypršení časového limitu.

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

Parametry

id
String

Zpráva Id , která se má zobrazit.

timeout
TimeSpan

A TimeSpan , který označuje dobu čekání, až bude k dispozici nová zpráva pro kontrolu.

Návraty

Jehož Message vlastnost odpovídá parametruId.id

Výjimky

Parametr id je null.

Hodnota zadaná pro timeout parametr není platná, pravděpodobně timeout je menší nebo Zero větší než InfiniteTimeout.

Zpráva se zadanou id zprávou ve frontě neexistuje a nebyla doručena před obdobím určeným parametrem timeout , jehož platnost vypršela.

Při přístupu k metodě řízení front zpráv došlo k chybě.

Příklady

Následující příklad kódu ukazuje použití 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));

Poznámky

Umožňuje PeekById(String) číst zprávu se známým identifikátorem zprávy bez odebrání z fronty. Identifikátor zprávy je jedinečný v rámci organizace služby Řízení front zpráv, takže ve frontě bude maximálně jedna zpráva, která odpovídá danému id parametru. Toto přetížení vyvolá výjimku, pokud fronta aktuálně neobsahuje zprávu a nová zpráva nedorazí před vypršením časového limitu.

Parametr timeout nezadá celkovou dobu běhu pro tuto metodu. Místo toho určuje dobu čekání na přijetí nové zprávy do fronty. Pokaždé, když přijde nová zpráva, tato metoda prozkoumá Id novou zprávu a zjistí, jestli odpovídá parametru id . Pokud ne, tato metoda spustí časové období vypršení časového limitu a čeká na doručení další nové zprávy. Proto pokud nové zprávy budou docházet v časovém limitu, je možné, aby tato metoda pokračovala po neomezenou dobu, a to buď do vypršení časového limitu, bez příchodu nových zpráv, nebo až do přijetí zprávy, jejíž Id odpovídá parametru id .

Dvě další metody umožňují náhled zpráv ve frontě: Peek a PeekByCorrelationId(String). Metoda Peek vrátí první zprávu ve frontě; PeekByCorrelationId(String) vrátí potvrzení, sestavu nebo zprávu odpovědi vygenerovanou aplikací, která byla vytvořena v důsledku zprávy odeslané do fronty.

Následující tabulka ukazuje, zda je tato metoda k dispozici v různých režimech pracovní skupiny.

Režim pracovní skupiny Available
Místní počítač Yes
Název místního počítače a přímého formátu Yes
Vzdálený počítač No
Název vzdáleného počítače a přímého formátu Yes

Viz také

Platí pro