Lezione 3: Completamento degli oggetti di conversazione di destinazione

Si applica a:SQL ServerIstanza gestita di SQL di Azure

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

Procedure

Creare riferimenti a oggetti dell'iniziatore

  • Copiare il seguente codice e incollarlo nella 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 iniziatore ed estrarre il certificato dell'iniziatore.

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

Creare route

  • Copiare il seguente codice e incollarlo nella 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.

    Le seguenti istruzioni CREATE ROUTE presuppongono che nell'istanza di destinazione non siano presenti nomi di servizio doppi. 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. Iniziare quindi una conversazione nel database dell'iniziatore e inviare un messaggio di richiesta al servizio di destinazione. Per altre informazioni, vedere Lezione 4: Inizio della conversazione.

Vedi anche