【发布时间】:2015-10-19 17:09:39
【问题描述】:
我目前正在使用带有 SQL Server 2012 Service Broker 的 SqlDependency,并且我希望能够配置两台服务器,同时侦听服务代理并退出队列,但消息总共只能退出队列一次。每台机器都应该尽量减少它所能做的,但如果有太多的机器进来,它应该在尽可能多的拉动方面保持平衡。现在我启动了两个程序实例,并且都在监听。添加新消息后,它们都会从队列中取出相同的消息并运行代码。
SqlDependency 不是我想做的解决方案吗?这种情况有什么更好的解决方案?
【问题讨论】:
-
你是configuring the queue yourself and telling SqlDependency about it,还是只是calling SqlDependency with the connection string and letting it create the queue? (文档说“如果没有指定队列名称,SqlDependency 会在服务器中创建一个用于整个进程的临时队列和服务,即使该进程涉及多个 AppDomain。队列和服务会在应用程序关闭时自动删除.")
-
我自己配置了队列并告诉 SqlDependency 使用该队列。
标签: c# sql-server-2012 service-broker sqldependency