【问题标题】:Broker Service Sending Queues IssueBroker Service 发送队列问题
【发布时间】:2012-04-23 08:28:57
【问题描述】:

我在两个不同的实例上实现了许多 SSB。它们是基于异步触发器的数据推送模式。

My SQL Info 如下所示: Microsoft SQL Server Management Studio 10.50.2500.0 Microsoft Analysis Services Client Tools 10.50.2500.0 Microsoft Data Access Components (MDAC) 6.1.7601.17514 Microsoft MSXML 3.0 4.0 5.0 6.0 Microsoft Internet Explorer 9.0.8112.16421 Microsoft .NET Framework 2.0.50727.5448 操作系统 6.1.7601

我注意到有些奇怪,我所有的发送队列都充满了来自 type 的消息 http://schemas.microsoft.com/SQL/ServiceBroker/EndDialog

肯定会影响队列性能,我必须摆脱这些消息。

1- 我应该为发送队列分配一个阅读器来结束这些消息吗?

2- 或者我在结束对话时在接收方做错了什么?

【问题讨论】:

    标签: sql-server sql-server-2008 tsql service-broker


    【解决方案1】:

    现在设计的 Service Broker 消息始终是对话,这意味着对话中始终有两个参与者。当对话的一方结束时,它会调用END CONVERSATION,它会向对话中的其他参与者发送一个 EndDialog 消息类型。应该处理这些消息,如果没有其他原因,只是为了确保它们不占用空间。您可以在队列上创建一个激活存储过程来处理这些。这样,它会自动发生,您不必担心。

    【讨论】:

    • 发送队列上的激活过程不会影响发送性能吗?
    • 除了最小的资源消耗(即磁盘、cpu)之外,我不明白为什么它会。我在这里强调最小;如果您所做的只是在发起者处调用 END CONVERSATION,那么这应该是微不足道的。但不要相信我的话:把它写下来,看看它对你有什么好处。一些提示:1) 一次只有一个激活存储过程处于活动状态。 2) 编写 sproc,使其在队列为空之前进行接收(即处理多个消息)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多