MessageQueue.Transactional Eigenschap

Definitie

Hiermee wordt een waarde opgehaald die aangeeft of de wachtrij alleen transacties accepteert.

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

Waarde van eigenschap

true als de wachtrij alleen berichten accepteert die als onderdeel van een transactie worden verzonden; anders, false.

Kenmerken

Uitzonderingen

Er is een fout opgetreden bij het openen van een Message Queuing-methode.

Voorbeelden

In het volgende codevoorbeeld wordt de waarde van de eigenschap van een berichtenwachtrij Transactional weergegeven.

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

Opmerkingen

Transactionele berichten verwijzen naar de koppeling van verschillende gerelateerde berichten in één transactie. Als u berichten verzendt als onderdeel van een transactie, zorgt u ervoor dat de berichten in volgorde worden bezorgd, slechts eenmaal worden bezorgd en zijn opgehaald uit de doelwachtrij.

Als een wachtrij transactioneel is, accepteert deze alleen berichten die als onderdeel van een transactie worden verzonden. Een niet-transactioneel bericht kan echter worden verzonden of ontvangen vanuit een lokale transactiewachtrij zonder expliciet transactionele Begin, Commiten Abort syntaxis te gebruiken. Als een niet-transactioneel bericht naar een transactionele wachtrij wordt verzonden, maakt dit onderdeel er een transactie met één bericht voor, behalve in het geval van een verwijzing naar een wachtrij op een externe computer met behulp van een directe indelingsnaam. Als u in dit geval geen transactiecontext opgeeft bij het verzenden van een bericht, wordt er geen context voor u gemaakt en wordt het bericht verzonden naar de wachtrij met dode letters.

Als u een niet-transactioneel bericht naar een transactionele wachtrij verzendt, kunt u het bericht niet terugdraaien in het geval van een uitzondering.

MessageQueueTransaction is threading appartement bewust, dus als uw appartementsstatus is STA, kunt u de transactie niet gebruiken in meerdere threads. Visual Basic stelt de status van de hoofdthread in op STA, dus moet u de MTAThreadAttribute toepassen in de subroutine Main. Anders genereert het verzenden van een transactioneel bericht met een andere thread een MessageQueueException uitzondering. U past het MTAThreadAttribute toe met behulp van het volgende fragment.

<System.MTAThreadAttribute>
 public sub Main()

In de volgende tabel ziet u of deze eigenschap beschikbaar is in verschillende werkgroepmodi.

Werkgroepmodus Beschikbaar
Lokale computer Yes
Naam van lokale computer en directe indeling Yes
Externe computer No
Naam van externe computer en directe indeling No

Van toepassing op

Zie ook