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?


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

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;

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.