很少,由于尚未确定的原因,我的队列被禁用,当发生这种情况时,我再次使用此查询启用:
ALTER QUEUE [MyQueue] WITH STATUS = ON;
但是,我想知道何时禁用队列,例如事件(T-SQL),或者如果启用了队列,则检查每个“x”时间。
答案 0 :(得分:13)
select is_receive_enabled
from sys.service_queues
where name = N'MyQueue';
您的队列被poison message handling mechanism禁用。发生这种情况时会触发一个事件,可以通过事件通知捕获,请参阅Service Broker Application Queue Disable Event。