Partager via


Leçon 4 : début de la conversation

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 de l'initiateur à l'instance de la cible. Exécutez ces étapes à partir d'une copie de Management Studio exécutée sur le même ordinateur que l'instance de l'initiateur.

Procédures

Basculer vers la base de données InitiatorDB

  • Copiez et collez le code suivant dans une fenêtre de l'éditeur de requête. Puis, exécutez-le pour basculer le contexte vers la base de données InstInitiatorDB dans laquelle vous allez engager 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 de l'éditeur de requête. Puis, exécutez-le pour engager une conversation et envoyer un message de demande à //TgtDB/2InstSample/TargetService dans InstTargetDB. Le code doit être exécuté en un seul 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 engager la conversation, puis génère un message de demande. Puis, il utilise 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 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 venez d'engager une conversation et d'envoyer le message de demande au service de la cible. Vous allez ensuite recevoir le message de demande dans la file d'attente de la cible et envoyer un message de réponse au service de l'initiateur. Consultez Leçon 5: réception d'une demande et envoi d'une réponse.