Benutzer mit den meisten Antworten
Service Broker Hauptschlüssel Fehlercode32 und Error -8490

Frage
-
Hallo,
wir haben bei einem Kunden den SQL Server Express 2016 in der Version 13.0.5026.0 im Einsatz.
Für unsere Softwarelösung nutzen wir den Service Broker. Heute hatte ich die Windows Protokolle und habe zu dem Service Broker 2 Meldungen gefunden, die sich sehr oft wiederholen. Hoffentlich kann mir da einer weiterhelfen.
Meldung 1:
Service Broker muss auf den Hauptschlüssel in der XXXX-Datenbank zugreifen. Fehlercode:32. Der Hauptschlüssel muss vorhanden sein, und die Verschlüsselung für den Diensthauptschlüssel ist erforderlich.
Meldung 2:
Der Abfragebenachrichtigungsdialog für das {49AC1188-3186-EA11-811F-005056BD7B2C}.-Konversationshandle wurde aufgrund des folgenden Fehlers geschlossen: "<?xml version="1.0"?><Error xmlns="http://schemas.microsoft.com/SQL/ServiceBroker/Error"><Code>-8490</Code><Description>Cannot find the remote service 'SqlQueryNotificationService-44c24248-41ad-4648-9503-bac365375421' because it does not exist.</Description></Error>".
Zu Meldung 1 habe ich im Netz die Lösung gefunden, mit
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'xxxxxx'
einen Key anzulegen. Wäre das wirklich so unkritisch? Ich möchte da jetzt nicht einfach beim Kunden etwas rumexperimentieren. Und kann mir jemand bei der zweiten Meldung helfen.
Vielen Dank.
Vielen Dank und Gruß Martin
Antworten
-
Hallo Martin,
zu 1. gab es mal einen Bug in der Version 2008, aber ihr nutzt ja 2016.
Prüfe erst mal, ob der Service Broker in der Datenbank aktiviert ist, sonst geht es eh nicht. Dann hat jede DB eine Service Broker GUID, die muss pro SQL Server Instanz eindeutig sein. Sichert man z.B. eine Datenbank unter anderem Namen auf dem gleichen SQL Server als Test-DB zurück, hat sie die gleiche GUID und das gibt dann auch Fehler;
select db.name, db.is_broker_enabled, db.service_broker_guid from sys.databases as db order by db.service_broker_guid
Dann muss man die GUID neu vergeben lassen mit
USE [master] GO ALTER DATABASE [DatenbankName] SET NEW_BROKER; GO
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort markiert Martin Dziubany Montag, 4. Mai 2020 07:23
Alle Antworten
-
Hallo Martin,
zu 1. gab es mal einen Bug in der Version 2008, aber ihr nutzt ja 2016.
Prüfe erst mal, ob der Service Broker in der Datenbank aktiviert ist, sonst geht es eh nicht. Dann hat jede DB eine Service Broker GUID, die muss pro SQL Server Instanz eindeutig sein. Sichert man z.B. eine Datenbank unter anderem Namen auf dem gleichen SQL Server als Test-DB zurück, hat sie die gleiche GUID und das gibt dann auch Fehler;
select db.name, db.is_broker_enabled, db.service_broker_guid from sys.databases as db order by db.service_broker_guid
Dann muss man die GUID neu vergeben lassen mit
USE [master] GO ALTER DATABASE [DatenbankName] SET NEW_BROKER; GO
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort markiert Martin Dziubany Montag, 4. Mai 2020 07:23
-
Hallo Olaf,
danke für den Tipp. Ich habe tatsächlich eine GUID, die doppelt vergeben ist. Hatte mal eine RücksicherungsDB aufgebaut.
Ich lösche die DB mal und schauen, ob die Fehler noch weiter auftreten.Auch danke für den Hinweis, dass die mitkopiert werden. Das wußte ich auch nicht.
Vielen Dank und Gruß Martin