MessageQueue.Transactional Egenskap

Definition

Hämtar ett värde som anger om kön endast accepterar transaktioner.

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

Egenskapsvärde

trueom kön endast accepterar meddelanden som skickas som en del av en transaktion; annars . false

Attribut

Undantag

Ett fel uppstod vid åtkomst till en Message Queuing-metod.

Exempel

I följande kodexempel visas värdet för en meddelandekös Transactional egenskap.

// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
    queue.Transactional);

Kommentarer

Transaktionsmeddelanden avser koppling av flera relaterade meddelanden till en enda transaktion. Genom att skicka meddelanden som en del av en transaktion ser du till att meddelandena levereras i ordning, endast levereras en gång och hämtas från målkön.

Om en kö är transaktionell accepterar den endast meddelanden som skickas som en del av en transaktion. Ett icke-transaktionsmeddelande kan dock skickas eller tas emot från en lokal transaktionskö utan att uttryckligen använda transaktionell Begin, Commitoch Abort syntax. Om ett icke-transaktionellt meddelande skickas till en transaktionskö skapar den här komponenten en transaktion med ett meddelande för den, förutom när du refererar till en kö på en fjärrdator med ett direkt formatnamn. I det här fallet, om du inte anger en transaktionskontext när du skickar ett meddelande, skapas inget åt dig och meddelandet skickas till kön med obeställbara meddelanden.

Om du skickar ett icke-transaktionellt meddelande till en transaktionskö kan du inte återställa meddelandet i händelse av ett undantag.

MessageQueueTransaction är trådning lägenhet medveten, så om din lägenhet tillstånd är STA, kan du inte använda transaktionen i flera trådar. Visual Basic anger huvudtrådens tillstånd till STA, så du måste använda MTAThreadAttribute i underrutinen Main. Annars genererar sändning av ett transaktionsmeddelande med hjälp av en annan tråd ett MessageQueueException undantag. Du använder MTAThreadAttribute följande fragment.

<System.MTAThreadAttribute>
 public sub Main()

I följande tabell visas om den här egenskapen är tillgänglig i olika arbetsgruppslägen.

Arbetsgruppsläge Tillgängligt
Lokal dator Yes
Namn på lokal dator och direktformat Yes
Fjärrdator No
Namn på fjärrdator och direktformat No

Gäller för

Se även