Поделиться через


Управление приоритетом диалогов

Приоритеты диалогов компонента Service Broker позволяют указать те диалоги, сообщения которых не будут блокироваться большим количеством сообщений от менее значимых диалогов.

Включение приоритетов диалогов

Приоритеты диалогов всегда активны для инструкций RECEIVE. Параметр базы данных HONOR_BROKER_PRIORITY должен быть включен для того, чтобы приоритеты диалога стали активными для инструкций SEND. По умолчанию для всех баз данных этот параметр отключен.

Администратор может включить приоритеты диалогов для инструкций SEND в базе данных с помощью следующей инструкции.

ALTER DATABASE MyDatabase SET HONOR_BROKER_PRIORITY ON;

Администратор может отключить приоритеты диалогов для инструкций SEND в базе данных с помощью следующей инструкции.

ALTER DATABASE MyDatabase SET HONOR_BROKER_PRIORITY OFF;

Указание приоритетов диалогов

Приоритеты диалогов указываются с помощью инструкций CREATE BROKER PRIORITY, ALTER BROKER PRIORITY и DROP BROKER PRIORITY. Дополнительные сведения см. в разделе Приоритеты диалогов.

Запрос к приоритетам диалогов

Приоритеты диалогов хранятся в системном представлении sys.conversation_priorities. Следующая инструкция выводит список всех приоритетов диалогов в текущей базе данных.

SELECT scp.name AS priority_name,
       ssc.name AS contract_name,
       ssvc.name AS local_service_name,
       scp.remote_service_name,
       scp.priority AS priority_level
FROM sys.conversation_priorities AS scp
    INNER JOIN sys.service_contracts AS ssc
       ON scp.service_contract_id = ssc.service_contract_id
    INNER JOIN sys.services AS ssvc
       ON scp.local_service_id = ssvc.service_id
ORDER BY contract_name, local_service_name,
         remote_service_name;