我在EVENT NOTIFICATION中尝试选项BROKER_QUEUE_DISABLED
似乎没有正确生成Broker Queue禁用事件。有人可以验证我创建的脚本吗? (见下文)
脚本:
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
答案 0 :(得分:1)
我找到了问题的答案:)
如果我们手动关闭队列,SQL引擎将不会生成禁用事件。只有在激活过程中发生任何错误时,它才会生成。我在激活过程中添加了自定义错误,类似于SELECT 1/0
,然后SQL可以生成禁用事件。