Service Broker com grupos de disponibilidade AlwaysOn (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 2012.
Neste tópico:
Requisitos para um serviço em um grupo de disponibilidade para receber mensagens remotas
Requisitos para enviar mensagens para um serviço remoto em um grupo de disponibilidade
Requisitos para um serviço em um grupo de disponibilidade para receber mensagens remotas
Verifique se o grupo de disponibilidade tem um ouvinte.
Para obter mais informações, consulte Criar ou configurar um ouvinte de 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:
Set LISTENER_IP to '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 de porta do ponto de extremidade do Service Broker em uma determinada instância de servidor, consulte a coluna port da exibição do catálogo sys.tcp_endpoints, onde 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, consulte CREATE ENDPOINT (Transact-SQL).
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, consulte 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ários incluindo o msdb contém o AutoCreatedLocal da rota. 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. O 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, consulte Exemplos de roteamento de Service Broker (na versão do SQL Server 2008 R2 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ço ISBNLookupRequestService. 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, consulte 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, consulte Requisitos para um serviço em um grupo de disponibilidade para receber mensagens remotas, posteriormente neste tópico.)
[Top]
Tarefas relacionadas
Criar ou configurar um ouvinte de grupo de disponibilidade (SQL Server).
Criação e configuração de grupos de disponibilidade (SQL Server)
[Top]
Consulte também
Conceitos
Visão geral de grupos de disponibilidade AlwaysOn (SQL Server)
Ouvintes de grupo de disponibilidade, conectividade de cliente e failover de aplicativo (SQL Server)