MessageQueue.Transactional Właściwość

Definicja

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

Dotyczy

Zobacz też