Välj en startstrategi

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

I den här artikeln beskrivs alternativ för aktivering av Service Broker.

Service Broker stöder asynkrona, köade meddelanden. Eftersom konversationer kan pågå i dagar, månader eller år använder många program aktivering för att skala dynamiskt. I det här avsnittet beskrivs några vanliga strategier för att starta ett program som använder Service Broker.

Startstrategier

Strategierna för att starta ett program finns i fyra breda kategorier:

  • Intern aktivering

  • Händelsebaserad aktivering

  • Schemalagd aktivitet

  • Startaktivitet

Varje aktiveringsstrategi har olika fördelar. Ett program kan kombinera dessa strategier. Ett program kan till exempel använda intern aktivering med ett litet antal köläsare för det mesta, men vid vissa tidpunkter på dagen kan det starta fler köläsare.

Intern aktivering

Med intern aktivering av Service Broker aktiverar en Service Broker-köövervakare direkt en lagrad procedur när det behövs. Detta är ofta den enklaste metoden. Genom att använda direkt aktivering av en lagrad procedur behöver du inte skriva ytterligare kod i programmet för att hantera aktivering. Intern aktivering kräver dock att programmet skrivs som en lagrad SQL Server-procedur. När du använder intern aktivering skriver du programmet för att avsluta när det inte finns några fler meddelanden att bearbeta.

Händelsebaserad aktivering

Vissa program körs som svar på en specifik händelse. Du kan till exempel köra ett program när processoranvändningen på datorn understiger en viss nivå, eller så kan du köra ett loggningsprogram när en ny tabell skapas.

Extern aktivering av Service Broker är ett särskilt fall av händelsebaserad aktivering. För extern aktivering startar programmet som svar på händelsen QUEUE_ACTIVATION.

För händelser som kan utlösas av händelsemeddelanden kan du kombinera händelsebaserad aktivering med intern aktivering av Service Broker. I det här fallet använder du intern aktivering i kön som tar emot händelsemeddelandet. Den lagrade aktiveringsproceduren tar emot meddelandemeddelandet och startar programmet.

För andra händelser kan du använda SQL Server Agent för att starta jobb på samma dator som den dator där SQL Server körs. Du kan skriva ett program som övervakar WMI-händelser (Windows Management Instrumentation) från en fjärrdator. Programmet kan starta en uppgift när en WMI-händelse inträffar på datorn som kör SQL Server.

När du använder händelsebaserad aktivering avslutas vanligtvis ett program när det inte finns några fler meddelanden att bearbeta.

Schemalagd aktivitet

Med en schemalagd aktivitet aktiveras ett program enligt ett angivet schema. Den här strategin är praktisk för batchbearbetningsprogram. Ett program som körs som en schemalagd aktivitet kan avslutas när det inte finns fler meddelanden att bearbeta, eller så kan programmet avslutas vid en viss tidpunkt.

Ett program som bearbetar beställningar till en leverantör kan till exempel lagra meddelanden under dagen och sedan bearbeta meddelandena över natten för att skapa en enda order till leverantören. I det här fallet kan programmet använda ett SQL Server Agent-jobb för att starta programmet vid en viss tidpunkt varje natt.

Startaktivitet

Vissa program startar en gång, vanligtvis när datorn startar eller när SQL Server startar. Exempel på dessa uppgifter är en start lagrad procedur i SQL Server, ett program i Windows-startgruppen eller en Windows-tjänst. I det här fallet fortsätter programmet att köras och bearbetar meddelanden när de tas emot. Ett program som körs kontinuerligt kräver inte starttid när ett meddelande tas emot i kön. Men eftersom programmet inte avslutas när det inte finns några meddelanden, förbrukar programmet resurser även när det inte finns något arbete för programmet att göra.

Den här strategin kan vara användbar för ett program som bearbetar en konstant ström av meddelanden och som är relativt resursintensiv under starten.