我是一个Sql Server服务代理新手,我试着去设置Service Broker(看似)简单用例的最佳方法:我想创建一个简单的工作队列,其中一个应用程序放弃工作项目进入队列,并且单独的应用程序从该队列中提取工作项并对其进行处理。第一个应用程序不需要从第二个应用程序获取状态消息。我希望队列能够存在于单个Sql Server实例中。Sql Server Service Broker:如何构造简单队列场景的对话?
让我最困惑的是对话/对话与这种情况的关系。我知道你只能在对话/对话的上下文中发送/接收消息,但由于两个应用程序之间没有来回的交谈,所以我失去了创建新对话的正确时间。两种极端的选择似乎是:
- 每次我排队工作项目,我开始一个新的谈话。所以每个对话最终都只有一条消息。
- 在部署时,我手动创建一个无限生命期对话。当需要排队工作项目时,我总是将它作为单个对话的一部分发送出去。
什么将要去这两种路线的后果是什么?
此外,在第一种情况下,好像我需要做一些结束对话,以便为SQL Server能够在内部清理资源。有什么指导什么时候将这些放在正确的位置? (也可能是潜在更好地依靠对话最终超时?)
您似乎在讨论单个队列,但是... http://stackoverflow.com/questions/14643015/why-do-i-need-two-sql-server-service-broker-queues-for-a-simple-task – cja 2013-02-01 09:19:26