web-dev-qa-db-ger.com

Aktivieren Sie, dass SQL Server Broker zu lange dauert

Ich habe einen Microsoft SQL Server 2005 und habe versucht, Broker für meine Datenbank mit diesen T-SQL zu aktivieren:

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

Die Verarbeitung von Alter Database dauert lange. Es ist jetzt über eine halbe Stunde und es läuft noch. Sie sind sich nicht sicher, ob es auf etwas anderes wartet oder ob ich zuerst etwas bereinigen muss, z. B. alle Nachrichten, Verträge, Warteschlangen und Dienste unter Service Broker löschen?

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

Mit dem folgenden Code können Sie die Service Broker-Warteschlange sofort aktivieren

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

Eigentlich ziehe ich es vor NEW_BROKER zu verwenden, es funktioniert in allen Fällen gut:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
1
Mike Darwish

Zum Aktivieren von SQL Server Service Broker ist eine Datenbanksperre erforderlich. Stoppen Sie den SQL Server-Agent und führen Sie dann Folgendes aus:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Ändern Sie [MyDatabase] mit dem Namen Ihrer fraglichen Datenbank und starten Sie den SQL Server-Agent.

Wenn Sie alle Datenbanken anzeigen möchten, für die Service Broker aktiviert oder deaktiviert ist, fragen Sie sys.databases ab. Beispiel:

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

In meinem Fall verwendete ich die SQL-Datenbank in meinem Webprojekt wie im Debugging-Modus. Wenn ich also alle Verbindungen geschlossen habe, ist das einwandfrei.

0
Jamshaid Kamran