Partager via


Leçon 1 : Création des objets de conversation

Nouveau : 15 septembre 2007

Dans cette leçon, vous allez apprendre à créer tous les objets qui permettent à une base de données de prendre en charge une conversation dans la base de données.

Procédures

Activer Service Broker et basculer vers la base de données AdventureWorks

  1. Copiez et collez le code suivant dans une fenêtre d'éditeur de requête, puis exécutez-le de manière à garantir que Service Broker est activé dans la base de données AdventureWorks et basculez le contexte vers la base de données.

    USE master;
    GO
    ALTER DATABASE AdventureWorks
          SET ENABLE_BROKER;
    GO
    USE AdventureWorks;
    GO
    

Créer les types de messages

  1. Copiez et collez le code suivant dans une fenêtre d'éditeur de requête, puis exécutez-le de manière à créer les types de messages de la conversation. Les objets Service Broker étant souvent référencés dans plusieurs instances du Moteur de base de données, le nom attribué à la plupart des objets Service Broker utilise le format URI. Cela permet de garantir leur unicité sur plusieurs ordinateurs. Ces deux types de messages spécifient que Service Broker validera uniquement le fait que les messages sont des documents XML bien formés, et qu'il ne validera pas le XML par rapport à un schéma spécifique.

    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/RequestMessage]
           VALIDATION = WELL_FORMED_XML;
    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/ReplyMessage]
           VALIDATION = WELL_FORMED_XML;
    GO
    

Créer le contrat

  1. Copiez et collez le code suivant dans une fenêtre d'éditeur de requête, puis exécutez-le de manière à créer le contrat de la conversation. Le contrat spécifie que les conversations qui l'utilisent doivent envoyer des messages du type //AWDB/1DBSample/RequestMessage entre l'initiateur et la cible, et des messages du type //AWDB/1DBSample/ReplyMessage entre la cible à l'initiateur.

    CREATE CONTRACT [//AWDB/1DBSample/SampleContract]
          ([//AWDB/1DBSample/RequestMessage]
           SENT BY INITIATOR,
           [//AWDB/1DBSample/ReplyMessage]
           SENT BY TARGET
          );
    GO
    

Créer la file d'attente et le service côté cible

  1. Copiez et collez le code suivant dans une fenêtre d'éditeur de requête, puis exécutez-le de manière à créer la file d'attente et le service utilisés pour la cible. Les files d'attente étant référencées à partir de la même base de données de manière semblable aux tables et aux vues, les noms de file d'attente sont mis en forme comme les noms de table ou de vue. L'instruction CREATE SERVICE associe le service à la file d'attente TargetQueue2DB. Par conséquent, tous les messages envoyés au service seront reçus dans la file d'attente TargetQueue2DB. L'instruction CREATE SERVICE spécifie également que seules les conversations qui utilisent le contrat //AWDB/1DBSample/SampleContract créé précédemment peuvent utiliser le service comme service cible.

    CREATE QUEUE TargetQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/TargetService]
           ON QUEUE TargetQueue1DB
           ([//AWDB/1DBSample/SampleContract]);
    GO
    

Créer la file d'attente et le service côté initiateur

  1. Copiez et collez le code suivant dans une fenêtre d'éditeur de requête, puis exécutez-le de manière à créer la file d'attente et le service utilisés pour l'initiateur. Dans la mesure où aucun nom de contrat n'est spécifié, aucun autre service ne peut utiliser ce service comme service cible.

    CREATE QUEUE InitiatorQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/InitiatorService]
           ON QUEUE InitiatorQueue1DB;
    GO
    

Étapes suivantes

Vous avez configuré la base de données AdventureWorks de manière à ce qu'elle prenne en charge une conversation entre le service //AWDB/1DBSample/InitiatorService et le service //AWDB/1DBSample/TargetService. Vous allez ensuite conduire une conversation en utilisant cette configuration. Consultez Leçon 2 : Démarrage d'une conversation et transmission de messages.

Voir aussi

Autres ressources

ALTER DATABASE (Transact-SQL)
CREATE MESSAGE TYPE (Transact-SQL)
CREATE CONTRACT (Transact-SQL)
CREATE QUEUE (Transact-SQL)
CREATE SERVICE (Transact-SQL)
Architecture des conversations
Architecture du service

Aide et Informations

Assistance sur SQL Server 2005