第 3 課:完成目標交談物件
適用于:SQL Server
Azure SQL 受控執行個體
在這一課,您將瞭解如何建立連結的伺服器,並將資料庫引擎的目標實例路由傳送至啟動器實例。 從與目標實例相同的電腦上執行的 Management Studio 複本執行這些步驟。
程序
建立起始端物件的參考
將下列程式碼複製並貼入 [查詢編輯器] 視窗中。 變更 FROM FILE 子句,以參考您從第 2 課的步驟 4 複製 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 課:開始交談。