Gerenciando as prioridades de conversação

As prioridades de conversação Service Broker permitem especificar quais conversações priorizar de modo que suas mensagens não sejam bloqueadas por grandes números de mensagens de conversações menos importantes.

Ativando prioridades de conversação

As prioridades de conversação sempre estão ativas para instruções RECEIVE. A opção de banco de dados HONOR_BROKER_PRIORITY deve recair em tornar prioridades de conversação ativas para instruções SEND. Por padrão, essa opção é definida como OFF para todos os bancos de dados.

Um administrador pode habilitar prioridades de conversação para instruções SEND em um banco de dados usando a seguinte instrução:

ALTER DATABASE MyDatabase SET HONOR_BROKER_PRIORITY ON;

Um administrador pode desativar prioridades de conversação para instruções SEND usando a seguinte instrução:

ALTER DATABASE MyDatabase SET HONOR_BROKER_PRIORITY OFF;

Especificando prioridades de conversação

Prioridades de conversação são especificadas usando instruções CREATE BROKER PRIORITY, ALTER BROKER PRIORITY e DROP BROKE PRIORITY. Para obter mais informações, consulte Prioridades de conversação.

Consultando prioridades de conversação

As prioridades de conversação são armazenadas na exibição do sistema sys.conversation_priorities. A instrução a seguir lista todas as prioridades de conversação no banco de dados atual:

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;