du kannst mit einer wait transaction auch warten, hängt von den
DB Komponenten ab, wo du das wie einstellst.
das blockt aber nur so lange bis klar ist ob die konkurrierende deadlock transaction committed ist, weil du in dem
fall erst dann die
exception bekommst, die du auch bei nowait direkt bekommen hättest. nur bei rollback der konkurrierenden
deadlock transaction ginge es bei dir ohne
exception weiter. Wenn die andere Transaktion aber warum auch immer stundenlang
dauert, dann wird es bei wait auch stundelang nicht weitergehen, daher eignet sich der ansatz nur selten.
Das Verfahren das ich dir geschildert hat ist 100% deadlock sicher und sorgt für eindeutigkeit schon in der
db, du kannst das
aus einem trigger heraus machen oder vom client oder wo aus immer.
Im Rahmen unserer Hotlinepaket kann man so was auch mit meiner Hilfe per remote Session direkt in die
db einbauen lassen
und sich dabei erklären lassen, das das überhaupt nicht kompliziert ist und das nachher auch selber so sieht