Service Broker-applikationer

gäller för:SQL ServerAzure SQL Managed Instance

Service Broker-program består av ett eller flera program och databasobjekten som dessa program använder. Program kommunicerar genom att skapa konversationer mellan oberoende komponenter som kallas tjänster och sedan utbyta meddelanden i dessa konversationer. Program använder Service Broker genom att köra Transact-SQL-instruktioner i en SQL Server-databas.

Programkomponenter

Ett Service Broker-program består av:

  • Ett eller flera program som implementerar en uppgift eller en relaterad uppsättning aktiviteter. Utanför SQL Server kan program skrivas i valfri programmeringsmiljö som kan köra Transact-SQL-instruktioner i SQL Server. I SQL Server kan program skrivas som lagrade procedurer med hjälp av Transact-SQL eller ett clr-kompatibelt språk (common language runtime).

  • En tjänst som exponerar uppgifterna för andra tjänster. En tjänst är ett Service Broker-objekt som tillhandahåller ett adresserbart namn för en uppsättning relaterade uppgifter. Andra tjänster startar konversationer med den här tjänsten för att utföra uppgifterna.

  • Ett kontrakt och meddelandetyper som definierar strukturen och riktningen för de meddelanden som används i kommunikationen mellan tjänsterna.

  • En kö för att lagra meddelanden för tjänsten.

  • Du kan också ange rutter och fjärrtjänstbindningar. Rutter kopplar en nätverksadress till namnet på en fjärrtjänst. Fjärrtjänstbindningar associerar ett tjänstnamn med ett lokalt databashuvudnamn. Service Broker använder certifikatet som är associerat med det angivna huvudkontot för att hantera auktorisering för fjärrtjänsten och kryptering av meddelanden som utbyts med fjärrtjänsten. Service Broker tillåter att routningar och fjärrtjänstbindningar konfigureras medan programmet är i distribution utan att kräva ändringar i programmet. Detta gör att administratörer kan flytta tjänster och ändra säkerhetsautentiseringsuppgifter utan ändringar i programkoden. Mer information om hur du konfigurerar vägar och fjärrtjänstbindningar finns i Administration (Service Broker).

Service Broker DML

Vanligtvis konfigurerar ett program tjänstdefinitionsobjekt vid tidpunkten för installationen. När programmet körs skickar och tar det emot meddelanden med hjälp av Service Broker Data Manipulation Language (DML). DML-uttrycken delas in i tre breda kategorier: meddelanden, konversationer och konversationsgrupper:

Messages

Service Broker tillhandahåller följande åtgärder för att stödja arbete med meddelanden:

  • Instruktionen SEND skickar ett meddelande på en specifik konversation.

  • Instruktionen RECEIVE tar emot ett eller flera meddelanden från en kö. Alla mottagna meddelanden tillhör samma konversationsgrupp.

Samtal

Service Broker tillhandahåller följande åtgärder för att stödja arbete med konversationer:

  • Instruktionen BEGIN DIALOG CONVERSATION inleder en konversation mellan två tjänster. Eftersom konversationen omfattar exakt två tjänster är konversationen en dialog.

  • Utsagan END CONVERSATION avslutar ena sidan av en konversation.

  • Instruktionen BEGIN CONVERSATION TIMER levererar ett dialogtimermeddelande till ena sidan av en konversation vid en viss tidpunkt.

  • Instruktionen GET_TRANSMISSION_STATUS returnerar en beskrivning av det senaste överföringsfelet för en konversation. Om det senaste försöket att skicka ett meddelande i konversationen lyckades returnerar uttrycket inte någon beskrivning.

Konversationsgrupper

Service Broker tillhandahåller två åtgärder för att arbeta med konversationsgrupper:

  • Instruktionen GET CONVERSATION GROUP returnerar konversationsgruppens identifierare för nästa mottagbara meddelande i en kö. Uttalandet låser även konversationsgruppen.

  • Instruktionen MOVE CONVERSATION flyttar en konversation från en konversationsgrupp till en annan. Instruktionen låser både den ursprungliga konversationsgruppen och målkonversationsgruppen.