Занятие 3. Завершение объектов целевой стороны диалога
Добавления: 15 сентября 2007 г.
На этом занятии вы узнаете, как создавать связанный сервер и маршруты от целевого экземпляра Database Engine к инициирующему экземпляру. Выполните эти шаги из копии среды Management Studio, запущенной на том же компьютере, на котором находится целевой экземпляр.
Процедуры
Создание ссылок на объекты инициатора
Скопируйте и вставьте следующий код в окно редактора запросов. Измените предложение 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
Создать маршруты
Скопируйте и вставьте следующий код в окно редактора запросов. Измените строку 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
Работа в сети и удаленное обеспечение безопасности