Sql-Server

數據庫上沒有服務代理處於活動狀態

  • July 11, 2015

我正在嘗試設置查詢通知,但是當我嘗試創建隊列和服務時,我收到錯誤“數據庫中沒有活動的服務代理。更改為包含 Service Broker 的數據庫上下文。當我執行查詢

select is_broker_enabled from sys.databases where name='db01' 

它返回 1 表示已在數據庫上啟用代理

這是我正在執行的用於創建隊列和服務的 sql 命令…

CREATE QUEUE DeviceChangeMessages
CREATE SERVICE DeviceChangeNotifications ON QUEUE DeviceChangeMessages ([http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification]);

好吧,我認為這很簡單。

  1. 您只會收到未啟用 Service Broker 的消息。但是您查詢的是系統數據庫,而不是您目前的數據庫。可能是一個想法,您執行腳本以在數據庫中設置通知,master而您忘記將數據庫上下文更改db01為啟用 Service Broker 的位置?
  2. 另一個極端情況可能是msdb,重新檢查它是否啟用。
  3. 否則嘗試啟用/禁用您的服務代理並重db01試。

你可以使用這個:

ALTER DATABASE dbo1 SET DISABLE_BROKER
ALTER DATABASE dbo1 SET ENABLE_BROKER

引用自:https://dba.stackexchange.com/questions/106672