【问题标题】:Why sys.conversation_endpoints can be empty?为什么 sys.conversation_endpoints 可以为空?
【发布时间】: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)

【问题讨论】:

  • 您是在寻找发起​​者还是目标?你要结束对话了吗?

标签: sql-server service-broker


【解决方案1】:

问题在于调用我的存储过程的用户,他没有权限查看一些元数据信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2023-03-05
    • 2011-08-20
    • 1970-01-01
    相关资源
    最近更新 更多