Freigeben über


MessageQueueTransaction-Klasse

Stellt eine interne Message Queuing-Transaktion bereit.

Namespace: System.Messaging
Assembly: System.Messaging (in system.messaging.dll)

Syntax

'Declaration
Public Class MessageQueueTransaction
    Implements IDisposable
'Usage
Dim instance As MessageQueueTransaction
public class MessageQueueTransaction : IDisposable
public ref class MessageQueueTransaction : IDisposable
public class MessageQueueTransaction implements IDisposable
public class MessageQueueTransaction implements IDisposable

Hinweise

Zum Senden oder Empfangen einer Meldung als Teil einer Transaktion können Sie mithilfe der MessageQueueTransaction-Klasse eine Transaktion erstellen und an eine Überladung der MessageQueue.Send-Methode oder der MessageQueue.Receive-Methode übergeben, die einen transaction-Parameter annimmt. Als Teil einer Transaktion gesendete Meldungen müssen an transaktionale Warteschlangen gesendet werden. Meldungen, die aus transaktionalen Warteschlangen empfangen werden, müssen mithilfe einer angegebenen Transaktion empfangen werden.

Sie können Meldungen nicht nur mithilfe der Receive-Methode, sondern auch mit einem angegebenen Bezeichner oder einer angegebenen Korrelations-ID empfangen. Weitere Informationen über das selektive Empfangen von Meldungen aus transaktionalen Warteschlangen finden Sie unter der ReceiveById-Methode und der ReceiveByCorrelationId-Methode.

An transaktionale Warteschlangen gesendete Meldungen werden bei der Ausführung eines Commits für die Transaktion entfernt. Ebenso werden aus transaktionalen Warteschlangen empfangene Meldungen an die Warteschlange zurückgegeben, wenn ein Rollback für die Transaktion ausgeführt wird.

Wenn Sie eine MessageQueueTransaction instanziieren und an eine anwendbare Überladung der Send-Methode oder der Receive-Methode übergeben, um eine Meldung an eine nicht transaktionale Warteschlange zu senden bzw. eine Meldung aus einer nicht transaktionalen Warteschlange zu empfangen, löst die Methode eine Ausnahme aus, die "Transaktionsverwendung ist ungültig" angibt.

MessageQueueTransaction unterstützt Apartmentthreading. Bei einem Apartmentzustand von STA können Sie die Transaktion daher nicht in mehreren Threads verwenden. Visual Basic legt den Zustand des Hauptthreads auf STA fest. Sie müssen das MTAThreadAttribute daher in der Main-Unterroutine zuweisen. Andernfalls wird beim Senden einer transaktionalen Meldung über einen anderen Thread eine MessageQueueException-Ausnahme ausgelöst. Weisen Sie das MTAThreadAttribute unter Verwendung des folgenden Codefragments zu.

<System.MTAThreadAttribute>
 public sub Main()

Vererbungshierarchie

System.Object
  System.Messaging.MessageQueueTransaction

Threadsicherheit

Dieser Typ ist sicher bei Multithreadoperationen.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

MessageQueueTransaction-Member
System.Messaging-Namespace
MessageQueue.Transactional-Eigenschaft
MessageQueue.Send