Aktifkan SQL Server Broker terlalu lama

134

Saya memiliki Microsoft SQL server 2005 dan saya mencoba mengaktifkan Broker untuk database saya dengan T-SQL:

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

The Alter Databasemembutuhkan waktu lama untuk proses. Sekarang sudah lebih dari setengah jam dan masih berjalan. Tidak yakin apakah itu menunggu sesuatu yang lain atau saya harus membersihkan sesuatu terlebih dahulu, seperti menghapus semua pesan, kontrak, antrian dan layanan di bawah broker layanan?

David.Chu.ca
sumber
Sebagai catatan tambahan untuk orang lain, jika ada koneksi terbuka ke db, mereka akan menyebabkan penundaan ini. Jalankan sp_whountuk menunjukkan jika ada .. (mungkin Anda)
ChipperG

Jawaban:

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

Sebenarnya saya lebih suka menggunakan NEW_BROKER, itu berfungsi dengan baik pada semua kasus:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
Mike Darwish
sumber
2
Anda harus menjelaskan mengapa Anda lebih suka dan apa fungsinya secara berbeda ....
Mitch Wheat
Ini berfungsi dengan baik dan tanpa waktu dalam semua kasus
Mike Darwish
2

Mengaktifkan SQL Server Service Broker membutuhkan kunci basis data. Hentikan Agen SQL Server dan kemudian jalankan hal berikut:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Ubah [MyDatabase] dengan nama database Anda yang dimaksud dan kemudian mulai SQL Server Agent.

Jika Anda ingin melihat semua database yang mengaktifkan atau menonaktifkan Broker Layanan, maka permintaan sys.databases, misalnya:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
Sean Perkins
sumber