![]() |
Datenbank: Firebird • Version: 2 • Zugriff über: IBDAC
Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Hallo #,
wie schon im Titel geschrieben. Gegeben: FB-Anwendung, läuft auf einem Rechner, also kein Netz Vorteil 1: keine FB-Installation, Anwendung könnte also sogar ohne Admin auf einem Stick "installiert" sein und laufen Vorteil 1: keine Probleme mit anderen ev. bereits installierten FB-s Nutzername/Passwort muss nicht von dem anderen System "erfragt"/"erbettelt" werden Nachteil 1: Ein Fehler in der Anwendung reisst auch die FB-DLL mit -> Datenverlust ? Was passiert, wenn die Anwendung "abgeschossen" ? Kennt sich jemand gerade mit Nachteil 1 aus ? Noch eine zweite Frage: Woran erkennt ich eigentlich, dass die Anwendung mit einem embedded FB zusammenarbeitet? Mit fällt hier nur ein, den Pfad der geladenen gds32.dll/fbclient.dll zu ermitteln und die Größe der Dll zu prüfen (>1.5 MB). Danke Heiko |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
Zitat:
|
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
Ob es der Server nicht schafft Daten wegzuschreiben oder die embedded DLL macht keinen Unterschied oder? Alle Datenschreiber müssen per se auf hohe Robustheit ausgelegt sein. Dazu werden die verschiedensten Mechanismen verwendet. Was auch immer geschieht, fehlt ein finales commit, sind die Daten futsch. |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Nur einen Server kann ein Benutzer nicht so einfach abschiessen und beim geordneten Beenden des Dienstes wird ja alles sauber beendet.
Ich vermute mal er meint beim "harten" Beenden des Programmes z.B. über den Taskmanager. Dann wird die Dll (und damit der "Server" im Bauch dieser) beendet und es kann nicht richtig aufgeräumt werden. |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Ja, die Wahrscheinlichkeit für einen solchen Fall ist sicher höher mit embedded auf einer Workstation.
Aber es geschieht m.E. nichts anderes, als bei einem Server. Selbst wenn nicht der Server sondern nur das Clientprogramm abschmiert/gekillt wird. Wenn kein commit mehr kommt, speichert auch der Server die Daten nicht. |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Meiner Meinung nach ist das ein Problem des Programmieres.
Wenn er nach jedem Datenhäppchen ein commit abschickt, ist es sicherer als wenn erst einmal gesammelt wird und dann irgendwann das MB DB-Futter losgeschickt wird. Dieses Risiko besteht allerdings sowohl bei embedded als auch bei Server-DBs. Gruß K-H |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Hallo,
danke für Ihre Meinungen. Ich meine in der Tat das (auch ungewollte) Beenden der eigenen Anwendung. Stürzt die Anwendung ab und der (nicht embedded) Server schreibt noch was, OK, habe ich eine embedded DB, kann es doch sein, dass die DB beschädigt wird ?. Es geht also nicht um Datenverlust wegen fehlendem Commit, sondern um beschädigte DB's. Heiko |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
Wenn dein Anwendung sehr häufig abstürzt, steigt natürlich die Wahrscheinlichkeit, das du auf einen Bug stößt; ansonsten sollte eine Datenbank einen Crash ohne Korruption. |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Hallo Bug,
du weisst schon, dass wir hier von einer Dll im Prozessraum der eigenen Anwendung reden ? Heiko |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Was verstehst Du eigentlich unter "beschädigt"?
Gruß K-H |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Das Verhalten einer Delphi-Anwendung, die auf eine servergesteuerte Firebird-Datenbank zugreift, ist absolut identisch mit dem Verhalten bei Zugriff auf dieselbe DB im Embedded-Modus. Ich entwickle seit Jahren Firebird-DB-Anwendungen und hatte in dieser Zeit keinen einzigen Datenbank-Fehler durch Programmabstürze. Falls das doch einmal geschehen sollte, bin ich dennoch immer auf der sicheren Seite, da meine Client-Anwendungen größtenteils dazu fähig sind, DB-Backups zu erstellen: beim Start, beim Programmende oder sonstwo dazwischen. Alle meine Anwendungen werden bereits beim Projektbeginn so konzipiert, daß sie wahlweise als Server- oder Embedded-Variante einsetzbar sind. Dazu verwende ich die Parameterliste:
1. Variante: Wird eine kompilierte Firebird-DB-Anwendung ohne jeglichen Parameter gestartet, sucht sie beim Programmstart erst nach der Embedded-DLL (die ich stets fbclientE.dll nenne) und dann nach der benötigten Datenbank im Programmordner, der in diesem Fall ein beschreibbarer Ordner sein sollte. 2. Variante: Steht in der Parameterliste "0 F:\Datenbanken" (Aufruf der Exe: MeinProgramm.exe 0 F:\Datenbanken), wird ebenfalls die Embedded-DLL im Programmordner verwendet und er sucht im angegebenen Pfad nach der Datenbank. 3. Variante: steht in der Parameterliste "1 F:\Datenbanken", geht das Programm von einem installierten Firebird-Server aus, sucht im Windows-Verzeichnis nach der "normalen" Firebird-Library fbclient.dll. Wird diese nicht gefunden, sucht das Programm aus der Registry den Installationsordner des Firebird-Servers und nimmt die dortige DLL. Wird das auch nicht gefunden ... usw. Danach, wenn eine Firebird-Server-Installation und die DLL gefunden wurden, sucht das Programm im angegebenen Ordner nach der Datenbank. Wird diese nicht gefunden, sucht er im Programmordner danach. Wird sie dort auch nicht gefunden, bricht das Programm mit einer Fehlermeldung ab. Eine 4. Variante wäre dann z.B. der Zugriff auf einen Remote-Server. Anmerkung: Auch Anwendungen, die später ausschließlich im Embedded-Modus laufen sollen, entwickle ich gerne im Server-Modus. Der Grund war anfangs, daß die Embedded-Variante früherer Versionen keinen Multiuser-Zugriff gestattete und ich ständig vor dem Starten in der IDE die Datenbankverbindung im DB-Manager (bei mir: IbExpert) trennen mußte, weil sonst die DB-Verbindung meiner Anwendung nicht zustande kam. Heute mach ich das noch immer so, damit im Falle eines Falles auch immer alle Varianten zur Verfügung stehen. |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Hallo Perlsau,
das klingt doch schon mal ganz gut! Backups machen wir natürlich auch (gugg an, beim Start und Ende wie wir ;) ). Bei uns benutzen wir die embedded DB beim Kunden eigentlich nur, wenn es unbedingt notwendig ist. Bsp: Ein fremdes Programm benutzt eine andere DB-Version oder rückt das sysdba-Passwort nicht raus, um unseren eigenen User anzulegen. Normalerweise umgehen wir das dann über "fbserver -a -p 3051". Manchmal klappt aber ach das nicht. Heiko |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Ohne FB genau zu kennen: Ein RDMBS, das beim Schreiben die DB zerballern könnte, ist ein ziemlich schlecht geschriebenes. MySQL hat wohl mit der freien Storage-Engine so einen Bock abgeschossen, aber sonst sollte sich das ziemlich gut kontrollieren lassen. Denn schließlich stürtzt das OS ja nicht ab, das die Schreibvorgänge kontrolliert.
Das ist natürlich nur Theorie. Der IBExpert sollte das aber genau wissen. |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Dieses Problem verschwindet hoffentlich, wenn FB3 mal fertig ist.
|
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Naja, ich hab eigentlich immer nur Kleinkunden, die eine kleine spezielle Verwaltung benötigen, und das sind gewöhnlich keine PC-affinen Leute, die wollen nicht unbedingt was umständlich installieren, sondern am liebsten alles so einfach wie nur möglich. Deshalb sind meine Anwendungen meist Embedded-Varianten, die bei Bedarf natürlich auch mit einem installierten FB-Server laufen würden. Einige wollen abends den gesamten Programmordner auf ihrem Stick mit nach Hause nehmen oder in einer anderen Filiale einsetzen. Anwendungen, die von verschiedenen Betriebsstätten aus auf einen zentralen Server im Internet zugreifen, hab ich bislang nur einmal benötigt.
Backups bei Embedded-Betrieb mach ich meist nur als gewöhnliche Kopie der FDB-Datei, denn da kann nix schiefgehen, wenn die Verbindung zur Datenbank getrennt ist. Bei Server-Versionen laufen Backup und Restore natürlich über Gbak. Zwar empfehle ich immer, beide Backup-Möglichkeiten (bei Start und Ende) zu nutzen, überlasse es aber letztlich meinen Anwendern, das über die Optionen selber einzustellen. Wichtig ist auch, beim Start-Backup einen anderen Dateinamen zu verwenden als beim Ende-Backup. Die luxuriöse Variante ist ein mit Datum versehenes Backup, was bei den relativ kleinen FDB-Dateigrößen, mit denen ich's gewöhnlich zu tun habe, kein Problem darstellt. Mehr wird (zumindest bei meiner Kundschaft) nicht wirklich benötigt. Zitat:
|
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
Wichtig ist daher immer, zuvor ein Backup anzulegen, dann kann ohne Angst vor Datenverlust nach Herzenslust herumexperimentieren. Die nachhaltigsten Erfahrungen macht der Mensch vermutlich noch immer durch Fehler, die richtig weh tun :P |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
Zitat:
:wall: Ich geh jetzt andere Leute nerven (aka zur Arbeit) |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
Aber für dich mach ich das nochmal gaaanz deutlich: Vor dem wilden Herumexperimentieren an einer Datenbank via IbExpert (resp. mit jedem anderen DB-Manager an jeder anderen beliebigen DB) :stupid: Zitat:
|
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
Die Antwort bezog sich auf das Problem mit den Passwörtern. Den ab FB3 ist es möglich, die Benutzerverwaltung flexibler zu gerstalten (globale Rechtedatenbank [Verhalten FB <3], in der Benutzerdatenbank, in eigener (Rechte-)Datenbank [kann dann für mehrere Datenbanken verwendet werden]). |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
Grüße |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Zitat:
|
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
[OT]
Zitat:
Falls es sich um eine Datensammlung nur für ein Programm (anstatt TXT-Dateien) handelt, mag das ja noch angehen. Handelt es sich um Unternehmensdaten und ich habe keine Möglichkeit mit meinen Daten zu machen, was ich will, und vor allem auf meine Weise, dann fliegt der Anbieter schneller hinaus als er hereingekommen ist. Gruß K-H [/OT] |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Hallo Lemmy,
genau das hatte ich getan ... FB2.01. als Application Port 3051 (-a -p 3051) Erster Start -> es läuft. Zweiter Start -> Nutzername oder Passwort falsch Ds Programm will wieder FB2.5 benutzen. Egal: Ich habe ihm jetzt die embedded DB draufgepackt, es läuft. Heiko |
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
sorry, das habe ich überlesen... hat bei mir aber immer geklappt - entscheidend ist halt die ClientDLL und der ConnectionString
|
AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Genau! Und wenn man die entsprechenden Einstellungen als Parameter mitgibt (wie
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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