Gespreksgroepen zijn een lokale primitieve die wordt gebruikt voor vergrendeling. Berichten binnen een gespreksgroep hebben geen bestellingsgarantie en gespreksgroepen lopen niet over de draad.
De berichtvolgorde wordt gegarandeerd door Service Broker binnen een gesprek. Dus om de volgorde van gecorreleerde berichten in verwerking te behouden, stuur ze in hetzelfde gesprek.
Gespreksgroepen zijn nodig voor het groeperen van een reeks conversaties die aan elkaar gerelateerd zijn. Beide GET CONVERSATION GROUP
en RECEIVE
werkwoorden garanderen dat ze een hele conversatiegroep zullen vergrendelen, waardoor wordt voorkomen dat een andere thread gerelateerde berichten verwerkt. Denk bijvoorbeeld aan een reizende site. Hij ontvangt een bericht met het verzoek om een vakantiepakket te boeken. Als gevolg hiervan start het een gesprek met een hotelboekingsservice en verzendt het een verzoek om een kamer te reserveren, het start een gesprek met een reserveringsservice van een luchtvaartmaatschappij en vraagt om een reisreservering, het start een gesprek met een autoverhuurbedrijf en vraagt om een auto reserveren. Deze drie nieuwe gesprekken die het heeft gemaakt, bevinden zich allemaal in dezelfde groep als het eerste gesprek waarop het verzoek is ontvangen (de toepassing heeft de WITH RELATED_CONVERSATION
gebruikt clausule van BEGIN DIALOG op alle 3). Het begaat dan en gaat verder met het verwerken van de berichten in de wachtrij. Latere reacties van deze 3 gecorreleerde verzoeken beginnen binnen te komen, op vrijwel willekeurige tijdstippen. Stel dat de reactie van het hotel als eerste binnenkomt. Het bericht wordt opgepikt door de applicaiton en het gaat door met het bijwerken van de status van het verzoek met het antwoord van het hotel. Tegelijkertijd komt de reactie van de luchtvaartmaatschappij binnen. Als een andere thread het zou mogen oppikken, zou deze proberen de status van de dezelfde bij te werken. verzoek, wat resulteert in een blokkering of zelfs een impasse tegen de thread die de hotelreactie verwerkt. Wanneer de hotelreactie is verwerkt, verbindt de thread zich en ontgrendelt zo de hele gespreksgroep, zodat elke thread (inclusief zichzelf) de reactie van de luchtvaartmaatschappij kan oppikken en verwerken.