MessageQueue.Transactional Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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 |