【发布时间】:2019-12-18 08:13:54
【问题描述】:
我已经开始使用 Service Broker。阅读文章https://www.itprotoday.com/sql-server/managing-service-broker-conversations 后,我尝试通过从 sys.conversation_endpoints 中选择现有对话来重用对话:
select top 1
@Handle = CEP.conversation_handle
from sys.conversation_endpoints CEP with(nolock)
where CEP.far_service = 'EventService'
and CEP.state = 'CO'
and CEP.is_initiator = 1
order by CEP.lifetime desc
而且在舞台上效果很好。但是在发布到 prod 后发现选择 sys.conversation_endpoints 问题 - 有时它是空的,即使没有锁定,尽管在监控脚本中选择时有很多记录。在谷歌上呆了几个小时后,我找不到答案。请帮助我了解如何避免它。
PS Microsoft SQL Server 2017 (RTM-CU17) (KB4515579) - 14.0.3238.1 (X64)
【问题讨论】:
-
您是在寻找发起者还是目标?你要结束对话了吗?