Lección 3: Completar los objetos de conversación de destino

En esta lección, obtendrá información sobre cómo crear el servidor vinculado y las rutas de la instancia de destino de Database Engine (Motor de base de datos) a la instancia del iniciador. Ejecute estos pasos desde una copia de Management Studio que se ejecute en el mismo equipo que la instancia de destino.

Procedimientos

Crear las referencias a los objetos del iniciador

  • Copie y pegue el código siguiente en una ventana del Editor de consultas. Cambie la cláusula FROM FILE para hacer referencia a la carpeta en la que copió el archivo InstInitiatorCertficate.cer del paso 4 de la lección 2. A continuación, ejecute el código para crear un usuario del iniciador y extraer el certificado del iniciador.

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

Crear rutas

  • Copie y pegue el código siguiente en una ventana del Editor de consultas. Cambie la cadena MyInitiatorComputer por el nombre del equipo que ejecute su instancia del iniciador. A continuación, ejecute el código para crear las rutas del servicio de destino y del servicio iniciador, y un enlace de servicio remoto que asocie InitiatorUser a la ruta del servicio iniciador.

    Las instrucciones CREATE ROUTE siguientes suponen que no hay nombres de servicio duplicados en la instancia de destino. Si varias bases de datos de la instancia de destino contienen servicios con el mismo nombre, utilice la cláusula BROKER_INSTANCE para especificar la base de datos en la que desea abrir una conversación.

    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
    

Pasos siguientes

Ha configurado correctamente la base de datos de destino para admitir una conversación de Service Broker con la base de datos del iniciador. Después, iniciará una conversación en la base de datos del iniciador y enviará un mensaje de solicitud al servicio de destino. Vea Lección 4: Iniciar la conversación.