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