我在网上找到的使用sql Server Service Broker队列的所有示例似乎都有两个队列.我不明白为什么,每个例子似乎都认为这是显而易见的,没有必要解释.
有几件事会写入我的队列,一个存储过程将从中读取并插入到数据库中.为什么我需要两个队列?
解决方法
从技术上讲,您可以在应用程序中使用SSB技术使用一个队列.在这种情况下,此队列来自发起者的请求消息和来自目标的响应消息.您的存储过程应该实现相互区分的机制,对它们进行排序,确定哪个响应针对哪个请求等等.另外请记住,从这个队列中按顺序RECEIVE消息,你不能跳过其中一些消息并留在队列中进行进一步处理.
在您的情况下,可能更好地遵循Remus Rusanu的答案并使用数据库表实现您的队列?
SSB的想法很简单 – 发起者将请求消息放入Target的队列,同时在自己的队列中等待来自Target的响应消息.是你的情况吗?如果不是,也许你根本不需要SSB?