MessageQueueTransaction クラス

メッセージ キューの内部トランザクションを提供します。

この型のすべてのメンバの一覧については、MessageQueueTransaction メンバ を参照してください。

System.Object
   System.Messaging.MessageQueueTransaction

Public Class MessageQueueTransaction
   Implements IDisposable
[C#]
public class MessageQueueTransaction : IDisposable
[C++]
public __gc class MessageQueueTransaction : public IDisposable
[JScript]
public class MessageQueueTransaction implements IDisposable

スレッドセーフ

この型は、マルチスレッド操作に対して安全です。

解説

トランザクションの一部としてメッセージを送受信するには、 MessageQueueTransaction クラスを使用してトランザクションを作成し、 transaction パラメータを取る MessageQueue.Send メソッドまたは MessageQueue.Receive メソッドのオーバーロードにこのトランザクションを渡します。トランザクションの一部として送信するメッセージは、トランザクション キューに送信する必要があります。トランザクション キューからのメッセージの受信は、指定されたトランザクションを使用して行う必要があります。

メモ    Receive メソッドの他、指定した ID または指定した相関 ID を使用してメッセージを受信できます。トランザクション キューからメッセージを選択的に受信する方法の詳細については、 ReceiveById メソッドおよび ReceiveByCorrelationId メソッドのトピックを参照してください。

トランザクションがロールバックされると、トランザクション キューに送信されたメッセージは削除されます。同様に、トランザクションがロールバックされると、トランザクション キューから受信したメッセージはキューに返されます。

MessageQueueTransaction をインスタンス化し、 Send メソッドまたは Receive メソッドの適用可能なオーバーロードに渡してメッセージを非トランザクション キューに送信するか、非トランザクション キューからメッセージを受信すると、メソッドは "間違ったトランザクションの使用方法" を示す例外をスローします。

[Visual Basic] メモ    MessageQueueTransaction がスレッド アパートメントに対応しているため、アパートメントの状態が STA の場合は、複数のスレッドで同じトランザクションを使用できません。Visual Basic はメイン スレッドの状態を STA に設定するため、 Main サブルーチンで MTAThreadAttribute を適用する必要があります。この処理を行っていない場合は、別のスレッドを使用してトランザクション メッセージを送信すると、 MessageQueueException 例外がスローされます。 MTAThreadAttribute を適用するには、次のコード片を使用します。

 
<System.MTAThreadAttribute>
public sub Main()

必要条件

名前空間: System.Messaging

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Messaging (System.Messaging.dll 内)

参照

MessageQueueTransaction メンバ | System.Messaging 名前空間 | MessageQueue.Transactional | MessageQueue.Send