Was tun bei Fehlermeldungen beim Indexservice zum Primary-Key / Insert into osftslog?
Im services.log des Servicemanagers mit Indexservice und auch im enaio Server-Err-Log kann einer der nachfolgenden Meldungen zu finden sein:
"Cannot insert duplicate key in object 'osftslog'. The duplicate key value is (45840900)"
"[SQL Fehler] Eine Zeile mit doppeltem Schlüssel kann in das OSFTSLOG-Objekt mit dem eindeutigen Schlüssel ... nicht eingefügt werden"
"indexservice.8045 : oxjobado (line: 473): 0xc1d9000c - COM-Ausnahme aufgetreten. Quelle: Microsoft OLE DB Provider for ODBC Drivers, Beschreibung: [Microsoft][ODBC SQL Server Driver][SQL Server]Violation of PRIMARY KEY constraint 'PK__osftslog__5242E349489AC854'.
Cannot insert duplicate key in object 'enaioP.osftslog'. The duplicate key value is (45807502)., Meldung: IDispatch error #3092, Code: -2147217900"
Das bedeutet, dass der Indexservice versucht einen Eintrag in die Tabelle OSFTLOG einzufügen, aber das kann es nicht, weil es die Object-ID schon gibt. Grund: Die Object-ID darf nur einmal vorkommen. Es gibt extra einen Index für diese Tabelle, der dies nicht zulässt.
Dieses Problem kann auftreten, da pro Object-ID mehrere Jobs in der CPQueue vorhanden sein können. Wenn ein oder mehrere Indexservices parallel in der gleichen ms diese Jobs verarbeiten, stellen sie fest, dass der Eintrag in der Datenbank fehlt und versuchen ihn einzufügen. Aufgrund des Primary-Key (es darf nur einen geben) schlägt das bei einem Indexservice fehl. Abhilfe schafft in diesem Fall die nachfolgende Anleitung.
OS-interner Link für Details (extern nicht aufrufbar): DB-7318
Schritt-für-Schritt-Anleitung
Download:
Bitte auf keinen Fall den Primary-Key in der Tabelle OSFTSLOG entfernen. Besser die index-prod.yml anpassen, wie beschrieben.
Sollte die Tabelle OSFTSLOG mehrere Einträge für eine Object-ID haben, bitte Kontakt mit dem Support aufnehmen. Die Tabelle muss bereinigt werden und der Primary-Index muss gesetzt werden.
Verwandte Artikel