In der Datenbank ist kein Service Broker aktiv


7

Ich versuche, eine Abfragemeldung einzurichten. Wenn ich jedoch versuche, eine Warteschlange und einen Dienst zu erstellen, wird die Fehlermeldung angezeigt, dass in der Datenbank kein Dienstbroker aktiv ist. Wechseln Sie in einen Datenbankkontext, der einen Service Broker enthält. ' Wenn ich die Abfrage ausführe

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

Es wird 1 zurückgegeben, was bedeutet, dass ein Broker in der Datenbank aktiviert wurde

Hier sind die SQL-Befehle, die ich zum Erstellen meiner Warteschlange und meines Dienstes ausführe ...

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

Ist der Broker auf 'msdb` aktiviert?
Kin Shah

Überprüfen Sie, ob Sie ein Duplikat service_broker_guidin sys.databases
Remus Rusanu

Antworten:


5

Nun, ich denke es ist ganz einfach.

  1. Sie erhalten nur die Meldung, dass Service Broker nicht aktiviert ist. Sie fragen jedoch die Systemdatenbanken ab, nicht Ihre aktuelle Datenbank. Könnte es nur eine Idee sein, dass Sie das Skript zum Einrichten der Benachrichtigung in Ihrer masterDatenbank ausführen, während Sie vergessen, den Datenbankkontext in den Kontext zu ändern, in db01dem der Service Broker aktiviert ist?
  2. Ein weiterer msdbRandfall kann der sein , erneut prüfen, ob dies aktiviert ist.
  3. Versuchen Sie andernfalls, den Service Broker in Ihrem zu aktivieren / deaktivieren, db01und versuchen Sie es erneut .

Sie können dies verwenden:

ALTER DATABASE dbo1 SET DISABLE_BROKER
ALTER DATABASE dbo1 SET ENABLE_BROKER
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.