Skip to main content
Skip table of contents

Fehlermeldung: Benutzer kann nicht in d.3 admin gelöscht werden (99996 D3_SERVER_UNKNOWN_STD_EXCEPTION)

Komponente

d.3 admin

Version

Current 2023.Q1, Annual 2022

Erstellt am

Zuletzt geändert am

Thu, 04 Jan 2024 15:32:47 GMT

Reviewstatus

Review: Approved (1/1)

KB-Artikelnummer

424182192

Zusammenfassung

Sie möchten in Ihrem d.3-Repository einen d.3-Benutzer löschen. Der d.3-Benutzer wird jedoch nicht gelöscht.

Im d.3 Log wird folgende Fehlermeldung angezeigt:

CODE
An object update affected more rows than it should!
Return code: 99996 (D3_SERVER_UNKNOWN_STD_EXCEPTION)

Der d.3-Benutzer hat in der Microsoft SQL Server-Datenbank keine gültige Objekt-ID. Sie müssen den d.3-Benutzer zunächst in der SQL Server-Datenbank löschen und danach in d.3 admin.

Wichtige Voraussetzungen

  • Sie haben administrativen Zugriff auf den d.3-Server mit d.3 admin und d.3 process manager.

  • Sie sind Datenbankadministrator in Microsoft SQL Server mit den Berechtigungen schreibende SQL-Anweisungen auszuführen.

  • Führen Sie vorab ein Backup der SQL Server-Datenbank aus, mindestens jedoch für die Datenbanktabelle sid_assign.

Lösung

Nachdem Sie eine Sicherung der SQL Server-Datenbank oder mindestens der Datenbanktabelle sid_assign ausgeführt haben, gehen Sie folgendermaßen vor:

  1. Gehen Sie zum d.3-Server mit d.3 process manager (http://localhost:3480) und stoppen Sie die Prozesse.

  2. Melden Sie sich bei der d.3-Datenbank an und stellen Sie eine Verbindung her, z.B. in Microsoft SQL Server Studio.

  3. Führen Sie eine SELECT-Anweisung mit dem Benutzerkürzel des zu löschenden Benutzers aus. Standardmäßig sollte für alle Benutzer (auth_id) nach der Abfrage der Parameter object_id gleich NULL sein.

    SQL
    SELECT *
    FROM sid_assign
    WHERE auth_id = '<user_shortname>'

    Alle Datensätze, die in der Abfrage unter Ergebnisse leer sind, sind fehlerhaft. Die fehlerhaften Datensätze müssen Sie löschen (farblich hervorgehoben).

    Zeigt einen fehlerhaften Eintrag für einen d.3-Benutzer nach einer SQL-Abfrage.

    Leerer Eintrag bei “object_id” für d.3-Benutzer

  4. Löschen Sie den fehlerhaften Benutzer aus der Datenbanktabelle mit folgender SQL-Anweisung:

    SQL
    DELETE
    FROM sid_assign 
    WHERE auth_id = '<user_shortname>' 
    AND object_id IS NOT NULL;
  5. Leeren Sie anschließend die Datenbanktabelle cache_state mit einer DELETE-Anweisung. Andernfalls bleiben die veralteten Werte im d.ecs jstore-Cache vorhanden, was zu Dateninkonsistenzen führen kann:

    SQL
    DELETE
    FROM cache_state
  6. Gehen Sie zum d.3-Server und starten Sie alle Prozesse in d.3 process manager (http://localhost:3480).

  7. Löschen Sie den d.3-Benutzer in d.3 admin.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.