none
Service Broker Hauptschlüssel Fehlercode32 und Error -8490 RRS feed

  • 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 &apos;SqlQueryNotificationService-44c24248-41ad-4648-9503-bac365375421&apos; 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

    Mittwoch, 29. April 2020 17:32

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]

    Donnerstag, 30. April 2020 07:43

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]

    Donnerstag, 30. April 2020 07:43
  • 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

    Donnerstag, 30. April 2020 08:02