Hallo Leute,
ich habe momentan folgende Architektur für eine Anwendung mit lokaler Datenbank:
- N- Connections (TFDConnection) - werden zur Laufzeit für jeden einzelnen Thread erzeugt
- pro Connectionen eine Transaction (es handelt sich dabei um die interne Transaction jeder Connection, laut Doku ist das auch ok (separate Transactions sind optional))
Nun habe ich versucht, das Standard-Lock-Verhalten von "Optimistic" auf "Pesimistic" zu ändern, um im Falle eines Locks 5 Sekunden zu warten bevor eine
Exception geworfen wird.
Dabei ist mir aufgefallen, dass das Lock-Timeout nur korrekt aus dem "firebird.conf"-File verwendet wird, wenn man eine einzige Connection und N Transactions hat. Wenn man das nicht macht, dann wird ein INFINITE Lock-Timeout verwendet.
Ist das ein erklärbares Verhalten oder handelt es sich dabei um einen Bug bei Firebird / Firedac?
Im Anhang ist ein Beispiel-Programm das dieses Problem reproduzieren kann.
Danke im Vorraus!
pHL