MessageQueue.Transactional Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |