2009-07-07 19 views
98

alarak etkinleştirme ve ben bu T-SQL ile benim veritabanı için Broker'ı etkinleştirmek için çalıştı:Bir Microsoft SQL sunucusu 2005 olması SQL Server Broker çok uzun süre

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

işlemek için uzun zaman alır. Şimdi yarım saatten fazla ve hala çalışıyor. Başka bir şey beklediğinden emin değil miyim yoksa ilk önce herhangi bir şeyi temizlemek zorundayım, örneğin servis komisyoncusu altında tüm mesajları, sözleşmeyi, sırayı ve hizmetleri silmek gibi?

cevap

199

http://rusanu.com/2006/01/30/how-long-should-i-expect-alter-databse-set-enable_broker-to-run/

kodunun altına sayesinde
alter database [<dbname>] set enable_broker with rollback immediate; 
+6

"acil geri alma ile" etkisi nedir? –

+10

@ A.Dara Veritabanını bekleyen işlemler olduğu sürece değiştiremezsiniz. Geri alma anında bunların tümünü sonlandıracak. – libjup

+0

yanıtı [this] (http://stackoverflow.com/questions/38456433/cannot-find-the-object-querynotificationerrorsqueue-because-it-does-not-exist) sqlDependency'e gönderebilir misiniz? – stom

13

hizmet komisyoncu kuyruğunu etkinleştirebilirsiniz hemen her durumda üzerinde iyi çalışıyor

ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE; 
Aslında
8
USE master; 
GO 
ALTER DATABASE Database_Name 
    SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE; 
GO 
USE Database_Name; 
GO 
1

Ben NEW_BROKER kullanmayı tercih ediyorum:

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

SQL Server Hizmet Aracısı'nı etkinleştirme, bir veritabanı kilidi gerektirir. SQL Server Agent 'Durdur ve sonra aşağıdaki çalıştırın:

USE master ; 
GO 

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ; 
GO 

Değişim [MyDatabase] Söz konusu veritabanınızın adı ile ve daha sonra başlamak SQL Server Agent'.

, sonra mesela sys.databases sorgulamak Hizmet Aracısı etkin veya devre dışı olan tüm veritabanlarını görmek istiyorsanız:

SELECT 
    name, database_id, is_broker_enabled 
FROM sys.databases