Share via


Création de files d'attente Service Broker

Une file d'attente contient les messages entrants d'un service. Pour simplifier le traitement, les applications créent généralement une file d'attente par service au lieu d'utiliser la même file d'attente pour plusieurs services.

Lorsque l'option de rétention est définie pour une file d'attente, les messages sont conservés une fois leur traitement achevé. Dans la mesure où la rétention diminue les performances d'une application, spécifiez la rétention uniquement si l'application requiert un accès permanent aux messages exacts qui ont été envoyés et reçus. Pour plus d'informations sur la rétention des messages, consultez Rétention des messages.

Pour les applications qui n'utilisent pas l'activation interne, ne spécifiez pas de clause d'activation sur la définition de la file d'attente.

Pour les applications qui utilisent l'activation interne, la définition de la file d'attente inclut le nom de la procédure stockée, le nombre maximal d'agents de lecture autorisé pour que SQL Server puisse démarrer, ainsi que le nom de l'entité de sécurité de la base de données dont l'identité sera empruntée avant le démarrage de la procédure stockée.

Le nom d'une file d'attente n'est pas inclus dans le format réseau d'un message. Les files d'attente sont des objets appartenant à des schémas. Par conséquent, les noms de file d'attente respectent les conventions d'affectation de noms de SQL Server. Pour plus d'informations sur l'attribution de nom, consultez Attribution de noms aux objets Service Broker.

Activation de procédure stockée

Une file d'attente peut être associée à une procédure stockée. SQL Server active la procédure stockée lorsque la file d'attente contient des messages à traiter. Ce processus d'activation automatique permet à une application Service Broker d'évoluer dynamiquement en fonction de la charge de traitement actuelle sur l'application. Chaque procédure stockée activée par Service Broker s'exécute dans son propre thread. Lorsqu'une file d'attente spécifie une procédure stockée, Service Broker démarre de nouvelles instances de la procédure stockée, à hauteur du nombre maximal d'instances spécifié pour la file d'attente.

Une procédure stockée activée traite généralement un ou plusieurs messages, et elle renvoie une réponse au service d'où proviennent les messages. Lorsque la fréquence d'arrivée des messages est supérieure à la vitesse de leur traitement par la procédure stockée, Service Broker démarre une autre instance de la procédure stockée, à hauteur du nombre maximal défini par la file d'attente. Une procédure stockée activée s'arrête généralement lorsque aucun message n'est disponible dans la file d'attente pendant un certain temps.

Pour la conception d'applications Service Broker, le recours aux procédures stockées d'activation est une méthode courante. Toutefois, d'autres conceptions peuvent être plus adaptées aux besoins d'une application spécifique. Une application qui peut exécuter des lots Transact-SQL dans SQL Server peut envoyer et recevoir des messages. Les messages peuvent également être traités par une procédure stockée, que la procédure stockée soit activée par SQL Server, lancée par l'Agent SQL Server, exécutée par une application externe ou exécutée de manière interactive à partir d'un outil tel que SQL Server Management Studio ou SQL Server ExpressManagement Studio.