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