Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Managed Instance
Dans cette leçon, vous allez apprendre à générer 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 AdventureWorks2008R2
Remarque
Les exemples de code de cet article ont été testés à l’aide de l’exemple de base de données AdventureWorks2025, que vous pouvez télécharger à partir de la Microsoft SQL Server Samples and Community Projects page d’accueil.
Copiez et collez le code suivant dans une fenêtre de l'éditeur de requête. Puis, exécutez-le pour vous assurer que Service Broker est activé dans la base de données AdventureWorks2008R2 et basculez le contexte vers la base de données.
USE master; GO ALTER DATABASE AdventureWorks2008R2 SET ENABLE_BROKER; GO USE AdventureWorks2008R2; GO
Créer les types de messages
Copiez et collez le code suivant dans une fenêtre éditeur de requête, puis exécutez-la pour créer les types de messages pour la conversation. Comme les objets Service Broker sont souvent référencés dans plusieurs instances du Moteur de base de données, la plupart des objets Service Broker portent des noms dans un format URI. Cela permet de s’assurer qu’ils sont uniques sur plusieurs ordinateurs. Ces deux types de messages spécifient que Service Broker valide uniquement que les messages sont des documents XML bien formés et qu’ils ne valident pas le code 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
Copiez et collez le code suivant dans une fenêtre éditeur de requête, puis exécutez-la pour créer le contrat pour la conversation. Le contrat spécifie que les conversations qui l'utilisent doivent envoyer des messages de type //AWDB/1DBSample/RequestMessage de l'initiateur à la cible et des messages de type //AWDB/1DBSample/ReplyMessage de 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 cible et le service
Copiez et collez le code suivant dans une fenêtre de l'éditeur de requête. Ensuite, exécutez-le pour 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 comme des tables et des vues, leurs noms sont mis en forme comme des noms de table ou de vue. L’instruction
CREATE SERVICEassocie le service auTargetQueue1DB. Par conséquent, tous les messages envoyés au service seront reçus dans leTargetQueue1DB. SpécifieCREATE SERVICEégalement que seules les conversations qui utilisent AWDB/1DBSample/SampleContract créées précédemment peuvent utiliser le service en tant que 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 de l’initiateur
Copiez et collez le code suivant dans une fenêtre de l’Éditeur de requête, puis exécutez-la pour créer la file d’attente et le service utilisés pour l’initiateur. Comme aucun nom de contrat n'est spécifié, aucun autre service ne peut utiliser ce service comme service de la cible.
CREATE QUEUE InitiatorQueue1DB; CREATE SERVICE [//AWDB/1DBSample/InitiatorService] ON QUEUE InitiatorQueue1DB; GO
Tâches associées
- MODIFIER LA BASE DE DONNÉES (Transact-SQL)
- CREATE MESSAGE TYPE (Transact-SQL) - Commande pour créer un type de message dans SQL Server.
- CREATE CONTRACT (Transact-SQL)
- CREATE QUEUE (Transact-SQL)
- CREATE SERVICE (Transact-SQL)
- Architecture de conversation
- Architecture de service
Étape suivante
Vous avez correctement configuré AdventureWorks2008R2 pour prendre en charge une conversation entre AWDB/1DBSample/InitiatorService et AWDB/1DBSample/TargetService. Ensuite, vous terminez une conversation à l’aide de la configuration.