Поделиться через


Занятие 3. Завершение объектов целевой стороны диалога

Добавления: 15 сентября 2007 г.

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

Процедуры

Создание ссылок на объекты инициатора

  1. Скопируйте и вставьте следующий код в окно редактора запросов. Измените предложение FROM FILE, чтобы оно ссылалось на папку, в которую на шаге 4 занятия 2 был скопирован файл InstInitiatorCertficate.cer. Затем выполните программный код, создающий пользователя инициатора и получающий сертификат инициатора.

    USE InstTargetDB
    GO
    CREATE USER InitiatorUser WITHOUT LOGIN;
    
    CREATE CERTIFICATE InstInitiatorCertificate
       AUTHORIZATION InitiatorUser
       FROM FILE = 
    N'C:\storedcerts\$ampleSSBCerts\InstInitiatorCertificate.cer';
    GO
    

Создать маршруты

  1. Скопируйте и вставьте следующий код в окно редактора запросов. Измените строку MyInitiatorComputer на имя компьютера, на котором выполняется инициирующий экземпляр. Затем выполните код для создания маршрутов к целевой службе и вызывающей службе, а также привязку удаленной службы, связывающую InitiatorUser с маршрутом вызывающей службы.

    В следующих инструкциях CREATE ROUTE предполагается, что в целевом экземпляре отсутствуют повторяющиеся имена служб. Если на целевом экземпляре в нескольких базах данных имеются службы с одинаковым именем, с помощью предложения BROKER_INSTANCE задайте базу данных, для которой нужно открыть диалог.

    DECLARE @Cmd NVARCHAR(4000);
    
    SET @Cmd = N'USE InstTargetDB;
    CREATE ROUTE InstInitiatorRoute
    WITH SERVICE_NAME =
           N''//InstDB/2InstSample/InitiatorService'',
         ADDRESS = N''TCP:// MyInitiatorComputer:4022'';';
    
    EXEC (@Cmd);
    
    SET @Cmd = N'USE msdb
    CREATE ROUTE InstTargetRoute
    WITH SERVICE_NAME =
            N''//TgtDB/2InstSample/TargetService'',
         ADDRESS = N''LOCAL''';
    
    EXEC (@Cmd);
    GO
    GRANT SEND
          ON SERVICE::[//TgtDB/2InstSample/TargetService]
          TO InitiatorUser;
    GO
    CREATE REMOTE SERVICE BINDING InitiatorBinding
          TO SERVICE N'//InstDB/2InstSample/InitiatorService'
          WITH USER = InitiatorUser;
    GO
    

Следующие шаги

Вы успешно закончили настраивать целевую базу данных с тем, чтобы она поддерживала диалог Service Broker с базой данных инициатора. После этого можно начать диалог в базе данных инициатора и отправить сообщение-запрос целевой службе. См. раздел Занятие 4. Начало диалога.

См. также

Другие ресурсы

CREATE REMOTE SERVICE BINDING (Transact-SQL)
CREATE ROUTE (Transact-SQL)
CREATE USER (Transact-SQL)
EXECUTE (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
Маршрутизация и работа в сети компонента Service Broker
Работа в сети и удаленное обеспечение безопасности

Справка и поддержка

Получение помощи по SQL Server 2005