MessageQueue.Transactional Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wartość wskazującą, czy kolejka akceptuje tylko transakcje.
public:
property bool Transactional { bool get(); };
[System.Messaging.MessagingDescription("MQ_Transactional")]
public bool Transactional { get; }
[<System.Messaging.MessagingDescription("MQ_Transactional")>]
member this.Transactional : bool
Public ReadOnly Property Transactional As Boolean
Wartość właściwości
true
jeśli kolejka akceptuje tylko komunikaty wysyłane w ramach transakcji; w przeciwnym razie , false
.
- Atrybuty
Wyjątki
Wystąpił błąd podczas uzyskiwania dostępu do metody kolejkowania komunikatów.
Przykłady
Poniższy przykład kodu wyświetla wartość właściwości kolejki komunikatów Transactional .
// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
queue.Transactional);
Uwagi
Obsługa komunikatów transakcyjnych odnosi się do sprzężenia kilku powiązanych komunikatów w jedną transakcję. Wysyłanie komunikatów w ramach transakcji gwarantuje, że komunikaty są dostarczane w kolejności, dostarczane tylko raz i pomyślnie pobierane z kolejki docelowej.
Jeśli kolejka jest transakcyjna, akceptuje tylko komunikaty wysyłane w ramach transakcji. Jednak komunikat nie transakcyjny można wysłać lub odebrać z lokalnej kolejki transakcji bez jawnego użycia transakcyjnej Begin, Commiti Abort składni. Jeśli komunikat nie transakcyjny jest wysyłany do kolejki transakcyjnej, ten składnik tworzy dla niego transakcję z pojedynczym komunikatem, z wyjątkiem przypadków odwoływania się do kolejki na komputerze zdalnym przy użyciu nazwy formatu bezpośredniego. W takiej sytuacji, jeśli nie określisz kontekstu transakcji podczas wysyłania komunikatu, jeden nie zostanie utworzony dla Ciebie, a komunikat zostanie wysłany do kolejki utraconych komunikatów.
Jeśli wysyłasz komunikat nie transakcyjny do kolejki transakcyjnej, nie będzie można wycofać komunikatu w przypadku wyjątku.
MessageQueueTransaction program obsługuje wątki mieszkania, więc jeśli stan mieszkania to STA
, nie można użyć transakcji w wielu wątkach. Visual Basic ustawia stan głównego wątku na STA
, więc należy zastosować element MTAThreadAttribute w podproceducji Main
. W przeciwnym razie wysłanie komunikatu transakcyjnego przy użyciu innego wątku zgłasza MessageQueueException wyjątek. Zastosuj ten element MTAThreadAttribute przy użyciu następującego fragmentu.
<System.MTAThreadAttribute>
public sub Main()
W poniższej tabeli przedstawiono, czy ta właściwość 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 | Nie |