Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Een wachtrij bevat binnenkomende berichten voor een service. Om de verwerking te vereenvoudigen, maken toepassingen doorgaans één wachtrij per service in plaats van dezelfde wachtrij voor meerdere services te gebruiken.
Als u de bewaaroptie instelt voor een wachtrij, worden berichten bewaard nadat ze zijn verwerkt. Omdat retentie de prestaties van toepassingen vermindert, geeft u alleen retentie op als voor de toepassing permanente toegang is vereist tot de verzonden en ontvangen berichten. Voor meer informatie over berichtretentie, zie Berichtretentie.
Geef voor toepassingen die geen interne activering gebruiken geen activeringsclausule op voor de wachtrijdefinitie.
Voor toepassingen die gebruikmaken van interne activering, bevat de wachtrijdefinitie de naam van de opgeslagen procedure, het maximum aantal lezers dat SQL Server moet starten en de naam van de database-principal die moet worden geïmiteerd voordat de opgeslagen procedure wordt gestart.
De naam van een wachtrij is niet opgenomen in de netwerkindeling van een bericht. Wachtrijen zijn objecten die eigendom zijn van een schema. Daarom volgen wachtrijnamen de naamconventies van SQL Server. Zie Name Service Broker-objecten voor meer informatie over naamgeving.
Activering van opgeslagen procedure
Een wachtrij kan worden gekoppeld aan een opgeslagen procedure. SQL Server activeert de opgeslagen procedure wanneer er berichten in de wachtrij staan die moeten worden verwerkt. Met dit proces van automatische activering kan een Service Broker-toepassing dynamisch worden geschaald op basis van de huidige verwerkingsbelasting van de toepassing. Elke opgeslagen procedure die door Service Broker wordt geactiveerd, wordt uitgevoerd in een afzonderlijke thread. Wanneer een wachtrij een opgeslagen procedure opgeeft, start Service Broker nieuwe exemplaren van de opgeslagen procedure, tot het maximum aantal exemplaren dat is opgegeven voor de wachtrij.
Een geactiveerde opgeslagen procedure verwerkt doorgaans een of meer berichten en retourneert een reactie op de service die afkomstig is van de berichten. Wanneer berichten sneller binnenkomen dan de opgeslagen procedure, start Service Broker een ander exemplaar van de opgeslagen procedure, tot het maximum aantal dat door de wachtrij is gedefinieerd. Een geactiveerde opgeslagen procedure wordt doorgaans afgesloten wanneer de procedure gedurende een tijdje geen berichten vindt die beschikbaar zijn in de wachtrij.
Het gebruik van opgeslagen activeringsprocedures is een veelgebruikte manier om Service Broker-toepassingen te ontwerpen. Andere ontwerpen kunnen echter beter aansluiten op de behoeften van een specifieke toepassing. Elke toepassing die Transact-SQL batches in SQL Server kan uitvoeren, kan berichten verzenden en ontvangen. Berichten kunnen ook worden verwerkt door elke opgeslagen procedure, ongeacht of de opgeslagen procedure wordt geactiveerd door SQL Server, gestart door SQL Server Agent, wordt uitgevoerd door een externe toepassing of interactief wordt uitgevoerd vanuit een hulpprogramma zoals SQL Server Management Studio of SQL Server Express Management Studio.