![]() |
Datenbank: n/a • Zugriff über: n/a
Suche Embedded DB mit Multi-User-Fähigkeit
Hi Mitstreiter,
ich brauche für ein Tool eine embedded DB. Frage: Welche gibt es da (noch)? Eckpunkte: - wahrscheinlich sind ca. 30-1000 neue Datensätze pro Tag - Trotz embedded / Filebased benötige ich "Multi-User"-Zugriff - hier von zwei Anwendungen gleichzeitig Bevor die Grundsatzdiskussion wg. embedded DB kommt: Dies läßt sich bei diesem Projekt leider nicht anders realisieren, soll auch portable von USB Stick laufen und unter Berücksichtigung entsprechend eingeschränkter Rechte. Registry Änderungen, Dienstinstallation etc.pp. sind nicht möglich. Ich würde gerne auf SQLite3 setzen, habe hier konkret aber Probleme mit den Timeouts beim Filelock, was klar ist. Das ist ein No-Go und ich hätte es am liebsten auf Ebene der DB selbst gelöst. Verlorene Datensätze wg. Timeouts dürfen nicht passieren bzw. müssen sehr unwahrscheinlich sein, so schwer dies bei Filebased-Embedded DBMS auch ist. Was ich nach mittelfristiger Evaluierung schon weiß: - SQLite wrapper von AduCom ist z.B. beim Objektlinking mit SQLite3 3.5.9 recht buggy (AVs), mit DLL stolpert es über den Multi-User Zugriff durch die zweite App. Die anderen SQLite wrapper die so rumfliegen ebenso. Getestet: Aducom, Wrapper von der Codegear Seite, DISQlite3 - Firebird embedded: Fällt raus, da nicht "Multi-User"-fähig mit nur einer App pro DB zur Zeit - AbsoluteDatabase: Geht, hat sogar "Automatic detection of changes made by other users" AbsoluteDatabase habe ich vor einiger Zeit gekauft, aber dieses DBMS möchte ich ersetzen. Dort sind zu viele Altkomponenten integriert (zLib 1.1.3, DEC 3) und es treten noch andere Probleme auf, die mein Vertrauen darin gestört haben. Viel bleibt nicht mehr, ich weiß. Hab ich noch etwas übersehen? Ich freue mich auf Eure Denkanstöße! Gruß Assertor |
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Wenn du nicht FireBird nimmst sondern den richtigen Server, kannst du den vom 1. Programm starten lassen. Das funktioniert auch vom USB-Stick oder sogar einer CD-Rom (dann natürlich nur readonly).
|
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Das Problem einer Embedded-DB im Zusammenhang mit Multiuserbetrieb liegt in der -nach meinem Dafürhalten- Unvereinbarkeit beider Vorgaben. Die für den sicheren Multiuserbetrieb notwendigen Sperren auf Tabellen- und Datensatzebene sind ohne Serverinstanz einfach nicht 100% sicher möglich.
Eventuell könnte ein wechselseitig exklusiver Zugriff auf die Datenbank die nötige Sicherheit bringen, aber ganz sicher bin ich mir dabei nicht. Ich ziehe meine Schlussfolgerungen übrigens aus dem Access-Disaster, wenn damit versucht wird, einen Mehrbenutzerbetrieb zu realisieren. Nach Allem, was ich über dieses Thema gelesen habe, scheint eine Embedded Multiuser-DB schlicht und ergreifend nicht möglich zu sein. @mkinzler, so ähnlich wäre mein Alternativvorschlag gewesen. Das es konkret mit Firebird geht, macht dieses RDBMS noch charmanter. |
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Hi mkinzler, Hi Alzaimar,
Guter Punkt mit dem Access-Disaster. Ich bin mir (leider) der Problematik wg. des Lockings - hier ja auf File-Ebene - bewußt. Ich hatte schon befürchtet, daß es ein Logik-Problem in den Anforderungen und Umsetzungsmöglichkeiten gibt. Mozilla Firefox 3 arbeitet z.B. auch mit SQLite3 für Bookmarks und Cache, aber läßt nur eine Programminstanz zur Zeit zu. Problem dort gelöst ;) Ich werde Firebird mal in diesem Szenario ausprobieren. Rein interessehalber zurück zur ursprünglichen Frage: Sind sonst noch irgendwelche embedded Systeme bekannt und üblich? Berkeley DB für Delphi steckt im Google Code Center als OSS Projekt, aber sicherlich nicht für den Produktiveinsatz geeignet. Gruß Assertor |
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Moin Assertor,
vorweg: Mit Embedded-Systemen kenne ich mich nicht aus. Eine Idee hätte ich aber noch: Könnte nicht die zuerst gestartete Anwendung den Server für die andere darstellen? |
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Zitat:
|
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Hallo Assertor,
schau dir mal unter ![]() |
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Moin Christian,
Zitat:
Da frage ich mich aber (rhetorisch): Was ist, wenn die Anwendung aus irgendeinem Grunde undefiniert endet? Der Serverprozess läuft dann weiter, verhindert unter Umständen das Abmelden des USB-Laufwerks. Normalen Benutzern ist hier eine Prozessbeendigung über den Taskmanager schwer zumutbar. Gruß Assertor |
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Hi Stephan,
Zitat:
Ich sehe mir das mal an, Danke! Gibt es denn eigentlich einen anderen SQLite3 Wrapper als den von Aducom (entspricht ja auch dem Zeos SQLite3 Wrapper) und den bereits erwähnten? Gibt es da noch etwas anderes? Was ist mit der Schnittstelle von RemObjects? Kennt jemand DataAbstract Vinci und hat das im Einsatz? Gruß Assertor |
Re: Suche Embedded DB mit Multi-User-Fähigkeit
Nachtrag: Ich schließe mal vorerst das Thema als erledigt ab und mache mir nochmal Gedanken. Falls jemand zu SQLite3 noch etwas hat, bitte gerne hier posten.
Auf jeden Fall vielen Dank für die Anregungen und das Brainstorming! Gruß Assertor :cat: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 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