• According to the definition of sys.transmission_queue you need to be member of the db_owner role.

    Check out the WHERE clause below:

    sp_helptext 'sys.transmission_queue'

    CREATE VIEW sys.transmission_queue AS

    SELECT conversation_handle = S.handle,

    to_service_name = Q.tosvc,

    to_broker_instance = Q.tobrkrinst,

    from_service_name = Q.fromsvc,

    service_contract_name = Q.svccontr,

    enqueue_time = Q.enqtime,

    message_sequence_number = Q.msgseqnum,

    message_type_name = Q.msgtype,

    is_conversation_error = sysconv(bit, Q.status & 2),

    is_end_of_dialog = sysconv(bit, Q.status & 4),

    message_body = Q.msgbody,

    transmission_status = GET_TRANSMISSION_STATUS (S.handle)

    FROM sys.sysxmitqueue Q

    INNER JOIN sys.sysdesend S WITH (NOLOCK) on Q.dlgid = S.diagid AND Q.finitiator = S.initiator

    WHERE is_member('db_owner') = 1