Abilita SQL Server Broker prendendo troppo tempo
-
11-09-2019 - |
Domanda
Ho un server Microsoft SQL 2005 e ho cercato di abilitare Broker per la mia base di dati con quelli T-SQL:
SELECT name, is_broker_enabled FROM sys.databases
-- checking its status 0 in my case
ALTER DATABASE myDatabase SET ENABLE_BROKER
Il Alter Database
richiede molto tempo per elaborare. E 'ormai più di mezz'ora e si è ancora in esecuzione. Non sono sicuro se si è in attesa di qualcos'altro o devo ripulire nulla prima, come ad esempio eliminare tutti i messaggi, contratti, code e servizi con Service Broker?
Soluzione
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;
Altri suggerimenti
Con il codice qui sotto è possibile attivare subito la coda di Service Broker
ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
USE master;
GO
ALTER DATABASE Database_Name
SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO
L'attivazione di SQL Server Service Broker richiede un blocco del database. Arrestare l'agente SQL Server e quindi eseguire il seguente:
USE master ;
GO
ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO
Cambia [MyDatabase] con il nome del database in questione e quindi avviare SQL Server Agent.
Se si desidera visualizzare tutti i database che hanno permesso Service Broker o disabilitato, quindi eseguire una query sys.databases, per esempio:
SELECT
name, database_id, is_broker_enabled
FROM sys.databases
In realtà io sto preferendo utilizzare NEW_BROKER
, si sta lavorando bene su tutti i casi:
ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
Nel mio caso, stavo usando il database SQL nel mio progetto web come se fosse in modalità di debug. Così, quando ho chiuso tutti i collegamenti è eseguita bene.