MessageQueue.ReceiveByLookupId Metoda

Definicja

Wprowadzono w programie MSMQ 3.0. Odbiera określony komunikat z kolejki. Komunikat może być określony przez identyfikator odnośnika lub jego położenie na początku lub na końcu kolejki.

Przeciążenia

ReceiveByLookupId(Int64)

Wprowadzono w programie MSMQ 3.0. Odbiera komunikat zgodny z podanym identyfikatorem odnośnika z kolejki innej niż transakcyjna.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

Wprowadzono w programie MSMQ 3.0. Odbiera określony komunikat z kolejki transakcyjnej. Komunikat może być określony przez identyfikator odnośnika lub jego położenie na początku lub na końcu kolejki.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

Wprowadzono w programie MSMQ 3.0. Odbiera określony komunikat z kolejki przy użyciu określonego kontekstu transakcji. Komunikat może być określony przez identyfikator odnośnika lub jego położenie na początku lub na końcu kolejki.

ReceiveByLookupId(Int64)

Wprowadzono w programie MSMQ 3.0. Odbiera komunikat zgodny z podanym identyfikatorem odnośnika z kolejki innej niż transakcyjna.

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

Parametry

lookupId
Int64

Komunikat LookupId do odebrania.

Zwraca

Właściwość, której LookupId właściwość jest zgodna Message z przekazanym parametremlookupId.

Wyjątki

Program MSMQ 3.0 nie jest zainstalowany.

Nie można odnaleźć komunikatu z określonym lookupId .

Wystąpił błąd podczas uzyskiwania dostępu do metody kolejkowania komunikatów.

Uwagi

Użyj tej metody, aby odczytać komunikat ze znanym identyfikatorem odnośnika i usunąć go z kolejki. Ta metoda zgłasza wyjątek natychmiast, jeśli komunikat nie znajduje się w kolejce.

Właściwość LookupId komunikatu jest unikatowa dla kolejki, w której znajduje się komunikat, więc w kolejce będzie znajdować się co najwyżej jeden komunikat zgodny z danym lookupId parametrem.

Aby odczytać komunikat z określonym identyfikatorem odnośnika bez usuwania go z kolejki, użyj PeekByLookupId metody .

W poniższej tabeli przedstawiono, czy ta metoda jest dostępna w różnych trybach grupy roboczej.

Tryb grupy roboczej Dostępne
Komputer lokalny Tak
Komputer lokalny i nazwa formatu bezpośredniego Tak
Komputer zdalny Nie
Nazwa komputera zdalnego i formatu bezpośredniego Tak

Zobacz też

Dotyczy

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

Wprowadzono w programie MSMQ 3.0. Odbiera określony komunikat z kolejki transakcyjnej. Komunikat może być określony przez identyfikator odnośnika lub jego położenie na początku lub na końcu kolejki.

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

Parametry

action
MessageLookupAction

MessageLookupAction Jedną z wartości określających sposób odczytywania komunikatu w kolejce. Określ jedną z następujących opcji:

MessageLookupAction.Current: odbiera komunikat określony przez lookupId i usuwa go z kolejki.

MessageLookupAction.Next: odbiera komunikat po komunikacie określonym przez lookupId i usuwa go z kolejki.

MessageLookupAction.Previous: odbiera komunikat poprzedzający komunikat określony przez lookupId i usuwa go z kolejki.

MessageLookupAction.First: odbiera pierwszy komunikat w kolejce i usuwa go z kolejki. Parametr lookupId musi być ustawiony na wartość 0.

MessageLookupAction.Last: odbiera ostatni komunikat w kolejce i usuwa go z kolejki. Parametr lookupId musi być ustawiony na wartość 0.

lookupId
Int64

Komunikat LookupId do odebrania lub 0. Wartość 0 jest używana podczas uzyskiwania dostępu do pierwszego lub ostatniego komunikatu w kolejce.

Zwraca

Określony Message przez lookupId parametry i action przekazany.

Wyjątki

Program MSMQ 3.0 nie jest zainstalowany.

Nie można odnaleźć komunikatu z określonym lookupId .

Wystąpił błąd podczas uzyskiwania dostępu do metody kolejkowania komunikatów.

-lub-

Kolejka nie jest transakcyjna.

Parametr action nie jest jednym z MessageLookupAction elementów członkowskich.

Uwagi

Użyj tej metody, aby odczytać komunikat ze znanym identyfikatorem odnośnika i usunąć go z kolejki przy użyciu kontekstu transakcji zdefiniowanego transaction przez parametr . Ta metoda zgłasza wyjątek natychmiast, jeśli komunikat nie znajduje się w kolejce.

Właściwość LookupId komunikatu jest unikatowa dla kolejki, w której znajduje się komunikat, więc w kolejce będzie znajdować się co najwyżej jeden komunikat zgodny z danym lookupId parametrem.

