Freigeben über


MessageQueue.Transactional Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob die Warteschlange nur Transaktionen akzeptiert.

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

Eigenschaftswert

truewenn die Warteschlange nur Nachrichten akzeptiert, die als Teil einer Transaktion gesendet werden; andernfalls . false

Attribute

Ausnahmen

Fehler beim Zugriff auf eine Message Queuing-Methode.

Beispiele

Im folgenden Codebeispiel wird der Wert der Eigenschaft einer Nachrichtenwarteschlange Transactional angezeigt.

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

Hinweise

Transaktionsnachrichten beziehen sich auf die Kopplung mehrerer verwandter Nachrichten in eine einzelne Transaktion. Durch das Senden von Nachrichten als Teil einer Transaktion wird sichergestellt, dass die Nachrichten nur einmal übermittelt und erfolgreich aus ihrer Zielwarteschlange abgerufen werden.

Wenn eine Warteschlange transaktionsal ist, akzeptiert sie nur Nachrichten, die als Teil einer Transaktion gesendet werden. Eine Nichttransaktionsnachricht kann jedoch ohne explizite Verwendung von Transaktions- BeginCommitund Abort Syntax aus einer lokalen Transaktionswarteschlange gesendet oder empfangen werden. Wenn eine Nichttransaktionsnachricht an eine Transaktionswarteschlange gesendet wird, erstellt diese Komponente eine Einzelnachrichtentransaktion dafür, mit Ausnahme des Verweises auf eine Warteschlange auf einem Remotecomputer mit einem direkten Formatnamen. Wenn Sie in diesem Fall beim Senden einer Nachricht keinen Transaktionskontext angeben, wird eine nicht für Sie erstellt, und die Nachricht wird an die Warteschlange mit inaktiven Buchstaben gesendet.

Wenn Sie eine Nichttransaktionsnachricht an eine Transaktionswarteschlange senden, können Sie die Nachricht im Falle einer Ausnahme nicht zurücksetzen.

MessageQueueTransaction ist threading apartment aware, also if your apartment state is STA, you cannot use the transaction in multiple threads. Visual Basic legt den Status des Hauptthreads auf STAfest, sodass Sie die MTAThreadAttribute In-Unterroutine Main anwenden müssen. Andernfalls löst das Senden einer Transaktionsnachricht mit einem anderen Thread eine MessageQueueException Ausnahme aus. Sie wenden das MTAThreadAttribute folgende Fragment an.

<System.MTAThreadAttribute>
 public sub Main()

In der folgenden Tabelle wird gezeigt, ob diese Eigenschaft in verschiedenen Arbeitsgruppenmodi verfügbar ist.

Arbeitsgruppenmodus Verfügbar
Lokaler Computer Ja
Name des lokalen Computers und des direkten Formats Ja
Remotecomputer No
Name des Remotecomputers und des direkten Formats No

Gilt für:

Weitere Informationen