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.