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

在這一課,您將學會從 Database Engine 目標執行個體到起始端執行個體,建立連結的伺服器和路由。請從與目標執行個體在相同電腦上執行的 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 課:開始交談>。