Implémenter l’activation interne dans Service Broker

S’applique à :SQL ServerAzure SQL Managed Instance

Ce tutoriel est destiné aux nouveaux utilisateurs de Service Broker qui maîtrisent cependant les concepts de base de données et les instructions Transact-SQL. Il aide les nouveaux utilisateurs à commencer en leur montrant comment implémenter une procédure stockée d’activation interne pour traiter les messages Service Broker.

Les concepts

Ce tutoriel vous montre comment créer les objets de base de données requis pour prendre en charge une conversation Service Broker de demande-réponse de base à l’aide d’une procédure stockée d’activation interne. Vous démarrez ensuite une conversation et l’utilisez pour transmettre des messages.

Chaque conversation Service Broker comporte deux extrémités : l'initiateur et la cible de la conversation. Dans une conversation de type demande-réponse, un message de demande est envoyé par l'initiateur à la cible, qui renvoie un message de réponse. L'activation interne de Service Broker peut être utilisée pour exécuter une procédure stockée dès que des messages doivent être traités. Service Broker peut exécuter plusieurs copies de la procédure stockée si de nombreux messages sont transmis. Ce didacticiel vous montre comment créer une procédure stockée qui reçoit les messages de demande au niveau de la cible et comment configurer la cible de sorte qu'elle utilise l'activation interne pour exécuter la procédure stockée.

Cette leçon vous guide pour effectuer les tâches suivantes :

  • créer un service et une file d'attente pour la cible et pour l'initiateur ;

  • créer un message de type demande et un message de type réponse ;

  • créer un contrat qui spécifie que les messages de demande passent de l'initiateur à la cible, et que les messages de réponse passent de la cible à l'initiateur.

  • créer une procédure stockée que reçoit les messages de demande de la file d'attente cible et envoie des messages de réponse à l'initiateur ;

  • modifier la file d'attente cible de manière à permettre l'activation interne de la procédure stockée.

Vous effectuez ensuite une conversation de base :

  • commencer la conversation ;

  • envoyer une demande de l'initiateur à la cible ;

  • Service Broker active ensuite la procédure stockée. La procédure stockée reçoit la requête à la cible et envoie une réponse à l’initiateur.

  • recevoir la réponse au niveau de l'initiateur ;

  • terminer la conversation côté initiateur ;

  • Service Broker active ensuite la procédure stockée une deuxième fois et la procédure stockée met fin au côté cible de la conversation.

Les messages ne sont pas transmis sur un réseau pour les conversations qui ont les deux extrémités dans la même instance du moteur de base de données. La sécurité et les autorisations du moteur de base de données limitent l’accès aux principes autorisés. Le chiffrement réseau n’est pas nécessaire pour ce scénario.

Ce tutoriel est divisé en leçons suivantes.

Leçon Descriptif
Leçon 1 : Créer les objets de conversation de base Créez les types de messages, les contrats, les services et les files d’attente nécessaires pour prendre en charge une conversation Service Broker de base.
Leçon 2 : Créer une procédure d’activation interne Créez la procédure stockée qui recevra les messages de la file d’attente cible, puis modifiez la file d’attente cible pour spécifier l’activation interne.
Leçon 3 : Commencer une conversation et transmettre des messages Terminez une conversation de base en démarrant la conversation et en transmettant un message de demande de l’initiateur à la cible. La procédure stockée d’activation interne reçoit le message de requête et retourne un message de réponse. Vous terminez ensuite le côté initiateur de la conversation, et la procédure stockée met fin au côté cible de la conversation.
Leçon 4 : Supprimer les objets de conversation Supprimez les objets créés pour prendre en charge la conversation.

Configuration requise

Pour suivre ce tutoriel, vous devez être familiarisé avec le langage Transact-SQL et pouvoir utiliser l’éditeur de requêtes du moteur de base de données dans SQL Server Management Studio. Vous devez être membre de l’db_ddladmin ou db_owner rôles de base de données fixes pour l’exemple AdventureWorks2025 de base de données, ou du rôle serveur fixe sysadmin .

Les programmes suivants doivent être installés sur votre système :