Sage 100: Totalausfall beim Löschen von Belegen

khk

Mitglied
Hallo zusammen,

wir haben für einen Kunden verschiedene Lösungen wie z. B. einen Belegimport entwickelt. Es gibt auch eine Lösung für das Löschen mehrerer Belege auf einmal.

Nun passiert Folgendes: Während des Löschens mehrerer Belege startet ein anderer Mitarbeiter einen Belegimport. In dieser Konstellation taucht ein Deadlock auf, weil die Funktion Beleg.Delete() eine Transaktion startet und teilweise auf die gleichen Tabellen zugreift wie der Belegimport (KHKDispoArtikel u. a.). Der Kunde hat Belege mit zum Teil über 300 Positionen, weshalb das Löschen mal länger dauern kann und die Transaktion über lange Zeit offen gehalten wird.
In dieser Zeit mehren sich die Anfragen anderer Mitarbeiter, die vergeblich auf ein Release des Locks warten. Dabei verrent sich der SQL-Server und nichts geht mehr. Aktueller Workaround: SQL-Server-Dienst neustarten, danach den Sage Application Server-Dienst.

Kennt jemand dafür eine Lösung oder zumindest eine Idee, wie man das Problem beheben kann? Gibt es die Möglichkeit Belege ohne Sage-interne SQL-Transaktion zu löschen? Oder müssen die Mitarbeiter des Kunden immer warten, bis die Belege gelöscht wurden und können dann erst einen Belegimport durchführen?!

Beim Kunden arbeiten ca. 50 Leute, da ist ein Neustart der Dienste sowie ein Deadlock keine "kleine" Sache.

Freundliche Grüße
khk
 
  • Like
Reaktionen: CST
Zurück
Oben