Queues

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

Köer lagrar meddelanden. När Service Broker tar emot ett meddelande för en tjänst infogar Service Broker meddelandet i kön för den tjänsten. För att få meddelanden som skickas till tjänsten tar ett program emot meddelanden från kön. Service Broker hanterar köer och visar en vy över en kö som liknar en tabell.

Varje tjänst är associerad med en kö. När ett meddelande tas emot för en tjänst placerar Service Broker meddelandet i kön som är associerad med den tjänsten.

Varje meddelande är en rad i kön. Raden innehåller innehållet i meddelandet samt information om meddelandetypen, tjänsten som meddelandet riktar sig till, kontraktet som meddelandet följer, verifieringen som utförts på meddelandet, konversationen som meddelandet ingår i och information som är intern i kön. Ett program använder informationen på meddelanderaden för att identifiera varje meddelande unikt och bearbeta meddelandet på rätt sätt.

Program tar emot meddelanden från kön för tjänsten. För varje konversation returnerar köer meddelanden i den ordning som avsändaren skickade meddelandet. Alla meddelanden som returneras från en enda mottagningsåtgärd är en del av konversationer som tillhör en konversationsgrupp. I själva verket innehåller en kö uppsättningar med relaterade meddelanden, en uppsättning för varje konversationsgrupp. Kön returnerar en uppsättning relaterade meddelanden varje gång programmet utför en mottagningsåtgärd från kön. Programmet kan välja att ta emot meddelanden för en specifik konversation eller en specifik konversationsgrupp. Köer returnerar inte meddelanden i strikt första-in-först-ut-ordning. I stället returnerar köer meddelanden för varje konversation i den ordning meddelandena skickades. Därför behöver ett program inte inkludera kod för att återställa den ursprungliga ordningen på meddelandena.

En kö kan associeras med en lagrad procedur. I det här fallet aktiverar SQL Server den lagrade proceduren när det finns meddelanden i kön som ska bearbetas. SQL Server kan starta mer än en instans av den lagrade proceduren, upp till ett konfigurerat maxvärde. Mer information finns i Aktivering av Service Broker.