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);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

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);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

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);

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

.NET Framework 4.8.1 i inne wersje
Produkt Wersje
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1