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

true, wenn die Warteschlange nur Meldungen akzeptiert, die als Teil einer Transaktion gesendet wurden, 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

Transaktionsmessaging bezieht sich auf die Kopplung mehrerer verwandter Nachrichten in eine einzelne Transaktion. Durch das Senden von Nachrichten im Rahmen einer Transaktion wird sichergestellt, dass die Nachrichten in der richtigen Reihenfolge zugestellt, nur einmal zugestellt und erfolgreich aus der Zielwarteschlange abgerufen werden.

Wenn eine Warteschlange transaktional ist, akzeptiert sie nur Nachrichten, die als Teil einer Transaktion gesendet werden. Eine nicht transaktionale Nachricht kann jedoch von einer lokalen Transaktionswarteschlange gesendet oder empfangen werden, ohne explizit Transaktions Begin-, Commit- und Abort -Syntax zu verwenden. Wenn eine nicht transaktionale Nachricht an eine Transaktionswarteschlange gesendet wird, erstellt diese Komponente eine Einzelnachrichtentransaktion für sie, außer im Fall, dass auf eine Warteschlange auf einem Remotecomputer mit einem direkten Formatnamen verwiesen wird. Wenn Sie in dieser Situation beim Senden einer Nachricht keinen Transaktionskontext angeben, wird kein Transaktionskontext für Sie erstellt, und die Nachricht wird an die Warteschlange für unzustellbare Nachrichten gesendet.

Wenn Sie eine nicht transaktionale Nachricht an eine Transaktionswarteschlange senden, können Sie im Falle einer Ausnahme kein Rollback für die Nachricht ausführen.

MessageQueueTransaction ist threading apartment-fähig. Wenn Ihr Apartmentstatus also lautet STA, können Sie die Transaktion nicht in mehreren Threads verwenden. Visual Basic legt den Zustand des Standard Threads auf festSTA, sodass Sie den MTAThreadAttribute in der Main Unterroutine anwenden müssen. Andernfalls wird durch das Senden einer Transaktionsmeldung mithilfe eines anderen Threads eine MessageQueueException-Ausnahme ausgelöst. Verwenden Sie das MTAThreadAttribute folgende Fragment.

<System.MTAThreadAttribute>
 public sub Main()

Die folgende Tabelle zeigt, ob diese Eigenschaft in verschiedenen Arbeitsgruppenmodi verfügbar ist.

Arbeitsgruppenmodus Verfügbar
Lokalem Computer Ja
Name des lokalen Computers und des direkten Formats Ja
Remotecomputer Nein
Name des Remotecomputers und des direkten Formats Nein

Gilt für:

Weitere Informationen