Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird Locktimeout funktioniert nicht wie erwartet (https://www.delphipraxis.net/203367-firebird-locktimeout-funktioniert-nicht-wie-erwartet.html)

pHL 11. Feb 2020 17:10

Datenbank: Firebird Embedded • Version: 2.5 / 3.0 • Zugriff über: Firedac

Firebird Locktimeout funktioniert nicht wie erwartet
 
Liste der Anhänge anzeigen (Anzahl: 1)
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz