Microsoft SQL Server 2005を使用しており、これらのT-SQLでデータベースのBrokerを有効にしようとしました。
SELECT name, is_broker_enabled FROM sys.databases
-- checking its status 0 in my case
ALTER DATABASE myDatabase SET ENABLE_BROKER
Alter Database
の処理には時間がかかります。現在、30分以上経過しており、まだ実行中です。他の何かを待っているのか、またはすべてのメッセージ、コントラクト、キュー、Service Brokerの下のサービスを削除するなど、最初に何かをクリーンアップする必要があるのかわかりませんか?
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;
以下のコードを使用すると、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
SQL Server Service Brokerを有効にするには、データベースロックが必要です。 SQL Serverエージェントを停止してから、次を実行します。
USE master ;
GO
ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO
[MyDatabase]を問題のデータベースの名前に変更してから、SQL Serverエージェントを起動します。
Service Brokerが有効または無効になっているすべてのデータベースを表示する場合は、たとえばsys.databasesをクエリします。
SELECT
name, database_id, is_broker_enabled
FROM sys.databases
実際、私はNEW_BROKER
を使用することを好みます。それはすべての場合にうまく機能しています:
ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
私の場合、デバッグモードのように、WebプロジェクトでSQLデータベースを使用していました。したがって、すべての接続を閉じたとき、それはうまく実行されました。