Gestion du transfert de messages (Service Broker)

La fonction de transfert des messages permet à une instance SQL Server de faire suivre les messages Service Broker entre plusieurs autres instances de SQL Server. Certains points sont à prendre en considération lors de la gestion d'une instance SQL Server assurant le transfert de messages.

Service Broker utilise les itinéraires de la base de données msdb pour les messages transférés et les messages entrants. Une fois la configuration du routage modifiée pour le transfert des messages, vous devez effectuer une sauvegarde de msdb.

SQL Server stocke en mémoire les messages à transférer vers une structure de données appelée file d'attente de transmission. L'option du point de terminaison MESSAGE_FORWARDING_SIZE définit la taille maximale de mémoire (en mégaoctets) que SQL Server peut utiliser pour le stockage des messages à transférer. SQL Server alloue la mémoire nécessaire pour conserver ces messages dans la limite qui est définie. Si l'arrivée d'un message provoque un dépassement de la quantité de mémoire autorisée pour la file d'attente de transmission, SQL Server supprime le message. En revanche, si un message volumineux est fragmenté, l'instance chargée du transfert des messages ne réunit pas les fragments, elle se contente de transférer à destination les différentes parties du message. L'instance peut ainsi transférer un message dont la taille est supérieure à la valeur de l'option MESSAGE_FORWARDING_SIZE définie pour l'instance.

Une instance qui assure le transfert de messages fonctionne souvent comme un pont jeté entre deux réseaux. Concernant cette configuration, la taille définie par l'option MESSAGE_FORWARDING_SIZE du point de terminaison Service Broker peut être relativement importante puisque tout le trafic entre les deux réseaux transite via cette instance.

La vue de gestion dynamique sys.dm_broker_forwarded_messages affiche les messages stockés pour le transfert.