Ponieważ ta metoda jest wywoływana w kolejce transakcyjnej, komunikat, który zostanie odebrany, zostanie zwrócony do kolejki, jeśli transakcja zostanie przerwana. Komunikat nie zostanie trwale usunięty z kolejki, dopóki transakcja nie zostanie zatwierdzona.

Aby odczytać komunikat o określonym identyfikatorze bez usunięcia go z kolejki, użyj PeekByLookupId metody . Nie ma kontekstu transakcji skojarzonego z komunikatem zwróconym przez wywołanie metody PeekByLookupId. Ponieważ PeekByLookupId nie usuwa żadnych komunikatów z kolejki, nie byłoby nic do wycofania, gdyby transakcja została przerwana.

W poniższej tabeli przedstawiono, czy ta metoda jest dostępna w różnych trybach grupy roboczej.

Tryb grupy roboczej Dostępne
Komputer lokalny Tak
Komputer lokalny i nazwa formatu bezpośredniego Tak
Komputer zdalny Nie
Nazwa komputera zdalnego i formatu bezpośredniego Tak

Zobacz też

Dotyczy

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

Wprowadzono w programie MSMQ 3.0. Odbiera określony komunikat z kolejki przy użyciu określonego kontekstu transakcji. Komunikat może być określony przez identyfikator odnośnika lub jego położenie na początku lub na końcu kolejki.

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

Parametry

action
MessageLookupAction

MessageLookupAction Jedną z wartości określających sposób odczytywania komunikatu w kolejce. Określ jedną z następujących opcji:

MessageLookupAction.Current: odbiera komunikat określony przez lookupId i usuwa go z kolejki.

MessageLookupAction.Next: odbiera komunikat po komunikacie określonym przez lookupId i usuwa go z kolejki.

MessageLookupAction.Previous: odbiera komunikat poprzedzający komunikat określony przez lookupId i usuwa go z kolejki.

MessageLookupAction.First: odbiera pierwszy komunikat w kolejce i usuwa go z kolejki. Parametr lookupId musi być ustawiony na wartość 0.

MessageLookupAction.Last: odbiera ostatni komunikat w kolejce i usuwa go z kolejki. Parametr lookupId musi być ustawiony na wartość 0.

lookupId
Int64

Wartość LookupId komunikatu do odebrania lub 0. Wartość 0 jest używana podczas uzyskiwania dostępu do pierwszego lub ostatniego komunikatu w kolejce.

transactionType
MessageQueueTransactionType

MessageQueueTransactionType Jedna z wartości opisujących typ kontekstu transakcji do skojarzenia z komunikatem.

Zwraca

Określony Message przez action parametry i lookupId przekazane.

Wyjątki

Program MSMQ 3.0 nie jest zainstalowany.

Nie można odnaleźć komunikatu z określonym lookupId .

Wystąpił błąd podczas uzyskiwania dostępu do metody kolejkowania komunikatów.

Parametr action nie jest jednym z MessageLookupAction elementów członkowskich.

-lub-

Parametr transactionType nie jest jednym z MessageQueueTransactionType elementów członkowskich.

Uwagi

Ta metoda służy do odczytywania komunikatu ze znanym identyfikatorem odnośnika i usuwania go z kolejki przy użyciu kontekstu transakcji zdefiniowanego transactionType przez parametr . Ta metoda zgłasza wyjątek natychmiast, jeśli komunikat nie znajduje się w kolejce.

Właściwość LookupId komunikatu jest unikatowa dla kolejki, w której znajduje się komunikat, więc w kolejce będzie co najwyżej jeden komunikat zgodny z danym lookupId parametrem.

Aby odczytać komunikat z określonym identyfikatorem bez usuwania go z kolejki, użyj PeekByLookupId metody . Brak kontekstu transakcji skojarzonego z komunikatem zwróconym przez wywołanie metody PeekByLookupId. Ponieważ PeekByLookupId nie usuwa żadnych komunikatów z kolejki, nie byłoby nic do wycofywania, jeśli transakcja została przerwana.

Określ Automatic parametr , transactionType jeśli istnieje już zewnętrzny kontekst transakcji dołączony do wątku, którego chcesz użyć do odbierania komunikatu. Określ Single , czy chcesz otrzymywać komunikat jako pojedynczą transakcję wewnętrzną. Możesz określić None , czy chcesz odbierać komunikat z kolejki transakcyjnej poza kontekstem transakcji.

Jeśli ta metoda jest wywoływana w celu odbierania komunikatu z kolejki transakcyjnej, odebrany komunikat zostanie zwrócony do kolejki, jeśli transakcja zostanie przerwana. Komunikat nie zostanie trwale usunięty z kolejki, dopóki transakcja nie zostanie zatwierdzona.

W poniższej tabeli przedstawiono, czy ta metoda jest dostępna w różnych trybach grupy roboczej.

Tryb grupy roboczej Dostępne
Komputer lokalny Tak
Nazwa komputera lokalnego i bezpośredniego formatu Tak
Komputer zdalny Nie
Nazwa komputera zdalnego i bezpośredniego formatu Tak

Zobacz też

Dotyczy