edoc Knowledge Base
Breadcrumbs

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

An error occurredFailed to render Workflows Metadata macro on page 514392258 during export. If this problem continues, please contact our Customer Support Team for assistance.

Reviewstatus

An error occurredFailed to render Workflows Metadata macro on page 514392258 during export. If this problem continues, please contact our Customer Support Team for assistance.

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:

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.