第 3 課:完成目標交談物件

適用于:SQL ServerAzure 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 課:開始交談

另請參閱