【发布时间】:2013-11-09 13:22:18
【问题描述】:
假设我有两个与 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?
【问题讨论】:
标签: sql sql-server sql-server-2008 service-broker