MessageQueue.PeekById Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce una copia del messaggio con l'identificatore di messaggio specificato senza rimuovere il messaggio dalla coda.
Overload
| Nome | Descrizione |
|---|---|
| PeekById(String) |
Visualizza il messaggio il cui identificatore del messaggio corrisponde al |
| PeekById(String, TimeSpan) |
Visualizza il messaggio il cui identificatore del messaggio corrisponde al |
PeekById(String)
Visualizza il messaggio il cui identificatore del messaggio corrisponde al id parametro .
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
Valori restituiti
Oggetto Message la cui Id proprietà corrisponde al id parametro .
Eccezioni
Il id parametro è null.
Non esiste alcun messaggio con l'oggetto specificato id .
Si è verificato un errore durante l'accesso a un metodo di accodamento messaggi.
Esempio
Nell'esempio di codice seguente viene illustrato 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 di Accodamento messaggi, quindi nella coda sarà presente al massimo un messaggio che corrisponde 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, un report o un messaggio di risposta generato dall'applicazione creato come risultato di un messaggio inviato alla coda.
Nella tabella seguente viene illustrato se questo metodo è disponibile in varie modalità gruppo di lavoro.
| Modalità gruppo di lavoro | Disponibile |
|---|---|
| Computer locale | Yes |
| Computer locale e nome del formato diretto | Yes |
| Computer remoto | No |
| Computer remoto e nome del formato diretto | Yes |
Vedi anche
Si applica a
PeekById(String, TimeSpan)
Visualizza il messaggio il cui identificatore del messaggio corrisponde al id parametro . Attende che il messaggio venga visualizzato nella coda o si verifichi un 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
- timeout
- TimeSpan
Oggetto TimeSpan che indica il tempo di attesa fino a quando non è disponibile un nuovo messaggio per l'ispezione.
Valori restituiti
Oggetto Message la cui Id proprietà corrisponde al id parametro .
Eccezioni
Il id parametro è null.
Il valore specificato per il timeout parametro non è valido, possibilmente timeout è minore Zero o maggiore di InfiniteTimeout.
Il messaggio con l'oggetto specificato id non esiste nella coda e non è arrivato prima del timeout periodo specificato dal parametro scaduto.
Si è verificato un errore durante l'accesso a un metodo di accodamento messaggi.
Esempio
Nell'esempio di codice seguente viene illustrato 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 di Accodamento messaggi, quindi nella coda sarà presente al massimo un messaggio che corrisponde 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 del 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 essere in esecuzione a tempo indeterminato, fino alla scadenza del periodo di timeout senza nuovi messaggi in arrivo o fino all'arrivo di un messaggio 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, un report o un messaggio di risposta generato dall'applicazione creato come risultato di un messaggio inviato alla coda.
Nella tabella seguente viene illustrato se questo metodo è disponibile in varie modalità gruppo di lavoro.
| Modalità gruppo di lavoro | Disponibile |
|---|---|
| Computer locale | Yes |
| Computer locale e nome del formato diretto | Yes |
| Computer remoto | No |
| Computer remoto e nome del formato diretto | Yes |