Créer des applications Service Broker

S’applique à :SQL ServerAzure SQL Managed Instance

Cette section fournit une vue d’ensemble de la structure d’une application Service Broker, présente certaines des stratégies les plus courantes pour le démarrage d’une application qui utilise Service Broker, et décrit les étapes de base pour la réception et le traitement des messages.

L’application d’un service de lancement utilise l’instruction BEGIN DIALOG pour spécifier des informations sur les services sur chaque point de terminaison et le contrat de service que l’application utilisera pour communiquer. L’application utilise l’instruction SEND pour envoyer le premier message de la conversation au service cible. L’application doit être prête à recevoir et traiter les messages de Service Broker, même si le contrat n’autorise pas le service cible à retourner des messages. L'application à l'origine de la conversation est souvent implémentée sous la forme de deux composants distincts. Un composant entame la conversation ; l'autre composant traite les messages qui arrivent dans la file d'attente.

L'application pour un service cible reçoit et traite les messages émanant du service initiateur. L’application doit également être prête à recevoir des messages de Service Broker et à les traiter.

Selon les besoins du service, différentes méthodes sont disponibles pour démarrer la partie de l'application qui traite la file d'attente. Pour plus d’informations sur le démarrage d’une application qui utilise Service Broker, consultez Choisir une stratégie de démarrage.

Toutefois, l’application démarre une transaction et utilise l’instruction RECEIVE pour mettre un message en file d’attente. L'application extrait les données des messages et procède au traitement nécessaire. Si nécessaire, l’application utilise l’instruction SEND pour envoyer des messages à l’autre côté de la conversation. L'application valide ensuite la transaction. Pour plus d’efficacité, l’application peut traiter plusieurs messages au sein de la même transaction. Les services qui conservent l’état utilisent souvent l’instruction GET CONVERSATION GROUP pour verrouiller un groupe de conversations, récupérer l’état du groupe de conversation, puis traiter plusieurs messages pour le groupe de conversation.

La conversation continue, l’utilisation SEND et RECEIVE les instructions pour transmettre des messages entre les points de terminaison. À tout moment, si nécessaire, l’un ou l’autre participant à la conversation peut utiliser BEGIN DIALOG pour démarrer une conversation avec un autre service pour obtenir des informations supplémentaires. Par exemple, une application qui traite une notification d’événement peut lancer une autre conversation avec un service qui fournit des informations de personnel afin de récupérer les informations de contact actuelles avant d’envoyer une alerte.

Lorsque la conversation a atteint son objectif, l’application au niveau du point de terminaison approprié utilise une END CONVERSATION instruction pour mettre fin à la conversation. L’autre participant reçoit également le END CONVERSATION message et émet un END CONVERSATION message de son côté. Une fois que les deux participants ont émis des END CONVERSATION messages, la conversation se termine.

Si une erreur se produit, un participant à la conversation peut indiquer un échec en terminant la conversation à l’aide de la WITH ERROR clause. L’utilisation de la WITH ERROR clause met fin à la conversation et envoie un message d’erreur Service Broker à l’autre participant de la conversation.

Si Service Broker détecte une erreur ou si la durée de vie de la conversation expire, Service Broker met fin à la conversation et retourne un message d’erreur aux participants actifs. Si Service Broker ne peut pas établir une conversation, le seul participant actif est l’application de lancement et l’erreur est remise au service de lancement. Si un participant a déjà mis fin à la conversation, le message d'erreur est remis à l'autre participant. Dans le cas contraire, le message d'erreur est remis aux deux participants à la conversation.

Dans cette section

Article Descriptif
Choisir une stratégie de démarrage Présente certaines des stratégies les plus courantes pour le démarrage d’une application qui utilise Service Broker.
Plan de l’application Service Broker Décrit les étapes élémentaires à suivre pour la réception et le traitement des messages.