Home > FAQ > Nel log di SQL Server trovo il messaggio “An exception occurred while enqueueing a message in the target queue…”. Come posso risolverlo?

Nel log di SQL Server trovo il messaggio “An exception occurred while enqueueing a message in the target queue…”. Come posso risolverlo?

Utilizzando il Service Broker in modo diretto od indiretto (includendo anche lo sviluppo applicativo, ad esempio facendo uso della SqlDependency oppure della SqlCacheDependency in .NET 2.0) ci si può imbattere in questo errore:

An exception occurred while enqueueing a message in the target queue. Error: 15517, State: 1. Cannot execute as the database principal because the principal "<principal_name>" does not exist, this type of principal cannot be impersonated, or you do not have permission.

L’errore è tipicamente dovuto al fatto che l’owner del database è un utente che nel database corrente non esiste. Questa situazione si può verificare quando si sposta il database da un server ad un’altro.

Ciò impedisce il corretto funzionamento del Service Broker e di tutte le tecnologie che ne fanno uso. Per risolverlo è sufficiente assegnare al database oggetto dell’errore (quello sulla quale è attivato il Service Broker) un owner corretto:

ALTER AUTHORIZATION ON DATABASE::<database> TO [sa];

Chi è Davide Mauri

Microsoft Data Platform MVP dal 2007, Davide Mauri si occupa di Data Architecture e Big Data nel mondo dell'IoT. Attualmente ricopre il ruolo di "Director Software Development & Cloud Infrastructure" in Sensoria, societa specializzata nella creazione di Wearables e sensori per l'IoT applicati a tessuti ed oggetti sportivi.

Leggi Anche

Usare json su SQLServer 2005, 2008, 2012 e 2014 .. è possibile!

Vedere il supporto nativo di JSON su SQLServer 2016 (e anche su Azure SQLDatabase) mi …

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

twenty seven − twenty six =

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.