Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

20240517 fix order import deadlock #331

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

bblessmann
Copy link
Member

Ich habe das Locken der referenzierten Tabellen beim Import mal umgesetzt.

Ich bin mir nicht sicher ob vorher noch geprüft werden sollte, ob überhaupt der TransNumberGenerator aufgerufen wird, also ob die zu speichernden Objekte schon Nummern haben, oder neue erzeugt werden. Wenn schon alle Objekte Nummern haben, dann muss hier auch nicht gelockt werden.

… verwendet wird.

Wenn der Importer in Tabellen speichert, die Nummern über den
TransNumberGenerator erhalten können, dann müssen auch von diesen
Tabellen referenzierte Tabellen, die Nummern über den TransNumberGenerator
erhalten können, gelockt werden.
Andernfalls kann es zu einer Verklemmung kommen, wenn jemand an der Oerfläche
einen Beleg speichern möchte.

WEB: sperrt Zieltabelle (z.B. ar für Rechnungen)
Importer: sperrt oe (für Aufträge) (*)
Importer: sperrt defaults
WEB: will defaults sperren -> warten
Importer: will oe speichern, muss dazu aber auch die referenzierten Tabellen
locken (hier z.B. ar). ar ist gelockt -> warten
-> deadlock

(*) wenn hier auch referenzierte Tabellen (ar im Beispiel) gesperrt werden,
dann ist alles ok, da der Importer dann wartet, bevor er die defaults sperrt.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant