Skapa Service Broker-köer

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

En kö innehåller inkommande meddelanden för en tjänst. För att förenkla bearbetningen skapar program vanligtvis en kö per tjänst i stället för att använda samma kö för flera tjänster.

Om du anger kvarhållningsalternativet för en kö kan meddelanden behållas när de har bearbetats. Eftersom kvarhållning minskar programmets prestanda anger du endast kvarhållning om programmet kräver beständig åtkomst till de exakta meddelanden som skickas och tas emot. Mer information om kvarhållning av meddelanden finns i Kvarhållning av meddelanden.

För program som inte använder intern aktivering ska du inte ange någon aktiveringssats i ködefinitionen.

För program som använder intern aktivering innehåller ködefinitionen namnet på den lagrade proceduren, det maximala antalet läsare som SQL Server ska starta och namnet på databasens huvudnamn som ska personifieras innan du påbörjar den lagrade proceduren.

Namnet på en kö ingår inte i nätverksformatet för ett meddelande. Köer är schemaägda objekt. Könamn följer därför SQL Server-namngivningskonventioner. För mer information om namngivning, se Name Service Broker-objekt.

Aktivering av lagrad procedur

En kö kan associeras med en lagrad procedur. SQL Server aktiverar den lagrade proceduren när det finns meddelanden i kön som ska bearbetas. Den här processen med automatisk aktivering gör att ett Service Broker-program kan skalas dynamiskt enligt den aktuella bearbetningsbelastningen i programmet. Varje lagrad procedur som aktiveras av Service Broker körs i en separat tråd. När en kö anger en lagrad procedur startar Service Broker nya instanser av den lagrade proceduren efter behov, upp till det maximala antal instanser som angetts för kön.

En aktiverad lagrad procedur bearbetar vanligtvis ett eller flera meddelanden och returnerar ett svar till tjänsten som kom från meddelandena. När meddelanden kommer snabbare än den lagrade proceduren bearbetar meddelanden startar Service Broker en annan instans av den lagrade proceduren, upp till det maximala antal som definieras av kön. En aktiverad lagrad procedur avslutas vanligtvis när proceduren inte hittar några meddelanden som är tillgängliga i kön ett tag.

Att använda aktiverings lagrade procedurer är ett vanligt sätt att utforma Service Broker-program. Andra designer kan dock bättre passa behoven för ett visst program. Alla program som kan köra Transact-SQL batchar i SQL Server kan skicka och ta emot meddelanden. Meddelanden kan också bearbetas av en lagrad procedur, oavsett om den lagrade proceduren aktiveras av SQL Server, startas av SQL Server Agent, körs av ett externt program eller körs interaktivt från ett verktyg som SQL Server Management Studio eller SQL Server Express Management Studio.