次の方法で共有


レッスン 6 : 応答の受信とメッセージ交換の終了

このレッスンでは、発信先サービスから応答メッセージを受信し、メッセージ交換を終了する方法を学習します。これらの手順は、データベース エンジンの発信側インスタンスと同じコンピュータで実行されている Management Studio のコピーから実行してください。

手順

InitiatorDB データベースへの切り替え

  • 次のコードをコピーし、クエリ エディタ ウィンドウに貼り付けます。次にこのコードを実行し、コンテキストを InstInitiatorDB データベースに戻します。このデータベースで応答メッセージを受信し、メッセージ交換を終了します。

    USE InstInitiatorDB;
    GO
    

応答の受信とメッセージ交換の終了

  • 次のコードをコピーし、クエリ エディタ ウィンドウに貼り付けます。次にこのコードを実行し、応答メッセージを受信してメッセージ交換を終了します。RECEIVE ステートメントは、InstInitiatorQueue から応答メッセージを取得します。END CONVERSATION ステートメントは、発信側でのメッセージ交換を終了します。最後の SELECT ステートメントは、応答メッセージのテキストを表示し、そのメッセージが前の手順で送信したメッセージと同じであることを確認できるようにします。

    DECLARE @RecvReplyMsg NVARCHAR(100);
    DECLARE @RecvReplyDlgHandle UNIQUEIDENTIFIER;
    
    BEGIN TRANSACTION;
    
    WAITFOR
    ( RECEIVE TOP(1)
        @RecvReplyDlgHandle = conversation_handle,
        @RecvReplyMsg = message_body
      FROM InstInitiatorQueue
    ), TIMEOUT 1000;
    
    END CONVERSATION @RecvReplyDlgHandle;
    
    -- Display recieved request.
    SELECT @RecvReplyMsg AS ReceivedReplyMsg;
    
    COMMIT TRANSACTION;
    GO
    

次の手順

これでチュートリアルは終わりです。チュートリアルは、概要の紹介を目的としています。使用可能なすべてのオプションについて説明しているわけではありません。チュートリアルでは、ロジックやエラー処理を単純化しているため、実稼働環境では使用しないでください。効率的で信頼度の高い、堅牢なメッセージ交換を行うには、このチュートリアルに例示されているコードよりも複雑なコードが必要になります。

Service Broker チュートリアルに戻る

Service Broker チュートリアル