次の方法で共有


方法 : 内部トランザクション内でメッセージを送信します。

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

内部トランザクション メッセージ キューのリソースだけを含むし、MessageQueueTransaction でメッセージ キュー内から完全管理です。 MessageQueueTransaction トランザクション プロセスを処理し、トランザクションとして送信するを選択するメッセージに引き渡してのインスタンスを作成するとします。

次の方法は、トランザクション処理を制御します。

メソッド

ために使用

Begin

メッセージおよび操作の 1 つ以上で構成されるトランザクションの開始を示します。

Commit

正しく実行するすべてのメッセージ操作が含まれていた場合はトランザクションをコミットします。

Abort

エラー チェック時にトランザクションをロールバックします。

注意

切断や完全なキューには、障害はありません。

ほとんどの場合、トランザクション コードを囲む Try...Catch...Finally ステートメント (Visual Basic) (または try-catch-finally (C# Reference)) 内にある必要があります。 これをステートメントの Try 部分で、トランザクションを指定し、 Catch ステートメントを使用してエラーが発生した場合、 Abort メソッドを発行することができます。 このパターンの例については下にあるコードを表示します。

内部トランザクション内でメッセージを送信するには

  1. MessageQueue コンポーネントのインスタンスを作成し、 Path プロパティを参照するキューに設定します。 詳細については、「方法 : MessageQueue コンポーネントのインスタンスを作成します。」を参照してください。

  2. トランザクションを制御する MessageQueueTransaction クラスのインスタンスを作成します。

  3. MessageQueueTransaction クラスの Begin メソッドを呼び出します。

  4. Begin の呼び出し後に送信する各メッセージを定義します。 詳細については、「方法 : MessageQueue コンポーネントのインスタンスを作成します。」を参照してください。

  5. メッセージを送信した後、最後が CommitMessageQueueTransaction インスタンスをトランザクションの終了を呼び出します。

  6. Try...Catch エラーチェック コードに発生するエラーを処理には、トランザクションの作業全体を囲みます。

  7. エラーを検出した場合トランザクションをロールバック、Abort メソッドを呼び出します。

    コード次のように可能性があります。

                                Dim transaction AsNew System.Messaging.MessageQueueTransaction
    transaction.Begin()
    Try
        MessageQueue1.Send("Message1", "Label1", transaction)
        MessageQueue1.Send("Message2", "Label2", transaction)
        MessageQueue1.Send("Message3", "Label3", transaction)
        transaction.Commit()
    Catch
        transaction.Abort()
    EndTry
    
            System.Messaging.MessageQueueTransaction transaction =
                new System.Messaging.MessageQueueTransaction();
            transaction.Begin();
            try
            {
                messageQueue1.Send("Message1", "Label1", transaction);
                messageQueue1.Send("Message2", "Label2", transaction);
                messageQueue1.Send("Message3", "Label3", transaction);
                transaction.Commit();
            }
            catch
            {
                transaction.Abort();
            }
    

参照

処理手順

方法 : トランザクション キューを作成します。

方法 : MessageQueue コンポーネントのインスタンスを作成します。

概念

トランザクション メッセージの処理

その他の技術情報

送信とメッセージをシリアル化