Lição 3: Concluindo os objetos de conversação de destino

Nesta lição você aprenderá a criar o servidor vinculado e as rotas da instância de destino do Mecanismo de Banco de Dados para a instância do iniciador. Execute estas etapas de uma cópia do Management Studio que seja executada no mesmo computador da instância de destino.

Procedimentos

Criar referências para objetos de iniciador

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Altere a cláusula FROM FILE para que ela faça referência à pasta na qual o arquivo InstInitiatorCertficate.cer foi copiado na Etapa 4 da Lição 2. Em seguida, execute o código para criar um iniciador e extrair o certificado de iniciador.

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

Criar rotas

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Altere a cadeia de caracteres MyInitiatorComputer para o nome do computador que está executando a instância de iniciador. Em seguida, execute o código para criar rotas para o serviço de destino e serviço iniciador, e uma associação de serviço remoto que vincule o InitiatorUser à rota de serviço de iniciador.

    As instruções CREATE ROUTE a seguir supõem que não há nenhum nome de serviço duplicado na instância de destino. Se vários bancos de dados na instância de destino contiverem serviços com um mesmo nome, use a cláusula BROKER_INSTANCE para especificar o banco de dados em que a conversação será aberta.

    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
    

Próximas etapas

Você terminou de configurar com êxito o banco de dados de destino para oferecer suporte à conversação Service Broker para o banco de dados do iniciador. A seguir, você começará uma conversação no banco de dados iniciador e enviará uma mensagem de solicitação para o serviço de destino. Consulte Lição 4: Começando a conversação.