第 6 课:接收答复并结束会话

适用于: SQL Server(所有受支持的版本) Azure SQL 托管实例

在本课中,您将学习接收来自目标服务的答复消息和结束会话。 打开 SQL Server Management Studio (SSMS) 并连接到具有 Service Broker 发起方的 SQL Server。 然后从 SSMS 的查询窗口运行这些步骤。

过程

切换到 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
    

后续步骤

本步骤将结束教程。 教程只是简要的概述, 并不能说明所有可能的情况。 教程使用的是简化的逻辑和错误处理方法,不应用于生产环境。 若要创建高效、可靠和强健的会话,您需要比教程中的示例更为复杂的代码。

另请参阅