Gestione delle priorità di conversazione

Le priorità di conversazione di Service Broker consentono di specificare a quali conversazioni dare la priorità, in modo che i messaggi non vengano bloccati da un numero elevato di messaggi appartenenti a conversazioni meno importanti.

Attivazione delle priorità di conversazione

Le priorità di conversazione sono sempre attive per le istruzioni RECEIVE. L'opzione di database HONOR_BROKER_PRIORITY deve essere attiva affinché le priorità di conversazione siano attive per le istruzioni SEND. Per impostazione predefinita, l'opzione è disattivata per tutti i database.

Un amministratore può attivare le priorità di conversazione per le istruzioni SEND in un database utilizzando l'istruzione seguente:

ALTER DATABASE MyDatabase SET HONOR_BROKER_PRIORITY ON;

Un amministratore può disattivare le priorità di conversazione per le istruzioni SEND in un database utilizzando l'istruzione seguente:

ALTER DATABASE MyDatabase SET HONOR_BROKER_PRIORITY OFF;

Specifica delle priorità di conversazione

Le priorità di conversazione vengono specificate utilizzando le istruzioni CREATE BROKER PRIORITY, ALTER BROKER PRIORITY e DROP BROKER PRIORITY. Per ulteriori informazioni, vedere Priorità di conversazione.

Esecuzione di query sulle priorità di conversazione

Le priorità di conversazione vengono archiviate nella vista di sistema sys.conversation_priorities. Nell'istruzione seguente vengono elencate tutte le priorità di conversazione nel database corrente:

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;