MessageQueue.ReceiveByLookupId Metodo

Definizione

Introdotto in MSMQ 3.0. Riceve un messaggio specifico della coda. Il messaggio può essere specificato da un identificatore di ricerca o in base alla relativa posizione all'inizio o alla fine della coda.

Overload

ReceiveByLookupId(Int64)

Introdotto in MSMQ 3.0. Riceve il messaggio che corrisponde all'identificatore di ricerca specificato da una coda non transazionale.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

Introdotto in MSMQ 3.0. Riceve un messaggio specifico da una coda transazionale. Il messaggio può essere specificato da un identificatore di ricerca o in base alla relativa posizione all'inizio o alla fine della coda.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

Introdotto in MSMQ 3.0. Riceve un messaggio specifico della coda, utilizzando il contesto di transazione specificato. Il messaggio può essere specificato da un identificatore di ricerca o in base alla relativa posizione all'inizio o alla fine della coda.

ReceiveByLookupId(Int64)

Introdotto in MSMQ 3.0. Riceve il messaggio che corrisponde all'identificatore di ricerca specificato da una coda non transazionale.

public:
 System::Messaging::Message ^ ReceiveByLookupId(long lookupId);
public System.Messaging.Message ReceiveByLookupId (long lookupId);
member this.ReceiveByLookupId : int64 -> System.Messaging.Message
Public Function ReceiveByLookupId (lookupId As Long) As Message

Parametri

lookupId
Int64

Oggetto LookupId del messaggio da ricevere.

Restituisce

Message

Oggetto Message la cui proprietà LookupId corrisponde al parametro lookupId passato.

Eccezioni

MSMQ 3.0 non è installato.

Impossibile trovare il messaggio con il parametro lookupId specificato.

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

Commenti

Usare questo metodo per leggere un messaggio con un identificatore di ricerca noto e rimuoverlo dalla coda. Questo metodo genera immediatamente un'eccezione se il messaggio non si trova nella coda.

La LookupId proprietà di un messaggio è univoca per la coda in cui si trova il messaggio, pertanto nella coda sarà presente al massimo un messaggio corrispondente al parametro specificato lookupId .

Per leggere un messaggio con un identificatore di ricerca specificato senza rimuoverlo dalla coda, usare il PeekByLookupId metodo .

Nella tabella seguente viene illustrato 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

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

Introdotto in MSMQ 3.0. Riceve un messaggio specifico da una coda transazionale. Il messaggio può essere specificato da un identificatore di ricerca o in base alla relativa posizione all'inizio o alla fine della coda.

public:
 System::Messaging::Message ^ ReceiveByLookupId(System::Messaging::MessageLookupAction action, long lookupId, System::Messaging::MessageQueueTransaction ^ transaction);
public System.Messaging.Message ReceiveByLookupId (System.Messaging.MessageLookupAction action, long lookupId, System.Messaging.MessageQueueTransaction transaction);
member this.ReceiveByLookupId : System.Messaging.MessageLookupAction * int64 * System.Messaging.MessageQueueTransaction -> System.Messaging.Message
Public Function ReceiveByLookupId (action As MessageLookupAction, lookupId As Long, transaction As MessageQueueTransaction) As Message

Parametri

action
MessageLookupAction

Uno dei valori di MessageLookupAction, che specifica come deve essere letto il messaggio nella coda. Specificare uno dei valori seguenti: MessageLookupAction.Current: riceve il messaggio specificato da lookupId e lo rimuove dalla coda.

MessageLookupAction.Next: riceve il messaggio che segue il messaggio specificato da lookupId e lo rimuove dalla coda.

MessageLookupAction.Previous: riceve il messaggio che precede il messaggio specificato da lookupId e lo rimuove dalla coda.

MessageLookupAction.First: riceve il primo messaggio della coda e lo rimuove da quest'ultima. Il parametro lookupId deve essere impostato su 0.

MessageLookupAction.Last: riceve l'ultimo messaggio della coda e lo rimuove da quest'ultima. Il parametro lookupId deve essere impostato su 0.

lookupId
Int64

Oggetto LookupId del messaggio da ricevere oppure 0. 0 viene utilizzato quando si accede al primo o all'ultimo messaggio della coda.

Restituisce

Message

Oggetto Message specificato dai parametri lookupId e action passati.

Eccezioni

MSMQ 3.0 non è installato.

Impossibile trovare il messaggio con il parametro lookupId specificato.

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

-oppure-

La coda non è transazionale.

Il parametro action non è uno dei membri di MessageLookupAction.

Commenti

Usare questo metodo per leggere un messaggio con un identificatore di ricerca noto e rimuoverlo dalla coda, usando un contesto di transazione definito dal transaction parametro . Questo metodo genera un'eccezione immediatamente se il messaggio non è nella coda.

