Service Broker com grupos de disponibilidade AlwaysOn (SQL Server)
Aplica-se a: SQL Server
Este tópico contém informações sobre como configurar o Service Broker para funcionar com o Grupos de disponibilidade AlwaysOn no SQL Server.
Receber mensagens remotas de outras instâncias do Service Broker
Verifique se o grupo de disponibilidade tem um ouvinte.
Para obter mais informações, confira Criar ou configurar um ouvinte do grupo de disponibilidade (SQL Server).
Verifique se o ponto de extremidade do Service Broker existe e se está configurado corretamente.
Em toda instância do SQL Server que hospeda uma réplica de disponibilidade para o grupo de disponibilidade, configure o ponto de extremidade do Service Broker, da seguinte maneira:
Defina LISTENER_IP como 'ALL'. Esta configuração habilitará conexões em qualquer endereço IP válido que estiver associado ao ouvinte do grupo de disponibilidade.
Defina a PORT do Service Broker como o mesmo número de porta em todas as instâncias do servidor de host.
Dica
Para exibir o número da porta do ponto de extremidade do Service Broker em determinada instância de servidor, consulte a coluna port da exibição de catálogo sys.tcp_endpoints , em que type_desc = 'SERVICE_BROKER'.
O exemplo a seguir cria um ponto de extremidade do Service Broker autenticado do Windows que usa a porta de Service Broker padrão (4022) e escuta todos os endereços IP válidos.
CREATE ENDPOINT [SSBEndpoint] STATE = STARTED AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)
Para obter mais informações, veja CREATE ENDPOINT (Transact-SQL).
Observação
O SQL Server Service Broker não tem reconhecimento MultiSubnet. Defina
RegisterAllProvidersIP
como 0 e verifique se o cluster tem a permissão necessária no DNS para usar endereços IP estáticos. Confira configurar o ouvinte do grupo de disponibilidade para saber mais. O Service Broker pode atrasar a mensagem com o status "CONVERSING" tentando usar um endereço IP desabilitado.Conceda a permissão CONNECT no ponto de extremidade.
Conceda permissão CONNECT no ponto de extremidade do Service Broker para PUBLIC ou para um logon.
O exemplo a seguir concede a conexão em um ponto de extremidade do Service Broker nomeado
broker_endpoint
para PUBLIC.GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]
Para obter mais informações, confira GRANT (Transact-SQL).
Verifique se msdb contém uma rota AutoCreatedLocal ou uma rota para o serviço específico.
Observação
Por padrão, cada banco de dados de usuário, inclusive msdb, contém a rota AutoCreatedLocal. Essa rota corresponde a qualquer nome de serviço e instância do broker e especifica que a mensagem deve ser entregue na instância atual. AutoCreatedLocal tem prioridade inferior a rotas que especificam explicitamente um serviço que se comunica com uma instância remota.
Para obter informações sobre como criar rotas, confira Exemplos de roteamento do Service Broker [na versão do SQL Server 2008 R2 (10.50.x) dos Manuais Online] e CREATE ROUTE (Transact-SQL).
Requisitos para enviar mensagens para um serviço remoto em um grupo de disponibilidade
Criar uma rota para o serviço de destino.
Configure a rota da seguinte maneira:
Defina ADDRESS como o endereço IP de ouvinte de grupo de disponibilidade que hospeda o banco de dados de serviço.
Defina PORT como a porta que você especificou no ponto de extremidade do Service Broker de cada instância remota do SQL Server.
O exemplo a seguir cria uma rota nomeada
RouteToTargetService
para o serviçoISBNLookupRequestService
. A rota destina-se ao ouvinte do grupo de disponibilidade,MyAgListener
, que usa a porta 4022.CREATE ROUTE [RouteToTargetService] WITH SERVICE_NAME = 'ISBNLookupRequestService', ADDRESS = 'TCP://MyAgListener:4022';
Para obter mais informações, confira CREATE ROUTE (Transact-SQL).
Verifique se msdb contém uma rota AutoCreatedLocal ou uma rota para o serviço específico. (Para obter mais informações, veja Requisitos para que um serviço em um grupo de disponibilidade receba mensagens remotas, acima neste tópico.)
Related Tasks
Criar ou configurar um ouvinte de grupo de disponibilidade (SQL Server).
Criação e configuração de grupos de disponibilidade (SQL Server)
Consulte Também
Visão geral dos Grupos de Disponibilidade AlwaysOn (SQL Server)
Ouvintes do grupo de disponibilidade, conectividade de cliente e failover de aplicativo (SQL Server)
SQL Server Service Broker