MessageQueue.Transactional プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
キューがトランザクションだけを受け入れるかどうかを示す値を取得します。
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
プロパティ値
キューがトランザクションの一部として送信されるメッセージだけを受け入れる場合は true
。それ以外の場合は false
。
- 属性
例外
メッセージ キューのメソッドにアクセスしたときにエラーが発生しました。
例
次のコード例では、メッセージ キューの プロパティの値を Transactional 表示します。
// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
queue.Transactional);
注釈
トランザクション メッセージングとは、複数の関連メッセージを 1 つのトランザクションに結合することを指します。 トランザクションの一部としてメッセージを送信すると、メッセージが順番に配信され、1 回だけ配信され、宛先キューから正常に取得されます。
キューがトランザクションの場合、トランザクションの一部として送信されるメッセージのみを受け入れます。 ただし、トランザクション、、および Abort 構文を明示的に使用せずに、ローカル トランザクション キューから非トランザクション BeginCommitメッセージを送受信できます。 非トランザクション メッセージがトランザクション キューに送信される場合、このコンポーネントは、直接形式名を使用してリモート コンピューター上のキューを参照する場合を除き、そのメッセージに対して単一メッセージ トランザクションを作成します。 この状況では、メッセージの送信時にトランザクション コンテキストを指定しないと、メッセージは自動的に作成されず、メッセージは配信不能キューに送信されます。
非トランザクション メッセージをトランザクション キューに送信した場合、例外が発生した場合にメッセージをロールバックすることはできません。
MessageQueueTransaction はスレッドアパートメント対応であるため、アパートメントの状態が の場合、 STA
トランザクションを複数のスレッドで使用することはできません。 Visual Basic では、メイン スレッドの状態が にSTA
設定されるため、サブルーチンで をMTAThreadAttribute適用するMain
必要があります。 適用しない場合、別のスレッドを使用してトランザクション メッセージを送信すると、MessageQueueException 例外がスローされます。 を適用する場合は MTAThreadAttribute 、次のフラグメントを使用します。
<System.MTAThreadAttribute>
public sub Main()
次の表は、このプロパティがさまざまなワークグループ モードで使用できるかどうかを示しています。
ワークグループ モード | 利用可能 |
---|---|
ローカル コンピューター | はい |
ローカル コンピューターと直接の形式名 | はい |
リモート コンピューター | いいえ |
リモート コンピューターと直接形式の名前 | いいえ |
適用対象
こちらもご覧ください
.NET