2009-07-07 14 views
98

を取って有効にします。私はMicrosoft SQL Server 2005を持っていると私はそれらのT-SQLと私のデータベースのためのブローカーを有効にしようとしたSQL Serverのブローカーがあまりにも長い時間

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

Alter Databaseは、処理に長い時間がかかります。今は半時間を超えており、まだ稼働しています。それが何かを待っているかわからない場合や、サービスブローカの下にあるすべてのメッセージ、契約、キュー、サービスを削除するなど、最初に何かをクリーンアップしなければならないのでしょうか?コードの下で

答えて

199

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; 
+6

「即時ロールバックを持つ」の効果は何ですか? –

+10

@ A.Dara保留中のトランザクションがある限り、データベースを変更することはできません。 Rollback immediateは、これらのすべてを終了します。 – libjup

+0

あなたは[this](http://stackoverflow.com/questions/38456433/cannot-find-the-object-querynotificationerrorsque-because-it-does-not-exist)のsqlDependencyに投稿できますか? – stom

13

すぐ

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

をサービスブローカーキューを有効にすることができます実際に私がNEW_BROKERを使用することを好むのです、それはすべての場合に正常に動作している:

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

SQL Server Service Brokerを有効にするにはデータベースロックが必要です。 SQL Serverエージェントを停止してから、次のコマンドを実行します。

USE master ; 
GO 

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ; 
GO 

変更[MyDatabaseという]問題のデータベースの名前にして、SQL Serverエージェントを起動します。

あなたは、その後、例えば、sys.databasesを照会サービスブローカを有効にするか無効にしたすべてのデータベースを確認したい場合は、次の

SELECT 
    name, database_id, is_broker_enabled 
FROM sys.databases 
関連する問題