Delen via


Service Broker met AlwaysOn-beschikbaarheidsgroepen (SQL Server)

van toepassing op:SQL Server-

Dit onderwerp bevat informatie over het configureren van Service Broker voor gebruik met AlwaysOn-beschikbaarheidsgroepen in SQL Server.

Ontvang berichten op afstand van andere Service Broker-instanties

  1. Controleren of de beschikbaarheidsgroep een listener heeft.

    Zie Een listener voor beschikbaarheidsgroepen (SQL Server) maken of configurerenvoor meer informatie.

  2. Zorg ervoor dat het Service Broker-eindpunt bestaat en juist is geconfigureerd.

    Configureer op elk exemplaar van SQL Server dat als host fungeert voor een beschikbaarheidsreplica voor de beschikbaarheidsgroep het Service Broker-eindpunt als volgt:

    • Stel LISTENER_IP in op 'ALL'. Met deze instelling worden verbindingen ingeschakeld op elk geldig IP-adres dat is gebonden aan de listener van de beschikbaarheidsgroep.

    • Stel de Service Broker PORT in op hetzelfde poortnummer op alle hostserverexemplaren.

      Tip

      Als u het poortnummer van het Service Broker-eindpunt op een bepaald serverexemplaar wilt weergeven, voert u een zoekopdracht uit op de kolom poort van de sys.tcp_endpoints catalogusweergave, waarbij type_desc = 'SERVICE_BROKER'.

    In het volgende voorbeeld wordt een door Windows geverifieerd Service Broker-eindpunt gemaakt dat gebruikmaakt van de standaardService Broker-poort (4022) en luistert naar alle geldige IP-adressen.

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

    Zie CREATE ENDPOINT (Transact-SQL)voor meer informatie.

    Notitie

    SQL Server Service Broker is niet op de hoogte van MultiSubnet. Stel RegisterAllProvidersIP in op 0 en controleer of het cluster de vereiste machtigingen in DNS heeft om statische IP-adressen te gebruiken. Zie beschikbaarheidsgroepluisteraar configureren voor meer informatie. Service Broker kan een bericht met de status 'CONVERSING' vertragen als het probeert een uitgeschakeld IP-adres te gebruiken.

  3. connect-machtiging verlenen voor het eindpunt.

    Verleent CONNECT-machtiging voor het Service Broker-eindpunt aan PUBLIC of aan een gebruikersaccount.

    In het volgende voorbeeld wordt de verbinding toegestaan op een Service Broker-eindpunt met de naam SSBEndpoint aan PUBLIC.

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

    Zie GRANT (Transact-SQL)voor meer informatie.

  4. Zorg ervoor dat msdb een AutoCreatedLocal-route of een route naar de specifieke service bevat.

    Notitie

    Standaard bevat elke gebruikersdatabase, inclusief msdb-, de route AutoCreatedLocal-. Deze route komt overeen met elke servicenaam en brokerinstantie en geeft aan dat het bericht binnen dezelfde instantie moet worden bezorgd. AutoCreatedLocal- heeft een lagere prioriteit dan routes die expliciet een specifieke service opgeven die communiceert met een extern exemplaar.

    Zie Service Broker Routing Examples (in de SQL Server 2008 R2-versie (10.50.x) van Books Online) en CREATE ROUTE (Transact-SQL)voor meer informatie over het maken van routes.

Vereisten voor het verzenden van berichten naar een externe service in een beschikbaarheidsgroep

  1. een route naar de doelservice maken.

    Configureer de route als volgt:

    • Stel ADDRESS in op het IP-adres van de listener van de beschikbaarheidsgroep die als host fungeert voor de servicedatabase.

    • Stel PORT in op de poort die u hebt opgegeven in het Service Broker-eindpunt van elk van de externe SQL Server-exemplaren.

    In het volgende voorbeeld wordt een route gemaakt met de naam RouteToTargetService voor de ISBNLookupRequestService-service. De route is gericht op de listener van de beschikbaarheidsgroep, MyAgListener, die gebruikmaakt van poort 4022.

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

    Zie CREATE ROUTE (Transact-SQL)voor meer informatie.

  2. Zorg ervoor dat msdb een AutoCreatedLocal-route of een route naar de specifieke service bevat. (Zie Vereisten voor een service in een beschikbaarheidsgroep voor het ontvangen van externe berichteneerder in dit onderwerp voor meer informatie.)

Gerelateerde taken

Zie ook

overzicht van AlwaysOn-beschikbaarheidsgroepen (SQL Server)
Listeners voor Beschikbaarheidsgroepen, Clientconnectiviteit en Toepassingsfailover (SQL Server)
SQL Server Service Broker