Activer SQL Server Broker pendant trop longtemps

J’ai un serveur Microsoft SQL 2005 et j’ai essayé d’activer Broker pour ma firebase database avec ces T-SQL:

SELECT name, is_broker_enabled FROM sys.databases -- checking its status 0 in my case ALTER DATABASE myDatabase SET ENABLE_BROKER 

La Alter Database prend beaucoup de temps à traiter. Il est maintenant plus d’une demi-heure et il tourne toujours. Vous ne savez pas si elle attend quelque chose d’autre ou je dois d’abord nettoyer quoi que ce soit, par exemple supprimer tous les messages, contrats, files d’attente et services du courtier de services?

http://rusanu.com/2006/01/30/how-long-should-i-expect-alter-databse-set-enable_broker-to-run/

 alter database [] set enable_broker with rollback immediate; 

Avec le code ci-dessous, vous pouvez activer la queue du courtier de service immédiatement

 ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE; 
 USE master; GO ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE; GO USE Database_Name; GO 

En fait, je préfère utiliser NEW_BROKER , cela fonctionne bien dans tous les cas:

 ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE; 

L’activation de SQL Server Service Broker nécessite un verrou de firebase database. Arrêtez l’Agent SQL Server, puis exécutez les opérations suivantes:

 USE master ; GO ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ; GO 

Modifiez [MyDatabase] avec le nom de votre firebase database en question, puis démarrez SQL Server Agent.

Si vous souhaitez voir toutes les bases de données pour lesquelles Service Broker est activé ou désactivé, interrogez par exemple sys.databases:

 SELECT name, database_id, is_broker_enabled FROM sys.databases