Share via


Leçon 3 : exécution des objets de conversation de la cible

Dans cette leçon, vous apprendrez à créer le serveur lié et les itinéraires à partir de l'instance de la cible du Moteur de base de données vers l'instance de l'initiateur. Exécutez ces étapes à partir d'une copie de Management Studio exécutée sur le même ordinateur que l'instance de la cible.

Procédures

Créer des références à des objets de l'initiateur

  • Copiez et collez le code suivant dans une fenêtre de l'éditeur de requête. Modifiez la clause FROM FILE pour référencer le dossier dans lequel vous avez copié le fichier InstInitiatorCertficate.cer à l'étape 4 de la leçon 2. Puis, exécutez le code pour créer un utilisateur de l'initiateur et extraire le certificat de l'initiateur.

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

Créer des itinéraires

  • Copiez et collez le code suivant dans une fenêtre de l'éditeur de requête. Attribuez à la chaîne MyInitiatorComputer le nom de l'ordinateur qui exécute votre instance de l'initiateur. Puis, exécutez le code pour créer des itinéraires vers le service de la cible et le service de l'initiateur, ainsi qu'une liaison de service distant qui associe InitiatorUser à l'itinéraire du service de l'initiateur.

    Les instructions CREATE ROUTE suivantes supposent que l'instance de la cible ne contient pas de noms de service en double. Si plusieurs bases de données sur l'instance de la cible contiennent des services qui portent le même nom, utilisez la clause BROKER_INSTANCE pour spécifier la base de données sur laquelle vous souhaitez ouvrir une conversation.

    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
    

Étapes suivantes

Vous venez de configurer la base de données de la cible pour qu'elle prenne en charge une conversation Service Broker avec la base de données de l'initiateur. Vous allez ensuite engager une conversation dans la base de données de l'initiateur et envoyer un message de demande au service de la cible. Consultez Leçon 4 : début de la conversation.