Dela via


Service Broker med AlwaysOn-tillgänglighetsgrupper (SQL Server)

gäller för:SQL Server

Det här avsnittet innehåller information om hur du konfigurerar Service Broker så att det fungerar med AlwaysOn-tillgänglighetsgrupper i SQL Server.

Ta emot fjärrmeddelanden från andra Service Broker-instanser

  1. Kontrollera att tillgänglighetsgruppen har en lyssnare.

    Mer information finns i Skapa eller konfigurera en tillgänglighetsgrupplyssnare (SQL Server).

  2. Kontrollera att Service Broker-slutpunkten finns och är korrekt konfigurerad.

    På varje instans av SQL Server som är värd för en tillgänglighetsreplik för tillgänglighetsgruppen konfigurerar du Service Broker-slutpunkten på följande sätt:

    • Ställ in LISTENER_IP på "ALLA". Den här inställningen aktiverar anslutningar på alla giltiga IP-adresser som är bundna till tillgänglighetsgruppens lyssnare.

    • Ange Port för Service Broker till samma portnummer på alla värdserverinstanser.

      Tips

      Om du vill visa portnumret för Service Broker-slutpunkten i en given serverinstans, fråga kolumnen port i katalogvyn sys.tcp_endpoints, där type_desc = "SERVICE_BROKER".

    I följande exempel skapas en Windows-autentiserad Service Broker-slutpunkt som använder standardporten för Service Broker (4022) och lyssnar på alla giltiga IP-adresser.

    CREATE ENDPOINT [SSBEndpoint]  
        STATE = STARTED  
        AS TCP  (LISTENER_PORT = 4022, LISTENER_IP = ALL )  
        FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)  
    

    Mer information finns i CREATE ENDPOINT (Transact-SQL).

    Anmärkning

    SQL Server Service Broker är inte MultiSubnet-medveten. Ange RegisterAllProvidersIP till 0 och kontrollera att klustret har nödvändig behörighet i DNS för att använda statiska IP-adresser. Mer information finns i konfigurera tillgänglighetsgruppslyssnare. Service Broker kan fördröja meddelandet som har statusen "CONVERSING" när det försöker använda en inaktiverad IP-adress.

  3. Bevilja CONNECT-behörighet på slutpunkten.

    Bevilja CONNECT-behörighet på Service Broker-slutpunkten antingen till PUBLIC eller till en inloggning.

    I följande exempel tilldelas anslutningen på en Service Broker-slutpunkt med namnet SSBEndpoint till PUBLIC.

    GRANT CONNECT ON ENDPOINT::[SSBEndpoint] TO [PUBLIC]  
    

    För mer information, se GRANT (Transact-SQL).

  4. Kontrollera att msdb innehåller antingen en AutoCreatedLocal-väg eller en väg till den specifika tjänsten.

    Notera

    Som standard innehåller varje användardatabas, inklusive msdb, vägen AutoCreatedLocal. Den här vägen matchar alla tjänstnamn och mäklarinstanser och anger att meddelandet ska levereras inom den aktuella instansen. AutoCreatedLocal har lägre prioritet än vägar som uttryckligen anger en specifik tjänst som kommunicerar med en fjärrinstans.

    Information om hur du skapar vägar finns i Service Broker Routing Examples (i SQL Server 2008 R2-versionen (10.50.x) av Books Online) och CREATE ROUTE (Transact-SQL).

Krav för att skicka meddelanden till en fjärrtjänst i en tillgänglighetsgrupp

  1. Skapa en väg till måltjänsten.

    Konfigurera vägen på följande sätt:

    • Ange ADRESS till lyssnarens IP-adress för tillgänglighetsgruppen som är värd för tjänstdatabasen.

    • Ange PORT till den port som du angav i Service Broker-slutpunkten för var och en av de fjärranslutna SQL Server-instanserna.

    I följande exempel skapas en väg med namnet RouteToTargetService för ISBNLookupRequestService-tjänsten. Rutten dirigerar till lyssnaren för tillgänglighetsgruppen, MyAgListener, som använder port 4022.

    CREATE ROUTE [RouteToTargetService] WITH   
    SERVICE_NAME = 'ISBNLookupRequestService',   
    ADDRESS = 'TCP://MyAgListener:4022';  
    
    

    Mer information finns i CREATE ROUTE (Transact-SQL).

  2. Kontrollera att msdb innehåller antingen en AutoCreatedLocal-väg eller en väg till den specifika tjänsten. (Mer information finns i Krav för en tjänst i en tillgänglighetsgrupp för att ta emot fjärrmeddelanden, tidigare i det här avsnittet.)

Relaterade uppgifter

Se även

översikt över AlwaysOn-tillgänglighetsgrupper (SQL Server)
Tillgänglighetsgruppslyssnare, klientanslutning och applikationsredundans (SQL Server)
SQL Server Service Broker