Q:

Status for a service broker queue

Looking at the sys.service_queues DMV, I see that there are columns called "is_enqueue_enabled" and "is_receive_enabled".   However, in the "ALTER QUEUE" DDL, there only seems to be a "STATUS" that can be toggled.   Similarly, in the SMO for a queue, there seems to be only a "IsEnqueueEnabled" property.   My question is: will it always be the case that is_enqueue_enabled and is_receive_enabled have the same value?   If not, how does one set them independently? 

A:

The original design called for separate enqueue_enabled (allow SEND) and dequeue_enabled (allow RECEIVE).  The added complexity (as SSB wouldn't already be complex enough!)  did not warrant the benefits, so in the end it was settled for a less granular 'queue enabled'.  The metadata though was intentionally left split in order to enable the separation in future.  Now, even if there is no plan to split the enable/disable in SEND/RECEIVE, the view has to stay like that because of back compat issues. 
From your point of view: the two values should always be in sync (both 0 or both 1).  Altering the enabled/disabled status on the queue should change both values at once.