根据Remus Resanu的this文章,我已经实现了SQL Server Service Broker的错误处理。
当我运行该过程并激活脚本开始但从未停止处理时。根据SQL Server日志文件,我的错误处理看起来有一个拼写错误,它现在陷入无限循环。
我尝试使用kill <pid>
终止该过程,但收到消息Only user processes can be killed
。我也试过重启服务器,但激活脚本会重新开始。
如何杀死失控的激活过程?
答案 0 :(得分:3)
我无法通过google / bing搜索找到解决方案。我最终记得我们通过SQL命令启用了服务代理,因此我尝试禁用它,这似乎有效:
ALTER DATABASE dbname SET DISABLE_BROKER;
答案 1 :(得分:1)
它看起来像无证件。如果激活的过程不发出END CONVERSATION,它将继续在无限循环中重新启动。因此,要停止它,您需要使其成功运行任何对话框的END CONVERSATION。如果队列因检测到病毒邮件而被禁用,则需要将其删除以停止激活过程 - 无需重置代理。我没有找到解决这个问题的方法,所以我玩了一下,希望这会给你一个提示。