Service Broker avec les groupes de disponibilité Always On (SQL Server)
S'applique à : SQL Server
Cette rubrique contient des informations sur la configuration de Service Broker afin d'utiliser Groupes de disponibilité Always On dans SQL Server.
Recevoir des messages distants à partir d’autres instances Service Broker
Assurez-vous que le groupe de disponibilité possède un écouteur.
Pour plus d’informations, consultez Créer ou configurer un écouteur de groupe de disponibilité (SQL Server).
Vérifiez que le point de terminaison Service Broker existe et est configuré correctement.
Sur chaque instance de SQL Server qui héberge un réplica de disponibilité pour le groupe de disponibilité, configurez le point de terminaison Service Broker, comme suit :
Définissez LISTENER_IP sur « ALL ». Ce paramètre permet les connexions à une adresse IP valide liée à l'écouteur du groupe de disponibilité.
Définissez le PORT de Service Broker sur le même numéro de port pour toutes les instances de serveur hôte.
Conseil
Pour afficher le numéro de port du point de terminaison Service Broker sur une instance de serveur donnée, interrogez la colonne port de l’affichage catalogue sys.tcp_endpoints , où type_desc = 'SERVICE_BROKER'.
L'exemple suivant crée un point de terminaison Service Broker authentifié par Windows qui utilise le port par défaut de Service Broker (4022) et écoute toutes les adresses IP valides.
CREATE ENDPOINT [SSBEndpoint] STATE = STARTED AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)
Pour plus d’informations, consultez CREATE ENDPOINT (Transact-SQL).
Notes
SQL Server Service Broker ne peut pas prendre en charge plusieurs sous-réseaux. Configurez
RegisterAllProvidersIP
sur 0, puis vérifiez que le cluster dispose des autorisations nécessaires dans le DNS pour utiliser des adresses IP statiques. Pour plus d’informations, consultez Configurer un écouteur de groupe de disponibilité. Service Broker peut retarder le message avec l’état « CONVERSING » en tentant d’utiliser une adresse IP désactivée.Accordez l'autorisation CONNECT sur le point de terminaison.
Accordez l'autorisation CONNECT sur le point de terminaison Service Broker sur PUBLIC ou sur une connexion.
L'exemple suivant accorde la connexion sur un point de terminaison Service Broker nommé
broker_endpoint
sur PUBLIC.GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]
Pour plus d’informations, consultez GRANT (Transact-SQL).
Vérifiez que msdb contient un itinéraire AutoCreatedLocal ou un itinéraire vers le service spécifique.
Notes
Chaque base de données utilisateur qui englobe msdbcontient par défaut l'itinéraire AutoCreatedLocal. Cet itinéraire, qui correspond à tous les noms de services et instances de broker, spécifie que le message doit être remis dans l'instance active. AutoCreatedLocal a une priorité plus faible que les itinéraires qui spécifient explicitement un service spécifique qui communique avec une instance distante.
Pour plus d’informations sur la création des routes, consultez Exemples de routage Service Broker (dans la version SQL Server 2008 R2 (10.50.x) de la documentation en ligne) et CREATE ROUTE (Transact-SQL).
Spécifications pour l'envoi de messages à un service distant dans un groupe de disponibilité
Créez un itinéraire vers le service cible.
Configurez l'itinéraire comme suit :
Définissez ADDRESS sur l'adresse IP de l'écouteur du groupe de disponibilité qui héberge la base de données de service.
Définissez PORT sur le port que vous avez spécifié dans le point de terminaison Service Broker de chacune des instances distantes de SQL Server.
L'exemple suivant crée un itinéraire nommé
RouteToTargetService
pour le serviceISBNLookupRequestService
. L'itinéraire cible l'écouteur du groupe de disponibilité,MyAgListener
, qui utilise le port 4022.CREATE ROUTE [RouteToTargetService] WITH SERVICE_NAME = 'ISBNLookupRequestService', ADDRESS = 'TCP://MyAgListener:4022';
Pour plus d’informations, consultez CREATE ROUTE (Transact-SQL).
Vérifiez que msdb contient un itinéraire AutoCreatedLocal ou un itinéraire vers le service spécifique. (Pour plus d’informations, consultez Spécifications pour qu’un service dans un groupe de disponibilité reçoive les messages distants, plus haut dans cette rubrique.)
Tâches associées
Créer ou configurer un écouteur de groupe de disponibilité (SQL Server).
Création et configuration des groupes de disponibilité (SQL Server)
Voir aussi
Vue d’ensemble des groupes de disponibilité Always On (SQL Server)
Écouteurs de groupe de disponibilité, connectivité client et basculement d’application (SQL Server)
SQL Server Service Broker