激活脚本挂起,无法关闭

Activation script hangs and cannot shutdown

我已经根据 Remus Resanu 的 this 文章实现了 SQL Server Service Broker 和错误处理。

当我 运行 进程和激活脚本被启动但从未停止处理。根据 SQL 服务器日志文件,我的错误处理似乎有错别字,现在陷入无限循环。

我尝试使用 kill <pid> 终止进程,但我收到消息 Only user processes can be killed。我也试过重新启动服务器,但激活脚本会再次启动。

如何终止失控的激活进程?

我无法通过 google/bing 搜索找到解决方案。我最终记得我们通过 SQL 命令启用了 Service broker,所以我尝试禁用它并且似乎有效:

ALTER DATABASE dbname SET DISABLE_BROKER;

它看起来像是未记录的功能。如果激活的过程不发出结束对话,它会在无限循环中不断重新启动。因此,要停止它,您需要成功 运行 结束任何对话的对话。如果队列由于检测到有毒消息而被禁用,您需要将其删除以停止激活过程 - 无需重置代理。我没有找到解决这个问题的方法,所以我试了一下,希望这能给你一个提示。