如何检查我的队列(Service Broker)是否启用?

Mak*_*ito 6 sql service-broker sql-server-2008

很少,由于尚未识别的原因,我的队列被禁用,当发生这种情况时,我再次使用此查询启用:

  ALTER QUEUE [MyQueue] WITH STATUS = ON;
Run Code Online (Sandbox Code Playgroud)

但是,我想知道何时禁用队列,例如事件(T-SQL),或者如果启用了队列,则检查每个"x"时间.

Rem*_*anu 15

看看sys.service_queues:

select is_receive_enabled
from sys.service_queues
where name = N'MyQueue';
Run Code Online (Sandbox Code Playgroud)

您的队列被病毒邮件处理机制禁用.发生这种情况时会触发一个可以通过事件通知捕获的事件,请参阅Service Broker应用程序队列禁用事件.