MSSQL 2008R2服务代理启动器队列充满旧对话

我的启动器队列中充满了大约1800万个EndDialog或Error message_type_name的旧消息。

显然我用来设置内部激活的Microsoft示例代码( http://msdn.microsoft.com/en-us/library/cc281517.aspx )没有包括结束Initiator端的对话框的步骤(I'已经读过这个叫做“火与遗忘”)。

我想知道,因为我的sysdercv和其他服务经纪人相关的performance在成双数字千兆字节:我怎样才能摆脱这些旧消息?

到目前为止,我已经尝试过几千次运行END CONVERSATION,但是在这些系统表中我没有看到任何大小的变化。

此外,我怎样才能改变发起人服务/队列将来自动EndDialog?

编辑:我应该提到,尽pipe越来越多的消息通过pipe道传递,我没有看到任何这些系统表至less在半小时内改变大小。

其实,你提到的教程确实从两端发出END CONVERSATION。 因此,它不受“火与忘”模式的影响。 但是,第一个END CONVERSATION(发起方)是从查询窗口手动发出的,这不是很实用。 在生产中,您可能希望在两端都有一个激活的过程 – 启动器端的过程会从目标接收一个回复,并结束对话(也就是说,如果您想保留教程中的消息交换scheme) 。