Skapa Service Broker-objekt

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

Ett program använder Service Broker genom att köra Transact-SQL-instruktioner som körs på Service Broker-objekt som definierats i en databas. I det här avsnittet beskrivs allmänna överväganden när du skapar Service Broker-objekt för ett program.

Översikt

Service Broker-objekt definierar metadata och lagring för en specifik uppsättning uppgifter:

  • Meddelandetyper definierar de data som utbyts i en konversation.

  • Kontrakt definierar uppgifter. Varje kontrakt anger de meddelandetyper som kan användas i en viss konversation och vilken sida av konversationen som kan skicka meddelandet.

  • En kö lagrar inkommande meddelanden för en tjänst.

  • En tjänst representerar en relaterad uppsättning affärsuppgifter. Namnet på tjänsten används också för att hitta kön för tjänsten.

Ett kontrakt beror på en eller flera meddelandetyper. En tjänst är beroende av en kö och kan vara beroende av ett eller flera kontrakt. Därför skapas kontrakt efter meddelandetyper och tas bort före meddelandetyper. Tjänster skapas efter köer och kontrakt och tas bort före köer och kontrakt.

Skapa objekt för en tjänst

Proceduren för att skapa en tjänst följer samma grundläggande disposition oavsett om tjänsten är en initierande tjänst, en måltjänst eller båda.

Definitionen av en tjänst anger de kontrakt som tjänsten kan vara ett mål för. Däremot kan ett program använda en tjänst för att initiera en konversation som använder alla kontrakt som definierats i databasen. Service Broker använder den här metoden för att framtvinga den allmänna regeln att en tjänst endast ska ta emot meddelanden som programmet kan bearbeta. För att säkerställa att programmet inte tar emot meddelanden av godtycklig eller okänd typ godkänner Service Broker endast en ny dialogruta om dialogrutan följer ett kontrakt som anges i tjänsten. En initierande tjänst anger vilket kontrakt som ska användas när konversationen börjar, så en initierande tjänst behöver inte inkludera kontraktet i tjänstdefinitionen.

Gör följande för att skapa objekten för en tjänst:

  1. Skapa meddelandetyper som definierar de meddelanden som din tjänst ska använda för att utföra all nödvändig kommunikation. Du kan definiera dessa typer själv eller hämta skript för att skapa typerna från skaparen av tjänsten som tjänsten ska kommunicera med. Du hoppar över det här steget när databasen redan innehåller de meddelandetyper som din tjänst behöver.

  2. Skapa ett eller flera kontrakt som definierar strukturen för de konversationer som den här tjänsten kan delta i. Du kan definiera det här kontraktet själv eller skaffa skript för att skapa kontraktet från skaparen av tjänsten som tjänsten ska kommunicera med. Du hoppar över det här steget när databasen redan innehåller de kontrakt som din tjänst behöver.

  3. Skapa en kö. Service Broker använder den här kön för att ta emot och lagra inkommande meddelanden för tjänsten. Mer information om hur du skapar köer finns i SKAPA KÖ. Varje tjänst måste ha en kö. För att göra programmering och administration enklare använder varje tjänst vanligtvis en kö som är dedikerad till den tjänsten. Om tjänsten kräver kvarhållning av meddelanden anger du kvarhållning av meddelanden för kön.

  4. Skapa en tjänst. Tjänstdefinitionen anger kön som tjänsten använder och de kontrakt som tjänsten är målet för.

I de flesta fall skapar du måltjänsten och använder sedan kontrakt och meddelandetyper som skapats för måltjänsten för att skapa en initierande tjänst. I vissa fall kan du dock skapa en måltjänst för en initierande tjänst som redan har definierats. I dessa fall använder måltjänsten de meddelandetyper och kontrakt som den initierande tjänsten använder. Om du till exempel skapar en måltjänst för att ta emot händelsemeddelanden använder du kontraktet https://schemas.microsoft.com/SQL/Notifications/PostEventNotification, eftersom det här är det kontrakt som den initierande tjänsten använder.

Hantera objektdefinitioner

Vi rekommenderar att du skapar ett Transact-SQL skript för de Service Broker-objekt som programmet använder. Det här Transact-SQL skriptet gör det enkelt att referera till detaljerna i dina Service Broker-objekt. Skriptet ger också ett sätt att distribuera tjänsten på ett annat system eller att återskapa tjänsten om det behövs.

Om ditt program innebär att skicka meddelanden mellan SQL Server-instanser rekommenderar vi att du skapar ett skript som definierar meddelandetyperna och kontrakten för tjänsten och ett andra skript som definierar kön och tjänsten. Det första skriptet definierar gränssnittet för tjänsten, de objekt som är gemensamma för både den initierande tjänsten och måltjänsten. Det andra skriptet definierar tjänstnamnet och kön, objekten för ena sidan av konversationen.

I det här avsnittet

Article Description
Skapa meddelandetyper för Service Broker Beskriver meddelandetyper och hur de används.
Skapa Service Broker-kontrakt Beskriver kontrakt och hur de används.
Skapa Service Broker-köer Beskriver köer och hur de används.
Skapa Service Broker-tjänster Beskriver tjänster och hur de används.
Namn på Service Broker-objekt Beskriver överväganden för namngivning av tjänstmäklarobjekt.
Exempel på tjänstskript Beskriver ett Transact-SQL kodexempel och definierar en tjänst.