web-dev-qa-db-fra.com

Activer SQL Server Broker prend trop de temps

J'ai un serveur Microsoft SQL 2005 et j'ai essayé d'activer Broker pour ma base de données 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

Le Alter Database est long à traiter. Il est maintenant plus d'une demi-heure et il fonctionne toujours. Vous ne savez pas s'il attend quelque chose d'autre ou si je dois tout nettoyer en premier, par exemple supprimer tous les messages, le contrat, la file d'attente et les services sous Service Broker?

115
David.Chu.ca

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

alter database [<dbname>] set enable_broker with rollback immediate;
230
Remus Rusanu

Avec le code ci-dessous, vous pouvez activer la file d'attente de service broker immédiatement

ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
18
Rahul Singi
USE master;
GO
ALTER DATABASE Database_Name
    SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO
10
Irfanullah

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;
1
Mike Darwish

L'activation de SQL Server Service Broker nécessite un verrou de base de données. 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 base de données 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 activé, interrogez sys.databases, par exemple:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
1
Sean Perkins

Dans mon cas, j'utilisais la base de données SQL dans mon projet Web comme si elle était en mode débogage. Donc, quand j'ai fermé toutes les connexions, tout s'est bien passé.

0
Jamshaid Kamran