Habilitar o SQL Server Broker demorando muito

134

Eu tenho um Microsoft SQL Server 2005 e tentei ativar o Broker para meu banco de dados com os T-SQL:

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

A Alter Databaseleva muito tempo para processo. Já passou de meia hora e ainda está em execução. Não tenho certeza se está esperando outra coisa ou tenho que limpar alguma coisa primeiro, como excluir todas as mensagens, contratos, filas e serviços do Service Broker?

David.Chu.ca
fonte
Como uma observação lateral para outras pessoas, se houver alguma conexão aberta com o banco de dados, elas causariam esse atraso. Corra sp_whopara mostrar se há algum .. (pode ser você)
ChipperG

Respostas:

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

Na verdade, estou preferindo usar NEW_BROKER, está funcionando bem em todos os casos:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
Mike Darwish
fonte
2
você deve explicar por que prefere e o que faz de diferente ...
Mitch Wheat
Está funcionando bem e sem demora em todos os casos
Mike Darwish
2

A habilitação do SQL Server Service Broker requer um bloqueio de banco de dados. Pare o SQL Server Agent e execute o seguinte:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Altere [MyDatabase] com o nome do seu banco de dados em questão e inicie o SQL Server Agent.

Se você deseja ver todos os bancos de dados com o Service Broker ativado ou desativado, consulte sys.databases, por exemplo:

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