【发布时间】:2010-11-23 10:35:26
【问题描述】:
我注意到一些对话没有关闭,保持在 CONVERSING 状态。奇怪的是,队列被配置为一次只处理 1 条消息。然而,在实践中,有 2 个会话处于 CONVERSING 状态,一个确实在做一些工作,另一个似乎卡住了。
我使用的是单个队列和服务,这与通常的服务代理实现不同(使它更像是独白而不是对话)。我正在启动激活 SP:
RECEIVE TOP(1)
@Handle = conversation_handle,
@MsgTypeName = message_type_name
FROM [//MyQueue]
IF (@@ROWCOUNT = 0)
RETURN
ELSE IF ((@MsgTypeName is null) or (@Handle is null))
RETURN
ELSE IF (@MsgTypeName != '//MyRequest')
BEGIN
END CONVERSATION @Handle
RETURN
END
【问题讨论】:
-
除非您提供更多代码(我不是在谈论业务逻辑,而是与代理相关的部分)以及您用来设置的 DDL 命令,否则很难为您提供帮助整件事。
标签: sql sql-server-2005 stored-procedures service-broker