Implementera intern aktivering i Service Broker

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

Den här självstudien är avsedd för användare som är nybörjare på Service Broker, men som är bekanta med databasbegrepp och Transact-SQL-instruktioner. Det hjälper nya användare att komma igång genom att visa dem hur de implementerar en intern aktiverings lagrad procedur för att bearbeta Service Broker-meddelanden.

Begrepp

Den här självstudien visar hur du skapar de databasobjekt som krävs för att stödja en grundläggande "request-reply" Service Broker-konversation med hjälp av en lagrad procedur för intern aktivering. Sedan startar du en konversation och använder den för att skicka meddelanden.

Varje Service Broker-konversation har två slut: konversationsinitieraren och målet. I en begärandesvarskonversation skickar vi ett begärandemeddelande från initieraren till målet, som returnerar ett svarsmeddelande. Intern aktivering av Service Broker kan användas för att köra en lagrad procedur när det finns meddelanden att bearbeta. Service Broker kan köra flera kopior av den lagrade proceduren om det finns många meddelanden som överförs. Den här självstudien visar hur du skapar en lagrad procedur som tar emot begärandemeddelandena vid måldestinationen och hur du konfigurerar målet att använda intern aktivering av den lagrade proceduren.

Den här lektionen hjälper dig att utföra följande uppgifter:

  • Skapa en tjänst och kö för målet och en tjänst och kö för initieraren.

  • Skapa en typ av begärandemeddelande och en typ av svarsmeddelande.

  • Skapa ett kontrakt som anger att begärandemeddelanden ska gå från initieraren till målet och att svarsmeddelandena går från målet till initieraren.

  • Skapa en lagrad procedur som tar emot begärandemeddelanden från målkön och skickar svarsmeddelanden till initieraren.

  • Ändra målkön för att möjliggöra intern aktivering av den lagrade proceduren.

Sedan utför du en grundläggande konversation:

  • Starta konversationen.

  • Skicka en begäran från initieraren till måltavlan.

  • Service Broker aktiverar sedan den lagrade proceduren. Den lagrade proceduren tar emot begäran vid målet och skickar ett svar till initieraren.

  • Ta emot svaret hos initiativtagaren.

  • Avsluta initierarsidan av konversationen.

  • Service Broker aktiverar sedan den lagrade proceduren en andra gång och den lagrade proceduren avslutar målsidan av konversationen.

Meddelanden överförs inte över ett nätverk för konversationer som har båda ändar i samma instans av databasmotorn. Säkerhet och behörigheter för databasmotorn begränsar åtkomsten till auktoriserade principer. Nätverkskryptering behövs inte för det här scenariot.

Den här handledningen är indelad i följande lektioner.

Lektion Beskrivning
lektion 1: Skapa de grundläggande konversationsobjekten Skapa de meddelandetyper, kontrakt, tjänster och köer som krävs för att stödja en grundläggande Service Broker-konversation.
Lektion 2: Skapa en intern aktiveringsprocedur Skapa den lagrade proceduren som tar emot meddelanden från målkön och ändra sedan målkön för att ange intern aktivering.
lektion 3: Starta en konversation och skicka meddelanden Slutför en grundläggande konversation genom att starta konversationen och skicka ett begärandemeddelande från initieraren till målet. Den interna aktiverings lagrade proceduren tar emot begärandemeddelandet och returnerar ett svarsmeddelande. Sedan avslutar du initierarsidan av konversationen och den lagrade proceduren avslutar målsidan av konversationen.
Lektion 4: Avsluta konversationsobjekten Släpp de objekt som skapades för att stödja konversationen.

Krav

För att slutföra den här självstudien bör du känna till det Transact-SQL språket och hur du använder Frågeredigeraren för databasmotorn i SQL Server Management Studio. Du måste vara medlem i de fasta databasrollerna db_ddladmin eller db_owner för AdventureWorks2025-exempeldatabasen, eller i den fasta serverrollen sysadmin.

Systemet måste ha följande installerat: