Занятие 6. Получение ответа и завершение диалога

На этом занятии будет рассмотрено получение ответного сообщения от целевой службы и завершение диалога. Выполните эти шаги в копии среды Management Studio, которая работает на том же компьютере, что и инициирующий экземпляр компонента Database Engine.

Процедуры

Переключение на базу данных 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