Partager via


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

  1. 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

  1. 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

Aide et Informations

Assistance sur SQL Server 2005