Condividi tramite


Lezione 3: Completamento degli oggetti di conversazione di destinazione

In questa lezione verranno descritte le procedure per creare il server collegato e le route dall'istanza di destinazione di Motore di database all'istanza dell'initiator. Eseguire questi passaggi da una copia di Management Studio in esecuzione nello stesso computer come istanza di destinazione.

Procedure

Creazione di riferimenti agli oggetti dell'initiator

  • Copiare e incollare il codice seguente in una finestra dell'editor di query. Modificare la clausola FROM FILE in modo che faccia riferimento alla cartella in cui è stato copiato il file InstInitiatorCertficate.cer nel passaggio 4 della lezione 2. Eseguire quindi il codice per creare un utente dell'Initiator ed effettuare il pull nel certificato dell'Initiator.

    USE InstTargetDB
    GO
    CREATE USER InitiatorUser WITHOUT LOGIN;
    
    CREATE CERTIFICATE InstInitiatorCertificate
       AUTHORIZATION InitiatorUser
       FROM FILE = 
    N'C:\storedcerts\$ampleSSBCerts\InstInitiatorCertificate.cer';
    GO
    

Creazione di route

  • Copiare e incollare il codice seguente in una finestra dell'editor di query. Impostare la stringa MyInitiatorComputer sul nome del computer in cui è in esecuzione l'istanza dell'initiator. Eseguire quindi il codice per creare route nel servizio di destinazione e nel servizio Initiator e un'associazione al servizio remoto per associare InitiatorUser alla route del servizio Initiator.

    Nelle istruzioni CREATE ROUTE seguenti si presuppone che non vi siano nomi di servizio duplicati nell'istanza di destinazione. Se più database nell'istanza di destinazione contengono servizi con lo stesso nome, utilizzare la clausola BROKER_INSTANCE per specificare il database in cui si desidera aprire una conversazione.

    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
    

Passaggi successivi

È stata completata correttamente la configurazione del database di destinazione per supportare una conversazione tra Service Broker e il database dell'initiator. Nel passaggio successivo si inizierà una conversazione nel database dell'initiator e si invierà un messaggio di richiesta al servizio di destinazione. Vedere Lezione 4: Inizio della conversazione.