Групите за разговори са локален примитив, използван за заключване. Съобщенията в рамките на група за разговори нямат гаранции за ред и групите за разговори не преминават през кабела.
Редът на съобщенията се гарантира от Service Broker в рамките на разговор. Така че, за да запазите реда на корелирани съобщения в обработката, изпратете ги в същия разговор.
Групите за разговори са необходими за групиране на набор от разговори, които са свързани един с друг. И двете GET CONVERSATION GROUP
и RECEIVE
глаголите гарантират, че ще заключат цяла група за преобразуване, като по този начин не позволяват на всяка друга нишка да обработва свързани съобщения. Например помислете за сайт за пътуване. Получава съобщение със заявка за резервация на ваканционен пакет. В резултат на това той инициира разговор с услуга за резервации на хотел и изпраща заявка за резервация на стая, инициира разговор с услуга за резервации на авиокомпания и иска резервация за пътуване, инициира разговор с услуга на агенция за коли под наем и иска резервация на кола. Тези три нови разговора, които той създаде, са в една и съща група с първоначалния разговор, в който е получена заявката (приложението е използвало WITH RELATED_CONVERSATION
клауза на BEGIN DIALOG за всичките 3 от тях). След това се ангажира и продължава да обработва съобщенията в опашката. По-късните отговори от тези 3 корелирани заявки започват да идват в доста произволни моменти. Кажете, че отговорът на хотела идва на първо място. Съобщението се прихваща от приложението и продължава да актуализира състоянието на заявката с отговора от хотела. В същото време идва отговорът на авиокомпанията. Ако на друга нишка бъде позволено да я вземе, тя ще се опита да актуализира състоянието на същата заявка, което води до блокиране или дори блокиране на нишката, която обработва отговора на хотела. Когато отговорът на хотела бъде обработен, нишката се ангажира и по този начин отключва цялата група за разговори, позволявайки на всяка нишка (включително самата нея) да вземе отговора на авиокомпанията и да го обработи.