Condividi tramite


MessageQueue.PeekById Metodo

Definizione

Restituisce una copia del messaggio con l'identificatore di messaggio specificato, senza rimuovere il messaggio dalla coda.

Overload

PeekById(String)

Legge il messaggio il cui identificatore corrisponde al parametro id.

PeekById(String, TimeSpan)

Legge il messaggio il cui identificatore corrisponde al parametro id. Attende che il messaggio venga visualizzato nella coda o che si verifichi il timeout.

PeekById(String)

Legge il messaggio il cui identificatore corrisponde al parametro 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

Parametri

id
String

Oggetto Id del messaggio da leggere.

Restituisce

Message la cui proprietà Id corrisponde al parametro id.

Eccezioni

Il valore del parametro id è null.

Non è disponibile alcun messaggio con il parametro id specificato.

Si è verificato un errore durante l'accesso a un metodo di Accodamento messaggi.

Esempio

L'esempio di codice seguente illustra l'uso di 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);

Commenti

Usare PeekById(String) per leggere, senza rimuovere dalla coda, un messaggio con un identificatore di messaggio noto. L'identificatore di un messaggio è univoco nell'organizzazione Accodamento messaggi, quindi verrà visualizzato al massimo un messaggio nella coda corrispondente al parametro specificato id . Questo overload genera un'eccezione se la coda non contiene attualmente il messaggio.

Due metodi aggiuntivi consentono di visualizzare i messaggi in una coda: Peek e PeekByCorrelationId(String). Il Peek metodo restituisce il primo messaggio nella coda. PeekByCorrelationId(String) Restituisce un messaggio di risposta restituito, report o generato dall'applicazione creato come risultato di un messaggio inviato alla coda.

La tabella seguente mostra se questo metodo è disponibile in varie modalità gruppo di lavoro.

Modalità gruppo di lavoro Disponibile
Computer locale
Nome del computer locale e del formato diretto
Computer remoto No
Nome del formato diretto e del computer remoto

Vedi anche

Si applica a

PeekById(String, TimeSpan)

Legge il messaggio il cui identificatore corrisponde al parametro id. Attende che il messaggio venga visualizzato nella coda o che si verifichi il timeout.

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

Parametri

id
String

Oggetto Id del messaggio da leggere.

timeout
TimeSpan

Oggetto TimeSpan che indica l'intervallo di attesa prima che un nuovo messaggio venga reso disponibile per il controllo.

Restituisce

Message la cui proprietà Id corrisponde al parametro id.

Eccezioni

Il valore del parametro id è null.

Il valore specificato per il parametro timeout non è valido, probabilmente perché timeout è minore di Zero o maggiore di InfiniteTimeout.

Il messaggio con l'oggetto id specificato non è presente nella coda e non è arrivato prima della scadenza del periodo di tempo specificato dal parametro timeout.

Si è verificato un errore durante l'accesso a un metodo di Accodamento messaggi.

Esempio

L'esempio di codice seguente illustra l'uso di 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));

Commenti

Usare PeekById(String) per leggere, senza rimuovere dalla coda, un messaggio con un identificatore di messaggio noto. L'identificatore di un messaggio è univoco nell'organizzazione Accodamento messaggi, quindi verrà visualizzato al massimo un messaggio nella coda corrispondente al parametro specificato id . Questo overload genera un'eccezione se la coda non contiene attualmente il messaggio e un nuovo messaggio non arriva prima che si verifichi il timeout.

Il timeout parametro non specifica il tempo di esecuzione totale per questo metodo. Specifica invece il tempo di attesa per l'arrivo di un nuovo messaggio nella coda. Ogni volta che arriva un nuovo messaggio, questo metodo esamina il Id nuovo messaggio per verificare se corrisponde al id parametro . In caso contrario, questo metodo avvia il periodo di timeout e attende l'arrivo di un altro nuovo messaggio. Pertanto, se i nuovi messaggi continuano ad arrivare entro il periodo di timeout, è possibile che questo metodo continui a eseguire in modo indefinito, fino alla scadenza del periodo di timeout senza alcun nuovo messaggio in arrivo o fino a quando un messaggio arriva il cui Id corrisponde al id parametro.

Due metodi aggiuntivi consentono di visualizzare i messaggi in una coda: Peek e PeekByCorrelationId(String). Il Peek metodo restituisce il primo messaggio nella coda. PeekByCorrelationId(String) Restituisce un messaggio di risposta restituito, report o generato dall'applicazione creato come risultato di un messaggio inviato alla coda.

La tabella seguente mostra se questo metodo è disponibile in varie modalità gruppo di lavoro.

Modalità gruppo di lavoro Disponibile
Computer locale
Nome del computer locale e del formato diretto
Computer remoto No
Nome del formato diretto e del computer remoto

Vedi anche

Si applica a