查看 sys.service_queues DMV,我看到有名为“is_enqueue_enabled”和“is_receive_enabled”的列。但是,在“ALTER QUEUE”DDL 中,似乎只有一个可以切换的“STATUS”。同样,在队列的 SMO 中,似乎只有一个“IsEnqueueEnabled”属性。我的问题是:is_enqueue_enabled 和 is_receive_enabled 是否总是具有相同的值?如果不是,如何独立设置它们?
查看 sys.service_queues DMV,我看到有名为“is_enqueue_enabled”和“is_receive_enabled”的列。但是,在“ALTER QUEUE”DDL 中,似乎只有一个可以切换的“STATUS”。同样,在队列的 SMO 中,似乎只有一个“IsEnqueueEnabled”属性。我的问题是:is_enqueue_enabled 和 is_receive_enabled 是否总是具有相同的值?如果不是,如何独立设置它们?
最初的设计要求单独的 enqueue_enabled(允许 SEND)和 dequeue_enabled(允许 RECEIVE)。增加的复杂性(因为 SSB 还不够复杂!)并不能保证好处,所以最终它被解决了一个不那么细化的“启用队列”。元数据虽然被故意分开,以便将来能够分离。现在,即使没有计划在 SEND/RECEIVE 中拆分启用/禁用,由于向后兼容问题,视图也必须保持不变。
从您的角度来看:这两个值应始终保持同步(均为 0 或均为 1)。更改队列上的启用/禁用状态应该同时更改这两个值。