次の方法で共有


MessageQueue.Transactional プロパティ

キューがトランザクションだけを受け入れるかどうかを示す値を取得します。

Public ReadOnly Property Transactional As Boolean
[C#]
public bool Transactional {get;}
[C++]
public: __property bool get_Transactional();
[JScript]
public function get Transactional() : Boolean;

プロパティ値

キューがトランザクションの一部として送信されるメッセージだけを受け入れる場合は true 。それ以外の場合は false

例外

例外の種類 条件
MessageQueueException メッセージ キューの API にアクセスしたときにエラーが発生しました。

解説

トランザクション メッセージは、単一のトランザクションに関連付けられたいくつかのメッセージの組み合わせを参照します。トランザクションの一部としてメッセージを送信すると、メッセージは順番に 1 回だけ配信され、送信先キューから正常に取得できます。

キューがトランザクション キューの場合は、トランザクションの一部として送信されたメッセージだけを受け入れます。しかし、トランザクションの BeginCommitAbort の各構文を明示的に使用せずに、非トランザクションメッセージをローカル トランザクション キューで送受信することもできます。非トランザクション メッセージがトランザクション キューへ送信された場合は、このコンポーネントによってそのための単一メッセージ トランザクションが作成されます。ただし、直接書式名を使用して、リモート コンピュータのキューを参照している場合は除きます。このとき、メッセージの送信時にトランザクション コンテキストを指定しなかった場合は、単一メッセージ トランザクションが作成されず、メッセージは配信不能キューに送信されます。

メモ   非トランザクションメッセージをトランザクション キューに送信した場合は、例外が発生したときにメッセージをロールバックできません。

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

 
<System.MTAThreadAttribute>
public sub Main()

このプロパティが各種のワークグループ モードで使用できるかどうかを次の表に示します。

ワークグループ モード 使用可否
ローカル コンピュータ はい
ローカル コンピュータ + 直接書式名 はい
リモート コンピュータ いいえ
リモート コンピュータ + 直接書式名 いいえ

必要条件

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

.NET Framework セキュリティ:

参照

MessageQueue クラス | MessageQueue メンバ | System.Messaging 名前空間 | Begin | Commit | Abort | Message.TransactionId | Message.IsFirstInTransaction | IsLastInTransaction