安排服务代理自动接收消息

kth*_*gar 5 sql-server service-broker

我是 Sql Server Service Broker 的新手并正在尝试它。

我能够从一个数据库发送消息并在另一个数据库(同一 SQL 服务器的)中接收这些消息,并且我将这些消息插入接收数据库中的表中。

到目前为止,一切正常,但每次我从源数据库发送消息时,我都必须转到目标数据库并手动运行 RECEIVE 查询,以从接收队列中获取消息并插入到表中。

我希望在消息到达时(或按计划,例如每 10 分钟一次)自动从接收队列接收消息,并将它们插入到我的目标表中,而无需我手动执行此操作。

一种选择是创建 SP 并安排其每 10 分钟运行一次。我不确定这是否是推荐的方法,或者是否有其他更好的方法来监听接收队列并在消息到达后立即自动检索消息。

任何帮助,将不胜感激。

Ben*_*hul 2

您正在寻找的是所谓的代理激活(特别是内部激活)。本质上,您可以将存储过程“附加”到服务代理队列,当队列中出现消息时将调用该存储过程。请阅读BOL中的所有内容。