sql-server - 为什么我需要两个 SQL Server Service Broker 队列来完成一个简单的任务?

标签 sql-server tsql service-broker

我在网上找到的所有使用 SQL Server Service Broker 队列的示例似乎都有两个队列。我不明白为什么,每个例子似乎都假设这是显而易见的,没有必要解释。

有几件事将写入我的队列,并且存储过程将从其中读取并插入到数据库中。为什么我需要两个队列?

例如:http://www.techrepublic.com/article/use-service-broker-internal-activation-in-sql-server-2005/6156264#

最佳答案

从技术上讲,您可以在应用程序中使用 SSB 技术使用一个队列。在这种情况下,这个队列有来自发起者的请求消息和来自目标的响应消息的困惑。您的存储过程应该实现机制来区分彼此,整理它们,决定哪个响应针对哪个请求等等。还要记住,从这个队列接收消息的顺序是准确的,你不能跳过其中的一些并留在队列中以供进一步处理。

在您的情况下,最好遵循 Remus Rusanu 的回答并使用数据库表实现您的队列?

SSB 的想法很简单——发起者将请求消息放入目标的队列,同时在自己的队列中等待来自目标的响应消息。是你的情况吗?如果不是,也许您根本不需要 SSB?

关于sql-server - 为什么我需要两个 SQL Server Service Broker 队列来完成一个简单的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643015/

相关文章:

sql-server - 我可以在一组 Azure 服务器上运行 .bat 文件吗?

sql - 从 MySql 移植到 T-Sql。任何 INET_ATON() 等价物?

sql-server - 有没有办法以编程方式检测 SET IDENTITY_INSERT xyz ON/OFF 设​​置?

sql-server - 如何在 PATINDEX 模式参数中转义下划线字符?

sql-server - SQL Service Broker —一个中央SQL和多个附属SQL

sql-server - SQL Service Broker 作为 .net 的通用企业消息总线

c# - SQL Server 应用程序 - 将数据库重置为原始状态

sql-server - 为什么这次加入需要这么长时间?

sql-server - 执行 SQLCommand 而不指定事务

sql-server - 是否有一种快速删除 Service Broker 队列的方法