2

我正在尝试BROKER_QUEUE_DISABLED事件通知中的一个选项,它似乎没有正确生成代理队列禁用事件。有人可以验证我创建的脚本吗?(见下文)

脚本:

CREATE QUEUE NotifyQueue

GO

CREATE

SERVICE NotifyService

ON

QUEUE NotifyQueue

[http://schemas.microsoft.com/SQL/Notifications/PostEventNotification]);


GO

CREATE ROUTE NotifyRoute
 WITH SERVICE_NAME = 'NotifyService',
 ADDRESS = 'LOCAL';
 GO

CREATE

EVENT NOTIFICATION [CHS_QueueDisabledNotif] 

       ON QUEUE [CHS_Change_Queue] WITH FAN_IN 

       FOR BROKER_QUEUE_DISABLED

       TO SERVICE 'NotifyService', 'current database'



--Testing

--Try Disabling Application Queue

ALTER QUEUE dbo.CHS_Change_Queue WITH STATUS = OFF

SELECT * FROM NotifyQueue
4

1 回答 1

2

我找到了我的问题的答案:)

如果我们手动关闭队列,SQL 引擎将不会生成禁用事件。只有在激活过程中发生任何错误时才会生成。我在激活过程中添加了自定义错误,类似于SELECT 1/0SQL 可以生成禁用事件。

于 2013-04-19T15:25:20.473 回答