Activer SQL Server Broker prend trop de temps

134

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 Databasetraitement prend beaucoup de temps. Il est maintenant plus d'une demi-heure et il fonctionne toujours. Vous ne savez pas s'il attend autre chose ou si je dois d'abord nettoyer quelque chose, comme supprimer tous les messages, le contrat, la file d'attente et les services sous Service Broker?

David.Chu.ca
la source
En remarque pour les autres, s'il y a des connexions ouvertes à la base de données, elles provoqueraient ce retard. Courez sp_whopour montrer s'il y en a .. (ça pourrait être vous)
ChipperG

Réponses:

11
USE master;
GO
ALTER DATABASE Database_Name
    SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO
Irfanullah
la source
2

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;
Mike Darwish
la source
2
vous devriez expliquer pourquoi vous le préférez et ce qu'il fait différemment ....
Mitch Wheat
Cela fonctionne bien et sans prendre de temps dans tous les cas
Mike Darwish le
2

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 ce qui suit:

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 l'Agent SQL Server.

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

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
Sean Perkins
la source