Leçon 4 : Démarrage de la conversation
Nouveau : 15 septembre 2007
Dans cette leçon, vous allez apprendre à démarrer une conversation entre deux instances du Moteur de base de données et à envoyer un message de demande de l'instance initiatrice à l'instance cible. Réalisez ces procédure à partir d'une copie de Management Studio qui s'exécute sur le même ordinateur que l'instance initiatrice.
Procédures
Basculer vers la base de données InitiatorDB
Copiez et collez le code suivant dans une fenêtre d'éditeur de requête, puis exécutez-le de manière à basculer le contexte vers la base de données InstInitiatorDB sur laquelle vous allez lancer la conversation.
USE InstInitiatorDB; GO
Démarrer une conversation et envoyer un message de demande
Copiez et collez le code suivant dans une fenêtre d'éditeur de requête, puis exécutez-le de manière à démarrer une conversation et à envoyer un message de demande au service //TgtDB/2InstSample/TargetService dans la base de données InstTargetDB. Le code doit être exécuté dans un bloc car une variable est utilisée pour passer un handle de dialogue de l'instruction BEGIN DIALOG à l'instruction SEND. Le lot exécute l'instruction BEGIN DIALOG pour commencer la conversation, puis génère un message de demande. Il utilise ensuite le handle de dialogue dans une instruction SEND pour envoyer le message de demande sur cette conversation. La dernière instruction SELECT affiche simplement le texte du message qui a été envoyé.
DECLARE @InitDlgHandle UNIQUEIDENTIFIER; DECLARE @RequestMsg NVARCHAR(100); BEGIN TRANSACTION; BEGIN DIALOG @InitDlgHandle FROM SERVICE [//InstDB/2InstSample/InitiatorService] TO SERVICE N'//TgtDB/2InstSample/TargetService' ON CONTRACT [//BothDB/2InstSample/SimpleContract] WITH ENCRYPTION = ON; SELECT @RequestMsg = N'<RequestMsg>Message for Target service.</RequestMsg>'; SEND ON CONVERSATION @InitDlgHandle MESSAGE TYPE [//BothDB/2InstSample/RequestMessage] (@RequestMsg); SELECT @RequestMsg AS SentRequestMsg; COMMIT TRANSACTION; GO
Étapes suivantes
Vous avez démarré une conversation et envoyé le message de demande au service cible. Vous allez ensuite recevoir le message de demande de la file d'attente cible et envoyer un message de réponse au service initiateur. Consultez Leçon 5 : Réception d'une demande et envoi d'une réponse.
Voir aussi
Autres ressources
BEGIN DIALOG CONVERSATION (Transact-SQL)
SEND (Transact-SQL)
Service Broker Programming Basics