假设我有同一个应用程序的两个实例与 Service Broker 中的后端服务交互。每个实例如何知道只处理它发起的对话而忽略其余的?如果我没记错的话,每个 RECEIVE 都会从队列中删除消息。
这是一个例子:
-- Assume the SquareService return the square of the number sent to it
-- Instance 1
BEGIN DIALOG @Conversation1
FROM SERVICE InitService
TO SERVICE 'SquareService'
ON CONTRACT (MyContract)
WITH ENCRYPTION = OFF;
SEND ON CONVERSATION @Conversation1 MESSAGE TYPE MyMessageType('1');
-- Instance 2
BEGIN DIALOG @Conversation2
...;
SEND ON CONVERSATION @Conversation2 MESSAGE TYPE MyMessageType('2');
现在我应该由谁编写RECEIVE
语句,以便实例 1 正确获得 1 而实例 2 获得 4?