gpt4 book ai didi

sql - 服务代理队列正在禁用自身,无法找出原因

转载 作者:行者123 更新时间:2023-12-03 01:55:54 24 4
gpt4 key购买 nike

在 sys.transmission_queue 中,我得到的唯一信息是“一条或多条消息无法传递到此对话框所针对的本地服务。”

如果我重新启用问题队列之一(有五个)并将“激活”设置为“关闭”,队列将填满其消息。如果我随后运行激活 SP,我将正确处理消息,不会出现问题。但是一旦我打开激活,如果队列中有任何消息,队列将再次禁用自己。

我彻底迷路了。有谁知道我该如何解决这个问题?

最佳答案

队列会自行禁用以响应 poison message handling protection 。这意味着您激活的程序正在回滚,可能是由于某些异常。激活的过程没有 session 来发送错误,因此它们将其发送到 ERRORLOG。检查您的错误日志,应该充满了来自您激活的程序的错误消息。

最简单的故障排除方法是在激活关闭时从 SSMS 手动运行激活的过程。尝试重新创建与激活相同的执行上下文,请参阅Internal Activation Context 。关键部分是 EXECUTE AS 上下文,它正在改变很多行为,尤其是安全性。所以尝试一下(假设您的队列在 dbo 下执行):

use <dbname>;
go

execute as user = 'dbo';
go

exec <sp_my_activated_proc>;
go

revert;
go

您可能会收到一条错误消息,这可能是您重复禁用的原因。

关于sql - 服务代理队列正在禁用自身,无法找出原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15706259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com