La LookupId proprietà di un messaggio è univoca alla coda in cui risiede il messaggio, quindi sarà presente al massimo un messaggio nella coda che corrisponde al parametro specificato lookupId .

Poiché questo metodo viene chiamato in una coda transazionale, il messaggio ricevuto verrà restituito alla coda se la transazione viene interrotta. Il messaggio non viene rimosso definitivamente dalla coda fino al commit della transazione.

Per leggere un messaggio con un identificatore specificato senza rimuoverlo dalla coda, usare il PeekByLookupId metodo . Non esiste alcun contesto di transazione associato a un messaggio restituito da una chiamata a PeekByLookupId. Poiché PeekByLookupId non rimuove alcun messaggio dalla coda, non sarà necessario eseguire il rollback se la transazione è stata interrotta.

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

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

Introdotto in MSMQ 3.0. Riceve un messaggio specifico della coda, utilizzando il contesto di transazione specificato. Il messaggio può essere specificato da un identificatore di ricerca o in base alla relativa posizione all'inizio o alla fine della coda.

public:
 System::Messaging::Message ^ ReceiveByLookupId(System::Messaging::MessageLookupAction action, long lookupId, System::Messaging::MessageQueueTransactionType transactionType);
public System.Messaging.Message ReceiveByLookupId (System.Messaging.MessageLookupAction action, long lookupId, System.Messaging.MessageQueueTransactionType transactionType);
member this.ReceiveByLookupId : System.Messaging.MessageLookupAction * int64 * System.Messaging.MessageQueueTransactionType -> System.Messaging.Message
Public Function ReceiveByLookupId (action As MessageLookupAction, lookupId As Long, transactionType As MessageQueueTransactionType) As Message

Parametri

action
MessageLookupAction

Uno dei valori di MessageLookupAction, che specifica come deve essere letto il messaggio nella coda. Specificare uno dei valori seguenti: MessageLookupAction.Current: riceve il messaggio specificato da lookupId e lo rimuove dalla coda.

MessageLookupAction.Next: riceve il messaggio che segue il messaggio specificato da lookupId e lo rimuove dalla coda.

MessageLookupAction.Previous: riceve il messaggio che precede il messaggio specificato da lookupId e lo rimuove dalla coda.

MessageLookupAction.First: riceve il primo messaggio della coda e lo rimuove da quest'ultima. Il parametro lookupId deve essere impostato su 0.

MessageLookupAction.Last: riceve l'ultimo messaggio della coda e lo rimuove da quest'ultima. Il parametro lookupId deve essere impostato su 0.

lookupId
Int64

Oggetto LookupId del messaggio da ricevere oppure 0. 0 viene utilizzato quando si accede al primo o all'ultimo messaggio della coda.

transactionType
MessageQueueTransactionType

Uno dei valori di MessageQueueTransactionType che descrive il tipo di contesto di transazione da associare al messaggio.

Restituisce

Message

Oggetto Message specificato dai parametri action e lookupId passati.

Eccezioni

MSMQ 3.0 non è installato.

Impossibile trovare il messaggio con il parametro lookupId specificato.

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

Il parametro action non è uno dei membri di MessageLookupAction.

-oppure- Il parametro transactionType non è uno dei membri di MessageQueueTransactionType.

Commenti

Usare questo metodo per leggere un messaggio con un identificatore di ricerca noto e rimuoverlo dalla coda, usando un contesto di transazione definito dal transactionType parametro . Questo metodo genera un'eccezione immediatamente se il messaggio non è nella coda.

La LookupId proprietà di un messaggio è univoca alla coda in cui risiede il messaggio, quindi sarà presente al massimo un messaggio nella coda che corrisponde al parametro specificato lookupId .

Per leggere un messaggio con un identificatore specificato senza rimuoverlo dalla coda, usare il PeekByLookupId metodo . Non esiste alcun contesto di transazione associato a un messaggio restituito da una chiamata a PeekByLookupId. Poiché PeekByLookupId non rimuove alcun messaggio dalla coda, non sarà necessario eseguire il rollback se la transazione è stata interrotta.

Specificare Automatic per il transactionType parametro se è già presente un contesto di transazione esterno collegato al thread che si vuole usare per ricevere il messaggio. Specificare Single se si vuole ricevere il messaggio come singola transazione interna. È possibile specificare None se si vuole ricevere un messaggio da una coda transazionale all'esterno di un contesto di transazione.

Se questo metodo viene chiamato per ricevere un messaggio da una coda transazionale, il messaggio ricevuto verrà restituito alla coda se la transazione viene interrotta. Il messaggio non viene rimosso definitivamente dalla coda fino al commit della transazione.

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