Service Broker应用程序队列禁用事件

时间:2012-09-17 23:19:15

标签: service-broker

我在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

1 个答案:

答案 0 :(得分:1)

我找到了问题的答案:)

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