25.11.2013;Psc
Problem
CodX PostOffice bringt die SQL Server Fehlermeldung "Arithmetischer Überlauf". Dies kann zum Beispiel beim Lauf des SortTree passieren
Error:
-------------------------
Description: Arithmetischer Überlauffehler beim Konvertieren von IDENTITY in den int-Datentyp.
Source: Microsoft OLE DB Provider for SQL Server
Number: 0x80040E57
SQLState: 22003
Native Error: 8115
Description: Arithmetischer Überlauf.
Source: Microsoft OLE DB Provider for SQL Server
Number: 0x80040E57
SQLState: 01000
Native Error: 3606
Lösung
Der Primärschlüssel der Tabelle BVLinear ist vom Typ INT und geht daher maximal bis zum Wert 2'147'483'647. Aus Performancegründen wird für diesen Primärschlüssel die Identity Funktion des SQL Server verwendet. Dieser beginnt bei 1 und zählt fortlaufend hoch bis die Grenze des Datentyps erreicht ist.
Bei der Fehlermeldung "Arithmetischer Überlauf" ist diese Grenze des Datentyps erreicht.
Für den Anwendungsfall SortTree ist es so, dass die BVLIneartabelle bei jedem Lauf komplett neu geschrieben wird. Man kann zur Lösung des Problems die Tabelle mit dem Befehl TRUNCATE TABLE leeren und den SortTree nochmals starten. Der Befehl bewirkt, dass der Zähler auf 1 zurückgesetzt wird. Die BVLinear ist anschliessend aktuell.
Weitere Info
Um diesen Fehler in späteren Versionen zu beheben, wurde der Entwickler-Case E#9150 erfasst. Betroffen sind mindestens alle Versionen bis und mit V2013.10. Eine Lösung wurde aktuell noch nicht implementiert.