Abilitare SQL Server Broker impiegando troppo tempo


134

Ho un Microsoft SQL Server 2005 e ho provato ad abilitare Broker per il mio database con quei T-SQL:

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

L' Alter Databaseelaborazione richiede molto tempo. Ora è più di mezz'ora ed è ancora in esecuzione. Non sei sicuro che stia aspettando qualcos'altro o devo prima ripulire qualcosa, come eliminare tutti i messaggi, il contratto, la coda e i servizi nel broker di servizi?


Come nota a margine per gli altri, se ci sono connessioni aperte al db, causerebbero questo ritardo. Corri sp_whoper mostrare se ce ne sono .. (potresti essere tu)
ChipperG

Risposte:



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

2

In realtà preferisco usare NEW_BROKER, funziona bene su tutti i casi:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

2
dovresti spiegare perché lo preferisci e cosa fa diversamente ....
Mitch Wheat,

Funziona bene e senza tempo in tutti i casi
Mike Darwish,

2

L'abilitazione di SQL Server Service Broker richiede un blocco del database. Arrestare SQL Server Agent e quindi eseguire quanto segue:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Modificare [MyDatabase] con il nome del database in questione, quindi avviare SQL Server Agent.

Se si desidera visualizzare tutti i database con Service Broker abilitato o disabilitato, eseguire una query su database sys.d, ad esempio:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.