![]() |
Datenbank: SQLite • Version: 3.25.3 • Zugriff über: FireDAC
SQLite und konkurrierender Zugriff mit FireDAC
Hallo!
Für ein kleines Spaßprojekt habe ich mir folgendes Konzept ausgedacht: Windows-Netz, Datenbankdatei auf dem Netshare und Clientanwendung auf mehreren Rechnern. Absichtlich ohne Datenbankserver. Das Ganze ist weder Last- noch Zeitkritisch. Die Anwendung funktioniert soweit, lesend wie auch schreibend. Im Grunde wie erwartet gibt es ab und zu wegen der konkurrierenden Zugriffe "Datebase-is-locked"-Fehler. Allerdings habe ich hier und da Hinweise gesehen, dass man SQLite durch verschiedene Connection-Parameter verträglicher machen kann für eine solche Konstellation. Nur hatte ich dabei bisher noch keinen Erfolg. Falls jemand Erfahrungen damit hat wäre ich für Tips dankbar. Alternativ zu FireDAC könnte ich auch mit wenig Aufwand auf ZEOS oder UniDAC wechseln. Grüße Cody |
AW: SQLite und konkurrierender Zugriff mit FireDAC
(Hervorhebung durch mich)
Zitat:
![]() und Zitat:
![]() |
AW: SQLite und konkurrierender Zugriff mit FireDAC
@Günther: Kenne ich. Die zitierte Seite weist aber selbst darauf hin, dass es inzwischen
![]() |
AW: SQLite und konkurrierender Zugriff mit FireDAC
Uh, wenn du meinst?
Zitat:
Einer schreibt und alle anderen lesen jederzeit nur - Das würde ich mich vielleicht noch trauen. Aber mehr nicht. |
AW: SQLite und konkurrierender Zugriff mit FireDAC
Wenn ich es wüsste hätte ich ja nicht gefragt. :) SQLite ist hier auch nur ein Versuch. Die Grundidee soll eine Datenbank ohne Serverdienst sein. Der Name der DB ist verhandelbar :D
|
AW: SQLite und konkurrierender Zugriff mit FireDAC
Zitat:
Wenn eingermassen reicht, dann bist du auf dem richtigen Weg. Wenn du zuverlässig brauchst, dann verbrennst du gerade einfach nur Zeit. |
AW: SQLite und konkurrierender Zugriff mit FireDAC
Eventuell wäre hier
![]() |
AW: SQLite und konkurrierender Zugriff mit FireDAC
Was ich an dem Szenario interessant finde:
Du sagst, es gibt keine hohe Last, wenig Teilnehmer/ Konkurrenz. Trotzdem tritt aber der Fehler auf. Tritt er auf, weil Du Lasttest machst und ihn den Fehler provozierst oder tritt er bereits in der beschriebenen Normalsituation auf? Und wie sind die Parameter konkret? Nutzeranzahl: Schreibzugriffe pro Minute, Stunde, Tag: |
AW: SQLite und konkurrierender Zugriff mit FireDAC
@Cody,
der Fehler tritt auf, weil FireDac ein Performace-Blender ist. FireDac setzt alle !DB defaults! zu max Performace-settings. Wogegen alle ander Komponenten das nicht machen. Bei Zeos mußt du das explizit setzen. Schau mal in die Antwort von: ![]() Dort steht beschieben, wie du FD wieder für konkurierende Zugriffe nutzbar machen kannst. kleines ABER: SQLite ist rasend schnell mit den FD settings. Zum Vergeich: ![]() Jedoch in den default-settings solltest du mit wirklich erhöhter Disk-Aktivität rechnen. SQLite ist einfach nicht dafür gemacht, aber kann es. |
AW: SQLite und konkurrierender Zugriff mit FireDAC
Interessant!
normal versus exclusive Lock würde ich jetz nicht gleich als Performance Blendung bezeichnen. Ein Exclusive Lock entspricht ja vollkommen der Bestimmung von sqlite und neben der dadurch gewonnenen Performance, bringt es ja im Zweifel auch "bessere" Daten (wobei ich nichts über die Qualität des "Normal Lock" Modes von sqlite weiß) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz