Question

I am reading the docs on SQL Server Service Broker, and I am having a hard time figuring out the difference between a Message, Dialog and a Conversation.

At first I thought a Conversation was a collection of Dialogs, but that appears to be a Conversation Group. Unless a Conversation Group is a collection of a collection of Dialogs.

I have also read some docs that seem to indicate that a Dialog and a Conversation are the same thing.

From what I have read, a Dialog usually contains a normal message and an acknowledgement message. I have tried to send more than one message in a single dialog and it was not received by the target, so I am guessing that it has a limit of one to target and one back to the initiator.

But I can't seem to find any docs that nail this down.

If someone could outline the relationship a Message has with a Dialog and a Dialog with a Conversation that would be great!

Was it helpful?

Solution

I found this very confusing also when I was learning ServiceBroker...

If I recall correctly, a Dialog is a type of Conversation(**). Now as it happens there is only one type of Conversation (Dialogs), so they are effectively the same thing, and the doc frequently talks about them as though they are the same thing. But they are not quite the same, and if Microsoft ever adds another type, then it will be important to distinguish between them.

A Messsage is pretty much what you think it is: Conversations consist of a sequence of Messages.

(** -- I may have this backwards. Hopefully @RemusRusanu will correct me if I do :-) )

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top