第 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 教程