我注意到一些对话没有关闭,保持在 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